Faites vos propres boutons de raccourci personnalisés avec un Arduino

Faites vos propres boutons de raccourci personnalisés avec un Arduino / DIY

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 à mémoriser en une seule touche de raccourci personnalisée, avec ce simple circuit. Voici le résultat final:

Jamais utilisé un Arduino avant? Consultez notre guide de mise en route Démarrer avec Arduino: Un guide pour débutant Démarrer avec Arduino: Un guide pour débutant Arduino est une plate-forme de prototypage électronique à code source ouvert basée sur un matériel et un logiciel flexibles et faciles à utiliser. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire plus en 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.
  • 10K ohms résistances.
  • Fils de raccordement assortis.
  • 1 x 220 ohms résistances.
  • 1 x 5mm (0.197 pouces) LED.
  • Support LED 1 x 5mm.

Vous aurez besoin d'un Arduino très spécifique pour ce projet. J'utilise un Pro Micro, car ils sont si petits et si économiques que vous avez besoin d'un Arduino doté d'un port USB-série intégré au processeur (Atmega32u4). Il est possible de construire ce projet avec d’autres Arduinos, tels que UNO ou Nano, mais il faut 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 de Pro Micro convient également..

Carte de module OSOYOO Pro Micro ATmega32U4 5V / 16MHz avec embase à 2 rangées de broches pour arduino Leonardo Remplacer ATmega328 Pro Mini Carte de module OSOYOO Pro Micro ATmega32U4 à 5V / 16MHz avec embase de rangées pour arduino Leonardo Remplacer ATmega328 Pro Mini Acheter maintenant sur Amazon $ 8.99

Vous aurez besoin d'un bouton momentané, d'une résistance 10K ohms et d'un fil de raccordement approprié pour chaque bouton que vous souhaitez utiliser. J'utilise des commutateurs à clavier mécanique Cherry MX pour les boutons de raccourci réels, bien que tout commutateur va faire, à condition que ce soit momentané et ne pas verrouiller.

Vous aurez peut-être besoin de quelques autres éléments en fonction de la façon dont vous construisez cela. Si vous voulez le prototyper, vous aurez besoin d'une planche à pain sans soudure. Cela vaut la peine de dépenser de l'argent pour un bon - ils peuvent parfois être très peu fiables. Si vous voulez le mettre en boîte, 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, c'est le cas. Plusieurs boutons connectés à l’Arduino enverront des commandes sur votre ordinateur. Vous n'appuierez que sur un bouton, mais votre ordinateur croira 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 Web 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 font un mécanique “Cliquez sur” son lorsque vous appuyez dessus. J'ai utilisé des Cherry MX Browns, qui ne font pas de bruit lorsqu'ils sont pressés. Elles ont toutes les mêmes dimensions, alors choisissez le modèle de votre choix (ou mélangez et assortissez-le) sans souci..

Vous aurez également besoin d’acheter des capuchons de touches, bien sûr, et vous aurez le choix parmi une multitude de conceptions personnalisées - nous les avons achetées auprès de KeyboardCo au Royaume-Uni..

L'affaire

J'ai imprimé cette coque 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 le construire. De nombreux sites Web fournissent des services d'impression 3D, tels que des concentrateurs 3D ou des Shapeways. Alternativement, il s’agit d’un cas très simple: vous pouvez fabriquer le vôtre en plastique, en plexiglas, en bois ou même en carton. Si vous voulez vraiment être économe, Cherry MX vend un ensemble de testeurs / échantillonneurs de commutateurs sur Amazon (UK). Vous aurez besoin de 4 boulons M5 x 35mm et de 4 écrous M5. Vous pouvez bien sûr les remplacer par une alternative appropriée que vous avez.

Clavier Max Keycap, commutateur Cherry MX, kit de testeur d'échantillons O-Ring Pro Clavier maxi, clavier Cherry MX, kit de testeurs d'échantillons O-Ring Pro Acheter maintenant sur Amazon

