Est-il possible de construire un appareil HID (comme un clavier) en utilisant un Arduino uno?
À l'heure actuelle, j'ai des entrées de bouton sur l'Arduino donnant des sorties sur la ligne série. Alors, comment puis-je transformer mon firmware actuel en quelque chose qui peut se comporter comme un clavier HID?
- Dois-je écrire un nouveau pilote de périphérique de fenêtre?
- Dois-je créer une couche logicielle qui pourrait prendre mes données série et demander à Windows de les lire comme entrée HID?
- Existe-t-il un meilleur moyen d'y parvenir, si cela est possible?
arduino-uno
serial
Anomalie
la source
la source
Réponses:
Oui, ça l'est! Et il y a un excellent tutoriel sur la façon de le faire ici
Comme le didacticiel vous le montre, vous devez transformer votre code de micrologiciel afin qu'au lieu d'imprimer les événements, vous déclenchiez réellement des événements. Ce que vous devez faire, c'est ajouter à votre code:
Ce que vous faites ici, c'est envoyer de vos principaux événements de microcontrôleur Arduino sur la ligne série au plus petit microcontrôleur qui gère la communication USB. Ce microcontrôleur prendra ces "tampons" de touches et les transférera lorsque les touches du clavier USB HID seront pressées via USB.
Attention, le caractère clé (
chr
dans le code ici) est en fait un code clé envoyé via USB qui est interprété par votre pilote HID USB, qui le traduit ensuite en un vrai caractère en utilisant la disposition actuelle que vous avez configurée pour votre clavier.Le
mod
personnage est l'une des touches de modification que vous avez sur le clavier (shift, control, alt ...),0x00
étant aucun modificateur.Non, tu n'as pas besoin! Avec la mise à niveau DFU, votre Arduino sera considéré comme un clavier USB par Windows.
Vous n'avez pas besoin de le faire, et c'est en fait une très mauvaise idée pour plusieurs raisons:
Enfin, vous avez des inquiétudes, dans un commentaire, à propos de la brique de votre arduino. S'il vous plaît, croyez-moi et l'auteur de l' article que vous ne pouvez pas briquer votre arduino en faisant un flash de firmware:
REMARQUE: il n'y a aucune chance de «bricker» l'appareil à l'aide de cette méthode. Le firmware du chargeur de démarrage Arduino peut toujours être mis à jour en utilisant le protocole DFU!
Dans le cas où quelque chose se passe vraiment mal et que vous obtenez une corruption du chargeur de démarrage dans le petit AVR (atmega8u2), vous pouvez toujours le reflasher en utilisant un autre arduino ou un programmeur atmel en utilisant les 6 broches à côté de la prise USB.
Au final, sachez que le seul moyen de briquer un AVR, donc un Arduino également, est de jouer avec les fusibles et de réinitialiser les fusibles de programmation. Et même dans ce cas, vous pouvez utiliser HVSP pour enregistrer votre appareil, bien qu'il soit souvent moins difficile de simplement prendre une nouvelle puce.
la source
J'ai créé un projet qui remplace complètement le chargeur de démarrage Arduino. Vous pouvez télécharger des croquis et les utiliser comme HID. Voir Project HID sur Github: https://github.com/NicoHood/HID
la source