Publicité
L'humble Arduino peut faire beaucoup de choses, mais saviez-vous qu'il peut émuler un clavier USB? Vous pouvez combiner ces raccourcis clavier difficiles à retenir en une seule touche de raccourci personnalisé, avec ce circuit simple. Voici le résultat final:
Vous n'avez jamais utilisé d'Arduino auparavant? Découvrez notre Guide de Démarrage Débuter avec Arduino: Guide du débutantArduino est une plate-forme de prototypage électronique open source basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est destiné aux artistes, designers, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite premier.
De quoi as-tu besoin
Voici ce dont vous avez besoin pour réaliser ce projet:
- 1 x Arduino Pro Micro.
- Boutons momentanés ou boutons du clavier.
- Résistances 10K ohms.
- Fils de raccordement variés.
- 1 x résistances 220 ohms.
- LED 1 x 5 mm (0,197 pouces).
- 1 support LED de 5 mm.
Vous aurez besoin d'un Arduino très spécifique pour ce projet. J'utilise un
Pro Micro, car ils sont si petits et bon marché, vous avez besoin d'un Arduino doté d'une série USB intégrée au processeur (Atmega32u4). Il est possible de construire ce projet avec d'autres Arduinos, tels qu'un UNO ou un Nano, mais cela nécessite beaucoup de travail pour re-flasher le bios et bidouiller pour que les choses fonctionnent. Les clones d'autres modèles Arduino ne fonctionnent généralement pas du tout, mais un clone Pro Micro convient également.Carte de module OSOYOO Pro Micro ATmega32U4 5V / 16MHz avec embase à 2 rangées pour Arduino Leonardo Remplacer ATmega328 Pro MiniCarte de module OSOYOO Pro Micro ATmega32U4 5V / 16MHz avec embase à 2 rangées pour Arduino Leonardo Remplacer ATmega328 Pro Mini Achetez maintenant sur Amazon $10.99
Vous aurez besoin d'un bouton momentané, d'une résistance de 10K ohms et d'un fil de raccordement approprié pour chaque bouton que vous souhaitez utiliser. J'utilise des commutateurs mécaniques à clavier Cherry MX pour les boutons de raccourcis réels, bien que tout le commutateur fera l'affaire, à condition qu'il soit momentané et ne se verrouille pas.
Vous aurez peut-être besoin de quelques autres éléments selon la façon dont vous le construirez. Si vous voulez le prototyper, vous aurez besoin d'un planche à pain sans soudure. Cela vaut la peine de dépenser l’argent pour un bon - ils peuvent parfois être très peu fiables. Si vous voulez emballer cela, vous voudrez acheter du stripboard.
Plan de construction
Voici comment cela fonctionnera. L'Arduino sera programmé pour agir comme un clavier USB - en ce qui concerne votre ordinateur. Plusieurs boutons connectés à l'Arduino enverront des raccourcis clavier à votre ordinateur. Vous n'appuierez que sur un bouton, mais votre ordinateur pensera que vous avez appuyé sur Alt > F4, par exemple.
Sélection d'un commutateur
Il existe plusieurs variantes de commutateurs de la série MX. Ce site fournit une excellente introduction, mais ils se résument essentiellement au bruit et à la pression. Certains modèles nécessitent plus de force pour appuyer, et certains modèles émettent un «clic» mécanique lorsqu'ils sont pressés. J'ai utilisé des Cherry MX Browns, qui ne font pas de bruit lorsqu'ils sont pressés. Ce sont toutes les mêmes dimensions, alors choisissez n'importe quel modèle que vous aimez (ou mélangez et assortissez) sans souci.
Vous devrez également acheter des bouchons de clé, bien sûr, et il y a un monde de conceptions personnalisées là-bas pour choisir - nous avons acheté chez KeyboardCo au Royaume-Uni
L'affaire
J'ai imprimé ce boîtier en 3D et vous pouvez télécharger le .STL fichiers de Thingiverse. Ne vous inquiétez pas si vous ne possédez pas d'imprimante 3D, vous pouvez toujours la construire. De nombreux sites Web proposent des services d'impression 3D, tels que Hubs 3D ou Shapeways. Alternativement, il s'agit d'un cas très simple, vous pouvez faire le vôtre à partir de plasticard, de perspex, de bois ou même de carton. Si vous voulez être vraiment économe, Cherry MX vend un testeur / échantillonneur Amazone (Royaume-Uni). Vous aurez besoin de 4 boulons M5 x 35 mm et 4 écrous M5. Vous pouvez bien sûr les remplacer par une alternative appropriée que vous avez.
Clavier Max Keycap, Cherry MX Switch, Tester Kit (9 switches Pro Sampler Tester Kit)Clavier Max Keycap, Cherry MX Switch, Tester Kit (9 switches Pro Sampler Tester Kit) Achetez maintenant sur Amazon $14.99
Si vous créez votre propre boîtier, il y a un détail important que vous devez savoir: les commutateurs Cherry MX sont enfichables dans leurs trous de montage. Ils nécessitent un trou de montage carré de 14 x 14 mm (0,551 pouce), la plaque n'étant pas plus épaisse que 1,5 mm (0,059 pouce). Ecartez-vous trop de ces dimensions et vos commutateurs risquent de ne plus se monter correctement.
Le boîtier imprimé en 3D est en deux parties, le haut et le bas. Poussez les commutateurs Cherry MX dans les trous carrés:
Assurez-vous de monter les commutateurs dans le bon sens. Le haut a les mots "CHERRY" et le bas a une petite encoche. Insérez une LED de 3 mm dans cette petite fente:
Vous constaterez peut-être que les DEL semblent mieux montées «à l'envers». Ce fut le cas pour les touches que j'ai utilisées, et cela n'a aucun impact sur les commutateurs.
Vous devriez maintenant avoir neuf commutateurs avec 9 LEDS. Il n'est pas nécessaire de coller ces pièces. La soudure tiendra les LED et la friction maintiendra les interrupteurs.
Ensuite, vissez le support LED (laissez la LED retirée pour l'instant). Vous finirez d'assembler le boîtier plus tard, une fois le circuit construit.
Le circuit
Ce circuit est construit sur du stripboard. Ceci est excellent pour la construction de circuits semi-permanents, sans le coût d'une carte de circuit imprimé (PCB). Il s'agit simplement d'un morceau de fibre de verre avec des pistes en cuivre parallèles dans une direction. Ces pistes peuvent être soudées ou coupées. La découpe d'une piste peut être effectuée avec un outil spécial ou un petit foret.
Pas trop confiant pour souder? Jettes un coup d'oeil à ces projets simples Apprenez à souder avec ces conseils et projets simplesÊtes-vous un peu intimidé par la pensée d'un fer chaud et d'un métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous devrez apprendre à souder. Laissez-nous vous aider. Lire la suite premier.
Voici la disposition du stripboard (exclut les pistes de fin):
Assurez-vous de couper les traces sous les résistances et l'Arduino. Comme il peut être très difficile de lire un circuit de stripboard, voici une version maquette:
C'est un ajustement serré pour serrer tous les composants dans un si petit espace. Coupez les coins de votre stripboard comme suit:
Cela devrait rentrer parfaitement dans le fond du boîtier:
Assurez-vous que les pistes fonctionnent verticalement.
Connectez l'anode (jambe longue, positive) de la LED à la résistance 200 ohms puis à +5 V. Connectez la cathode (jambe courte, négatif) à la terre. Couvrez les jambes avec une gaine thermorétractable, puis poussez dans le support LED. Il n'y a pas besoin de colle, mais votre support LED peut ne pas être enfichable, vous devrez donc peut-être adapter ces instructions.
Vous pouvez également utiliser une LED bicolore ici - cela vous permettra de configurer deux ou plusieurs banques de commutateurs, avec une LED d'état de couleur différente pour chaque banque.
Il est maintenant temps de souder toutes les LED des capuchons de touches. Celles-ci sont utilisées uniquement pour faire briller les touches, vous pouvez donc les ignorer si vous le souhaitez, et elles n'ont pas besoin d'être connectées à une broche numérique, seulement de l'alimentation. Connectez toutes les anodes ensemble et toutes les cathodes ensemble. Apprenez de mon erreur - il est beaucoup plus facile de le faire avant de câbler les commutateurs! Connectez les anodes à +5 V via une résistance de 220 ohms et les cathodes à la terre. Ces LED sont câblées en parallèle. Voici le circuit juste pour ces LED:
Utilisez un petit morceau de tube thermorétractable pour couvrir la connexion entre les LED et l'Arduino:
Mettez l'Arduino sous tension pour tester le fonctionnement de toutes les LED. Vous n'avez pas besoin de télécharger de code. Si des LED ne fonctionnent pas, allez vérifier votre câblage.
Câblez maintenant les interrupteurs. Ceux-ci doivent être connectés via une résistance 10k, sinon l'Arduino mourra. C'est ce qu'on appelle un court-circuit mort - +5 V va directement dans le sol, et tout ce qui reste de votre Arduino sera une bouffée de fumée (croyez-moi, j'en ai déjà tué un pour que vous n'ayez pas à le faire). Voici le circuit pour un commutateur:
Ce circuit est le même pour les neuf commutateurs. Connectez les commutateurs aux broches numériques deux à dix, chacune avec sa propre résistance 10K à la terre. Attention à souder les commutateurs Cherry MX, ils peuvent être un peu fragiles, j'ai eu plusieurs broches qui se cassent sur moi. Vous voudrez peut-être les souder directement sur un autre tableau, mais les fils de fuite conviennent toujours.
C’est tout pour le câblage. Vous souhaiterez peut-être monter une prise femelle USB de type B, mais les minuscules broches qui s'y trouvent peuvent souvent être assez difficiles à souder. Si vous ne le souhaitez pas, ne vous inquiétez pas. Le connecteur Micro USB sur l'Arduino s'adapte parfaitement au trou dans le châssis. Si vous êtes un peu confus au sujet des différents types USB, assurez-vous comprendre les différences Comprendre les types de câbles USB et celui à utiliserPourquoi existe-t-il autant de types de câbles USB différents? Découvrez les différences entre les types de connecteurs USB et comment acheter le meilleur câble. Lire la suite .
Enfin, vérifiez bien que votre circuit est correct. Un court-circuit peut facilement détruire un Arduino, et il peut être facile de le faire en utilisant un stripboard.
Le code
Maintenant, testez que le circuit est correct. C’est une bonne idée de le faire avant de continuer. Vous pouvez donc résoudre tout problème dès que vous le pouvez. Téléchargez ce code de test (n'oubliez pas de sélectionner la bonne carte et le bon port dans Outils > Planche et Outils > Port menus):
boutons const int [] = {2,3,4,5,6,7,8,9,10}; // tableau de toutes les broches du bouton void setup () {// mettez votre code de configuration ici, pour l'exécuter une fois: Serial.begin (9600); pinMode (2, ENTRÉE); pinMode (3, ENTRÉE); pinMode (4, ENTRÉE); pinMode (5, ENTRÉE); pinMode (6, ENTRÉE); pinMode (7, ENTRÉE); pinMode (8, ENTRÉE); pinMode (9, ENTRÉE); pinMode (10, ENTRÉE); } void loop () {// mettez ici votre code principal, à exécuter de manière répétée: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// le rebond logiciel améliore le délai de précision (10); if (digitalRead (i) == HIGH) {// vérifier les commutateurs Serial.print ("input"); Serial.println (i); retard (250); } } } }
Vous devrez peut-être changer les broches si vous avez modifié le circuit.
Une fois téléchargé, ouvrez le moniteur série (en haut à droite > Moniteur série). Un par un, appuyez sur chaque bouton. Vous devriez voir le moniteur série afficher le numéro du bouton sur lequel vous avez appuyé. Tout comme avec la LED, si votre ordinateur se plaint de consommer trop de courant, ou si les LED s'éteignent lorsque vous appuyez sur un bouton, déconnectez-vous immédiatement! Vous avez un court-circuit quelque part dans le circuit, vérifiez que le circuit est correct et qu'il n'y a pas de court-circuit entre les connexions.
Si tout fonctionne, allez-y et mettez le circuit dans la boîte. Vous voudrez peut-être utiliser un peu de colle pour maintenir le circuit en place (bien que les fils tenaient bien le mien). Verrouillez également le couvercle.
Faire en sorte que l'Arduino apparaisse comme un clavier est très simple. Si vous utilisez un Nano ou UNO, vous allez reprogrammer votre Arduino en utilisant Mise à jour du firmware de l'appareil (DFU). Ceci est généralement utilisé pour flasher un nouveau firmware sur l'Arduino. Vous allez l'utiliser pour flasher l'Arduino avec un nouveau firmware qui le fera fonctionner comme un clavier. Cela ne sera pas traité ici, car c'est une tâche assez complexe. le Site Arduino a un bon tutoriel pour cela.
L'Arduino Pro Micro rend cette étape très facile. La logique requise pour émuler un clavier USB est déjà intégrée au processeur, c'est donc aussi simple que d'écrire du code!
Tout d'abord, configurez les clés:
clés int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
Il s'agit d'un tableau contenant toutes les broches auxquelles les boutons sont connectés. Si vous avez utilisé plus ou moins de boutons ou utilisé différentes broches, modifiez les valeurs ici.
Un tableau est un ensemble de choses partageant les mêmes idées. Les ordinateurs peuvent optimiser votre code pour y accéder rapidement et ils accélèrent le processus d'écriture du code.
Maintenant, initialisez toutes les broches comme entrées:
void setup () {// mettez votre code de configuration ici, pour l'exécuter une fois: Keyboard.begin (); // configurer le clavier pour (int i = 2; i <11; ++ i) {// initialiser les broches pinMode (i, INPUT); } }
Cela indique à l'Arduino que toutes les broches du tableau sont des entrées. Une boucle est utilisée pour ce faire, donc plutôt que d'écrire pinMode (2, ENTRÉE) neuf fois, il suffit de l'écrire une seule fois. Cela appelle également Keyboard.begin. Cela met en place une fonction intégrée à la bibliothèque Arduino, conçue spécifiquement pour émuler un clavier.
Créez une méthode appelée readButton:
boolean readButton (int pin) {// boutons de vérification et anti-rebond if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; }
Cela prend une épingle et vérifie si elle a été enfoncée ou non. Il revient simplement VRAI ou FAUX. Il contient également anti-rebond logiciel - un simple délai, puis une nouvelle vérification de l'interrupteur garantit que le bouton a bien été enfoncé.
Maintenant, une autre boucle for est appelée à l'intérieur boucle vide ():
void loop () {// mettez ici votre code principal, à exécuter de manière répétée: for (int i = 2; i <11; ++ i) {// cocher les boutons if (readButton (i)) {doAction (i); } } }
Encore une fois, cela passe en revue chaque élément du tableau et vérifie s'il a été enfoncé. Il le fait en appelant le readButton que vous avez créée précédemment. Si un bouton a été enfoncé, il transmet ce numéro de broche à une autre méthode appelée doAction:
void doAction (int pin) {// exécuter le commutateur de tâches (pin) {case 2: Keyboard.println ("drive.google.com"); Pause; cas 3: Keyboard.println ("makeuseof.com"); Pause; cas 4: // CMD + T (nouvel onglet, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); retard (100); Keyboard.releaseAll (); Pause; cas 5: // votre tâche ici se casse; cas 6: // votre tâche ici se casse; cas 7: // votre tâche ici se casse; cas 8: // votre tâche ici se casse; cas 9: // votre tâche ici se casse; } }
Cela vérifie le numéro de broche à l'aide d'un commutateur déclaration. Instructions de commutation (parfois appelées boîtier de commutateur) sont similaires à un si Cependant, ils sont utiles pour vérifier qu'une chose (dans ce cas, le numéro de broche) est égale à l'un de plusieurs résultats différents. Essentiellement, ils sont beaucoup plus rapides à calculer.
Les principaux composants se trouvent à l'intérieur de cette instruction switch. Keyboard.println écrit du texte sur l'ordinateur comme si vous aviez tapé physiquement chaque touche. Keyboard.press appuie et maintient une touche. N'oubliez pas de les libérer en utilisant Keyboard.releaseAll après un court délai!
Voici le code complet:
clés int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// mettez votre code de configuration ici, pour l'exécuter une fois: Keyboard.begin (); // configurer le clavier pour (int i = 2; i <11; ++ i) {// initialiser les broches pinMode (i, INPUT); } } void loop () {// mettez ici votre code principal, à exécuter de manière répétée: for (int i = 2; i <11; ++ i) {// cocher les boutons if (readButton (i)) {doAction (i); } } } boolean readButton (int pin) {// boutons de vérification et anti-rebond if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; } void doAction (int pin) {// exécuter le commutateur de tâches (pin) {case 2: Keyboard.println ("drive.google.com"); Pause; cas 3: Keyboard.println ("makeuseof.com"); Pause; cas 4: // CMD + T (nouvel onglet, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); retard (100); Keyboard.releaseAll (); Pause; cas 5: // votre tâche ici se casse; cas 6: // votre tâche ici se casse; cas 7: // votre tâche ici se casse; cas 8: // votre tâche ici se casse; cas 9: // votre tâche ici se casse; } }
En plus de toutes les touches numériques et alphabétiques, l'Arduino peut appuyer sur la plupart des touches spéciales appelées Modificateurs de clavier. Ils sont particulièrement utiles pour appuyer sur les raccourcis clavier. Le site Arduino a un liste utile.
Il ne reste plus qu'à créer des raccourcis. Vous pouvez mapper cela aux raccourcis existants, tels que Alt + F4 (fermer le programme sous Windows) ou Cmd + Q (quittez le programme macOS). Sinon, assurez-vous de lire notre guide de raccourci clavier ultime Raccourcis clavier Windows 101: le guide ultimeLes raccourcis clavier peuvent vous faire gagner des heures. Maîtrisez les raccourcis clavier universels de Windows, les astuces de clavier pour des programmes spécifiques et quelques autres conseils pour accélérer votre travail. Lire la suite , comment créer des raccourcis Windows Comment créer des raccourcis Windows Desktop en toute simplicitéLes raccourcis de bureau intelligents peuvent vous éviter de passer au crible les menus et les dossiers. Nous vous montrons des moyens rapides et faciles de les créer. Lire la suite , et chaque raccourci Chromebook Chaque raccourci clavier Chromebook dont vous aurez besoinMaîtrisez Chrome OS avec cette liste de tous les raccourcis clavier Chromebook importants dont vous aurez besoin. Lire la suite pour commencer à créer vos propres raccourcis.
Avez-vous créé votre propre boîte de raccourcis? Faites le moi savoir dans les commentaires, j'aimerais voir quelques photos!
Joe est diplômé en informatique de l'Université de Lincoln, au Royaume-Uni. C'est un développeur de logiciels professionnel, et lorsqu'il ne pilote pas de drones ou n'écrit pas de musique, il peut souvent être trouvé en train de prendre des photos ou de produire des vidéos.