Si vous créez votre propre boîtier, vous devez connaître un détail important: les commutateurs Cherry MX s’insèrent 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). S'éloigner trop de ces dimensions et vos commutateurs risquent de ne plus être montés correctement.


Le boîtier imprimé en 3D est en deux parties, le haut et le bas. Enfoncez les commutateurs Cherry MX dans les trous carrés:

Assurez-vous de monter les interrupteurs dans le bon sens. Le haut a les mots “CERISE” sur, et le fond a une petite entaille. Insérez une LED de 3mm dans cette petite fente:

Vous constaterez peut-être que les DEL sont mieux montées “à l'envers”. Ce fut le cas pour les keycaps que j'ai utilisés, et cela n'a aucun impact sur les commutateurs..

Vous devriez maintenant avoir neuf commutateurs avec 9 LED. Il n’est pas nécessaire de coller l’une quelconque de ces pièces. La soudure maintiendra les DEL et la friction maintiendra les commutateurs..

Ensuite, vissez le support de LED (laissez la LED enlevée pour le moment). Vous finirez d'assembler le boîtier plus tard, une fois le circuit construit.

Le circuit

Ce circuit est construit sur du stripboard. C'est excellent pour la construction de circuits semi-permanents, sans le coût d'une carte de circuit imprimé (PCB). C'est simplement un morceau de fibre de verre avec des pistes de cuivre parallèles dans une direction. Ces pistes peuvent être soudées ou coupées. Couper une piste peut être fait avec un outil spécial ou un petit foret.

Pas trop confiant pour souder? Jetez un coup d'œil à ces projets simples Apprenez à souder, avec ces astuces et projets simples Apprenez à souder, à ces astuces et projets simples Êtes-vous un peu intimidé par la pensée d'un fer en fusion et d'un métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous devrez apprendre à souder. Laissez-nous vous aider. Lire plus en premier.

Voici la disposition des panneaux de bande (excluant les fils de fuite):

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 cartes à bandes, voici une version de la carte:

Il est difficile de compresser tous les composants dans un espace aussi réduit. Coupez les coins de votre panneau de bande comme suit:

Cela devrait s'intégrer parfaitement dans le fond du boîtier:

Assurez-vous que les pistes fonctionnent verticalement.

Connecter l'anode (jambe longue, positive) de la diode électroluminescente à la résistance de 200 ohm puis à +5 V. Branchez la cathode (jambe courte, négative) à la terre. Couvrez les jambes avec une gaine thermorétractable, puis poussez-les dans le support à LED Il n’est pas nécessaire d’utiliser de la colle, mais votre support de LED n’est peut-être pas un ajustement instantané. Vous devrez peut-être adapter ces instructions..

Vous voudrez peut-être utiliser ici une LED bicolore, ce qui vous permettra de configurer deux banques de commutateurs ou plus, avec une LED de statut de couleur différente pour chaque banque..

Il est maintenant temps de souder toutes les DEL des touches. Celles-ci servent uniquement à faire briller les touches, vous pouvez donc les ignorer si vous le souhaitez et elles ne doivent pas être connectées à une broche numérique, mais uniquement à l’alimentation. Connectez toutes les anodes ensemble et toutes les cathodes ensemble. Apprenez de mon erreur - c'est beaucoup plus facile de le faire avant de câbler les commutateurs! Connectez les anodes à +5 V à travers une résistance de 220 ohms et les cathodes à la terre. Ces voyants sont câblés en parallèle. Voici le circuit juste pour ces LED:

Utilisez un petit morceau de gaine thermorétractable pour couvrir la connexion entre les DEL et l’Arduino:

Mettez l’Arduino sous tension pour tester le fonctionnement de tous les voyants. Vous n'avez pas besoin de télécharger de code. Si des voyants ne fonctionnent pas, allez vérifier votre câblage.

Maintenant, connectez les commutateurs. Ceux-ci doivent être connectés via une résistance 10k, sinon l'Arduino mourra. C'est ce qu'on appelle un court-circuit - +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. Soyez prudent lors de la soudure des commutateurs Cherry MX, ils peuvent être un peu fragiles, plusieurs broches se sont cassées sur moi. Vous voudrez peut-être les souder directement sur du carton, mais les fils de fuite conviennent toujours.

Voilà pour le câblage. Vous voudrez peut-être monter une prise femelle USB de type B, cependant, les petites broches dessus peuvent souvent être assez difficiles à souder. Si vous ne souhaitez pas faire cela, ne vous inquiétez pas. Le connecteur Micro USB de l’Arduino s’insère parfaitement dans le trou du châssis. Si vous êtes un peu confus au sujet des différents types de ports USB, assurez-vous de bien comprendre les différences Comprendre les types de câbles USB et lesquels utiliser Comprendre les types de câbles USB et lequel utiliser Pourquoi existe-t-il tant de câbles USB différents? Découvrez les différences entre les types de connecteurs USB et l’achat du meilleur câble. Lire la suite .

Enfin, vérifiez que votre circuit est correct. Un court-métrage peut facilement détruire un Arduino, et il peut être facile de le faire avec du stripboard.

Le code

Maintenant, testez le circuit est correct. C'est une bonne idée de le faire avant de continuer, afin que vous puissiez résoudre tout problème dès que vous le pourrez. Téléchargez ce code de test (n'oubliez pas de sélectionner le bon tableau et le bon port parmi les 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 () // placez votre code de configuration ici, pour qu'il ne s'exécute qu'une fois: Serial.begin (9600); pinMode (2, INPUT); pinMode (3, INPUT); pinMode (4, INPUT); pinMode (5, INPUT); pinMode (6, INPUT); pinMode (7, INPUT); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT);  void loop () // place ton code principal ici, pour exécuter de manière répétée: for (int i = 2; i < 11; ++i)  if(digitalRead(i) == HIGH)  // software de-bounce improves accuracy delay(10); if(digitalRead(i) == HIGH)  // check switches Serial.print ("input"); Serial.println(i); delay(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. Le moniteur série devrait afficher le numéro du bouton sur lequel vous avez appuyé. Comme avec les voyants, si votre ordinateur se plaint de consommer trop de courant ou si les voyants s’éteignent lorsque vous appuyez sur un bouton, débranchez-le 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 aient bien maintenu le mien). Visser le couvercle aussi.

Faire en sorte que l’Arduino apparaisse comme un clavier est très simple. Si vous utilisez un Nano ou un ONU, vous allez reprogrammer votre Arduino en utilisant Mise à jour du micrologiciel du périphérique (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 micrologiciel qui le fera fonctionner comme un clavier. Cela ne sera pas couvert ici, car c'est une tâche assez complexe. Le site Web Arduino a un bon tutoriel pour cela.

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.!

Commencez par configurer les clés:

touches int [] = 2, 3, 4, 5, 6, 7, 8, 9, 10;

C'est un tableau contenant toutes les broches auxquelles les boutons sont connectés. Si vous avez utilisé plus ou moins de boutons ou utilisé des broches différentes, modifiez les valeurs ici.

Un tableau est un ensemble de choses aux vues similaires. Les ordinateurs peuvent optimiser votre code pour y accéder rapidement et accélérer le processus de rédaction du code..

Maintenant initialisez toutes les broches en tant qu’entrées:

void setup () // place ton code de configuration ici, pour exécuter une fois: Keyboard.begin (); // configuration du clavier pour (int i = 2; i < 11; ++i)  // initilize pins pinMode(i, INPUT);  

Cela indique à l’Arduino que toutes les broches de la matrice sont des entrées. Une boucle est utilisée pour cela, donc plutôt que d'écrire pinMode (2, INPUT) neuf fois, il suffit de l'écrire une fois. Cela appelle aussi Keyboard.begin. Ceci configure une fonction intégrée à la bibliothèque Arduino, spécialement conçue pour émuler un clavier..

Créez une méthode appelée readButton:

boolean readButton (int pin) // boutons de vérification et anti-rebond si (digitalRead (pin) == HIGH) delay (10); if (digitalRead (pin) == HIGH) retourne vrai;  return false; 

Cela prend une broche et vérifie si elle a été appuyée ou non. Il retourne simplement VRAI ou FAUX. Il contient également des logiciel anti-rebond - un simple délai, puis une nouvelle vérification de l'interrupteur garantit que le bouton a vraiment été enfoncé.

Maintenant, une autre boucle for est appelée à l'intérieur boucle vide ():

void loop () // mettez votre code principal ici, pour exécuter de manière répétée: for (int i = 2; i < 11; ++i)  // check buttons if(readButton(i))  doAction(i);   

Encore une fois, cela passe en revue tous les éléments du tableau et vérifie s'il a été activé. Il le fait par appelé le readButton méthode 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) // effectuer les tâches changer (pin) cas 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'); délai (100); Keyboard.releaseAll (); Pause; cas 5: // votre tâche ici est interrompue; cas 6: // votre tâche ici est interrompue; case 7: // votre tâche ici est interrompue; case 8: // votre tâche ici casse; case 9: // votre tâche ici casse; 

Ceci vérifie le numéro de pin en utilisant un commutateur déclaration. Instructions Switch (parfois appelées boîtier de commutation) sont similaires à un si déclaration, mais ils sont utiles pour vérifier qu’une chose (dans ce cas, le numéro de code confidentiel) est égale à un ou plusieurs résultats différents. Essentiellement, ils sont beaucoup plus rapides à calculer.

Les composants principaux sont à l'intérieur de cette instruction switch. Keyboard.println écrit du texte sur l'ordinateur comme si vous aviez physiquement tapé 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:

touches int [] = 2, 3, 4, 5, 6, 7, 8, 9, 10; void setup () // place ton code de configuration ici, pour exécuter une fois: Keyboard.begin (); // configuration du clavier pour (int i = 2; i < 11; ++i)  // initilize pins pinMode(i, INPUT);   void loop()  // put your main code here, to run repeatedly: for (int i = 2; i < 11; ++i)  // check buttons if(readButton(i))  doAction(i);    boolean readButton(int pin)  // check and debounce buttons if (digitalRead(pin) == HIGH)  delay(10); if (digitalRead(pin) == HIGH)  return true;   return false;  void doAction(int pin)  // perform tasks switch (pin)  case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break;  

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. Celles-ci sont particulièrement utiles pour appuyer sur les raccourcis clavier. Le site Web Arduino a une liste utile.

Il ne reste plus qu'à créer des raccourcis. Vous pouvez mapper cela à des 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 des raccourcis clavier ultimes Raccourcis clavier Windows 101: Le guide ultime Raccourcis clavier Windows 101: Le guide ultime Les raccourcis clavier vous permettent de gagner du temps. Maîtrisez les raccourcis clavier universels Windows, les astuces clavier pour des programmes spécifiques et quelques autres conseils pour accélérer votre travail. En savoir plus, comment créer des raccourcis Windows Comment créer des raccourcis de bureau Windows en toute simplicité Comment créer des raccourcis de bureau Windows en toute simplicité Des raccourcis de bureau intelligents peuvent vous éviter de passer inaperçu dans les menus et les dossiers. Nous vous montrons des moyens rapides et faciles pour les créer. En savoir plus et chaque raccourci Chromebook Voici chaque raccourci Chromebook dont vous aurez besoin Voici chaque raccourci Chromebook dont vous aurez jamais besoin Recherchez-vous une liste maîtresse des raccourcis clavier pour votre Chromebook? Voici chaque combinaison de touches dont vous aurez besoin pour Chrome OS! Lisez-en plus pour commencer à créer vos propres raccourcis.

Avez-vous créé votre propre boîte de raccourci? Laissez-moi savoir dans les commentaires, j'aimerais voir des photos!

Explorez plus sur: Arduino, Clavier, Raccourcis Clavier.