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

L'humble Arduino peut faire beaucoup de choses, mais saviez-vous qu'il peut émuler un clavier USB? Vous pouvez combiner de longs raccourcis clavier en une seule touche de raccourci personnalisée, avec ce circuit simple.

L'humble Arduino peut faire beaucoup de choses, mais saviez-vous qu'il peut émuler un clavier USB?  Vous pouvez combiner de longs raccourcis clavier en une seule touche de raccourci personnalisée, avec ce circuit simple.
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 à mémoriser en une seule touche de raccourci personnalisée, avec ce circuit simple. Voici le résultat final:

Jamais utilisé un Arduino avant? Découvrez notre guide de démarrage Introduction à Arduino: Guide du débutant Introduction à Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique open source basée sur un matériel et un logiciel 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 en premier.

De quoi as-tu besoin

Pièces de raccourcis Arduino
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 branchement assortis.
  • 1 x résistances de 220 ohms.
  • 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 bon marché, vous avez besoin d'un Arduino qui a USB-Serial intégré au processeur (Atmega32u4). Il est possible de construire ce projet avec d'autres Arduinos, comme un UNO ou un Nano, mais il faut beaucoup de travail pour refaire le bios et jouer du violon pour que les choses fonctionnent. Les clones d'autres modèles Arduino ne fonctionnent généralement pas, mais un clone Pro Micro est également bon.

Carte de module 5V / 16MHz Pro Micro ATmega32U4 OSOYOO Pro avec 2 broches pour arduino Leonardo Remplacer ATmega328 Pro Mini Carte de module 5V / 16MHz Pro OSMEO32U Pro avec 2 broches pour arduino Leonardo Remplacer ATmega328 Pro Mini Acheter maintenant Sur Amazon $ 8.99

Vous aurez besoin d'un bouton momentané, d'une résistance de 10K ohms et d'un fil de branchement approprié pour chaque bouton que vous souhaitez utiliser. J'utilise les commutateurs de clavier mécanique Cherry MX pour les boutons de raccourci réels, bien que tout commutateur fera l'affaire, à condition qu'il soit momentané et ne se verrouille pas.

Vous pouvez avoir besoin de quelques autres éléments selon 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 l'argent sur un bon - ils peuvent parfois être très peu fiables. Si vous voulez encadrer cela, vous voudrez acheter un stripboard.

Construire un plan

Voici comment cela va fonctionner. L'Arduino sera programmé pour agir comme un clavier USB - en ce qui concerne votre ordinateur, il est. Plusieurs boutons connectés à l'Arduino enverront des commandes clés à votre ordinateur. Vous n'aurez qu'à appuyer sur un bouton, mais votre ordinateur pensera que vous avez appuyé sur Alt > F4, par exemple.

Sélection d'un commutateur

Arduino Cherry MX

Il existe plusieurs variantes d'interrupteurs de la série MX. Ce site Web constitue une excellente introduction, mais il se résume essentiellement au bruit et à la pression. Certains modèles nécessitent plus de force pour appuyer, et certains modèles font un "clic" mécanique lorsqu'ils sont pressés. J'ai utilisé Cherry MX Browns, qui ne font pas de bruit quand on appuie dessus. Ils sont tous les mêmes dimensions, alors choisissez n'importe quel modèle que vous aimez (ou mélanger et assortir) sans souci.

Vous aurez également besoin d'acheter des casquettes clés, bien sûr, et il y a un monde de designs personnalisés là-bas à choisir - nous avons acheté chez KeyboardCo au Royaume-Uni

L'affaire

J'ai imprimé ce cas en 3D, et vous pouvez télécharger les fichiers .STL de Thingiverse. Ne vous inquiétez pas si vous ne possédez pas d'imprimante 3D, vous pouvez toujours le créer. De nombreux sites proposent des services d'impression 3D, tels que 3D Hubs ou Shapeways. Alternativement, c'est un cas très simple, vous pouvez faire votre propre en plastique, en plexiglas, en bois, ou même en carton. Si vous voulez être vraiment économe, Cherry MX vend un set de testeur / échantillonneur 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.

Max Clavier Keycap, Cherry MX Switch, O-Ring Pro Sampler Testeur Kit Max Keyboard Keyboard, Cherry MX Switch, O-Ring Pro Sampler Testeur Kit Acheter maintenant Sur Amazon $ 19.99

Si vous fabriquez votre propre étui, il y a un détail important que vous devez savoir: Les interrupteurs Cherry MX sont encastrés dans leurs trous de montage. Ils nécessitent un trou de montage carré de 14 x 14 mm (0, 551 pouce), la plaque ne dépassant pas 1, 5 mm (0, 059 pouce). S'éloigner trop de ces dimensions, et vos commutateurs ne peuvent plus se monter correctement.

Cas de raccourci
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:

Raccourci Cherry MX Mount

Assurez-vous de monter les commutateurs correctement. Le haut a les mots "CHERRY" sur, et le fond a une petite entaille. Insérez une LED de 3mm dans ce petit slot:

Raccourci Cherry MX LED

Vous trouverez peut-être que les LED sont mieux montées "à l'envers". C'était 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 LEDS. Il n'y a pas besoin de coller l'une de ces pièces. La soudure tiendra les LED, et le frottement maintiendra les commutateurs.

Raccourci Cherry MX All

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 stripboard. Ceci 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 à, ainsi que couper. Couper une piste peut être fait avec un outil spécial ou un petit foret.

Pas trop confiant à la soudure? Jetez un oeil à ces projets simples Apprenez à souder, avec ces conseils simples et projets Apprenez à souder, avec ces conseils simples et projets Êtes-vous un peu intimidé par la pensée d'un fer chaud et de métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous aurez besoin d'apprendre à souder. Laissez-nous vous aider. Lire la suite en premier.

Voici la disposition de la bande dessinée (exclut les pistes de fin):

Arduino Shortcut Stripboard

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 strip-board, voici une version de breadboard:

Arduino Shortcut Breadboard

C'est un ajustement serré pour serrer tous les composants dans un si petit espace. Coupez les coins de votre stripboard comme suit:

Shortboard Stripboard

Cela devrait correspondre parfaitement dans le fond de l'affaire:

Shortboard Stripboard dans la boîte

Assurez-vous que les pistes fonctionnent verticalement.

Connecter l'anode ( pied long, positif ) de la LED à la résistance de 200 ohms puis à +5 V. Connecter la cathode ( jambe courte, négative ) à la masse. Couvrir les jambes avec gaine thermorétractable, puis pousser dans le support de LED. Il n'y a pas besoin de colle, cependant votre support de LED peut ne pas être un push-fit, donc vous devrez peut-être adapter ces instructions.

LED d'état du raccourci

Vous voudrez peut-être utiliser une LED bicolore à la place - cela vous permettra de configurer deux ou plusieurs banques de commutateurs, avec une LED d'état de couleur différente pour chaque banque.

Maintenant, il est temps de souder toutes les LED pour les keycaps. Ceux-ci sont utilisés uniquement pour faire briller les touches, de sorte que vous pouvez les ignorer si vous le souhaitez, et ils ne doivent pas être connectés à une broche numérique, seule puissance. Connectez toutes les anodes ensemble, et toutes les cathodes ensemble. Apprenez de mon erreur - c'est beaucoup plus facile à 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 LED sont câblées en parallèle. Voici le circuit juste pour ces LEDS:

Circuit de LED du bouton de raccourci

Utilisez un petit morceau de tube thermorétractable pour couvrir la connexion entre les LED et l'Arduino:

Raccourci LED Gaine thermorétractable

Allumez l'Arduino pour tester toutes les LED fonctionnent. Vous n'avez pas besoin de télécharger de code. Si des voyants ne fonctionnent pas, allez vérifier votre câblage.

Test de LED de raccourci

Maintenant, câbler les commutateurs. Ceux-ci doivent être connectés via une résistance de 10k, sinon l'Arduino va mourir. C'est ce qu'on appelle un raccourci 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 ne pas avoir à le faire). Voici le circuit pour un commutateur:

Circuit de raccourci Arduino

Ce circuit est le même pour tous les neuf commutateurs. Connectez les commutateurs aux broches numériques de deux à dix, chacune avec sa propre résistance de 10K à la masse. Attention à souder les switchs Cherry MX, ils peuvent être un peu fragiles, j'ai eu plusieurs broches qui me brisent. Vous pouvez souder ces derniers directement à un peu plus de stripboard, mais les fils de fuite sont toujours adaptés.

C'est tout pour le câblage. Vous voudrez peut-être monter une prise femelle USB de type B, mais les petites broches sur elles peuvent souvent être assez difficiles à souder. Si vous ne souhaitez pas faire cela, ne vous inquiétez pas. Le connecteur Micro USB sur l'Arduino correspond parfaitement au trou dans le châssis. Si vous êtes un peu confus au sujet des différents types d'USB, assurez-vous de comprendre les différences. Comprendre les types de câbles USB et lesquels utiliser Comprendre les types de câbles USB et lesquels utiliser Le monde des câbles USB peut être un peu déroutant, car il y en a beaucoup de types de connecteurs différents. Voici tout ce que vous devez savoir pour ne plus être confus. Lire la suite .

Enfin, vérifiez que votre circuit est correct. Un court peut facilement détruire un Arduino, et il peut être facile à faire en utilisant stripboard.

Le code

Maintenant, testez le circuit est correct. C'est une bonne idée de le faire avant de continuer, ainsi vous pouvez résoudre n'importe quels problèmes maintenant pendant que vous pouvez. Téléchargez ce code de test (n'oubliez pas de sélectionner la carte et le port corrects dans les menus Outils > Carte et Outils > Port ):

const int buttons[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; // array of all button pins void setup() { // put your setup code here, to run once: 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() { // put your main code here, to run repeatedly: 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 > Serial Monitor ). Un par un, appuyez sur chaque bouton. Vous devriez voir le moniteur de série afficher le numéro du bouton que vous avez appuyé. Tout comme avec la LED, si votre ordinateur se plaint de tirer 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 pouvez utiliser un peu de colle pour maintenir le circuit en place (bien que les fils ont tenu le mien in fine). Verrouillez également le couvercle.

Faire apparaître l'Arduino comme un clavier est très simple. Si vous utilisez un Nano ou un UNO, vous allez reprogrammer votre Arduino à l'aide de la mise à jour du firmware 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 firmware 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.

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, donc c'est aussi simple que d'écrire du code!

D'abord, configurez les clés:

 int keys[] = {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 une collection de choses semblables. Les ordinateurs peuvent optimiser votre code pour y accéder rapidement, et ils accélèrent le processus d'écriture de code.

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

 void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i< 11; ++i) { // initilize pins pinMode(i, INPUT); } } 

Cela indique à l'Arduino que toutes les broches du tableau 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 é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) { // check and debounce buttons 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é pressée ou non. Il retourne simplement VRAI ou FAUX . Il contient également un peu de logiciel anti - rebond - un simple délai, puis re-vérifier le commutateur assure que le bouton a vraiment été pressé.

Maintenant, une autre boucle est appelée à l'intérieur de void loop () :

 void loop() { // put your main code here, to run repeatedly: for (int i = 2; i< 11; ++i) { // check buttons if(readButton(i)) { doAction(i); } } } 

Encore une fois, cela va sur chaque élément dans le tableau et vérifie s'il a été pressé. Il le fait en appelant la méthode 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) { // 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; } } 

Cela vérifie le numéro de broche à l'aide d'une instruction switch . Les instructions switch (parfois appelées switch case ) sont similaires à une instruction if, mais elles 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 composants principaux sont à l'intérieur de cette instruction switch. Keyboard.println écrit du texte sur l'ordinateur comme si vous tapiez physiquement chaque touche. Le clavier.appuie sur et maintient une touche. Ne pas oublier de les libérer en utilisant Keyboard.releaseAll après un court délai!

Voici le code complet:

 int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (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 . Ceux-ci sont particulièrement utiles pour appuyer sur les raccourcis clavier. Le site Web Arduino a une liste utile.

Maintenant tout ce qui reste est de créer des raccourcis. Vous pouvez mapper cela aux raccourcis existants, tels que Alt + F4 (fermer le programme sous Windows) ou Cmd + Q (quitter le programme macOS). Alternativement, assurez-vous de lire notre guide de raccourci clavier ultime Raccourcis clavier Windows 101: Le Guide ultime Raccourcis clavier Windows 101: Le Guide ultime Raccourcis clavier peut vous faire économiser des heures de temps. Maîtrisez les raccourcis clavier universels de Windows, les astuces de clavier pour des programmes spécifiques et quelques autres astuces pour accélérer votre travail. En savoir plus, comment créer des raccourcis Windows Comment créer des raccourcis clavier Windows facilement Comment créer des raccourcis clavier Windows facilement 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. En savoir plus et tous les raccourcis Chromebook Voici quelques raccourcis Chromebook dont vous aurez toujours besoin Voici tous les raccourcis Chromebook dont vous aurez besoin Recherchez-vous une liste maîtresse de raccourcis clavier pour votre Chromebook? Voici toutes les combinaisons de touches dont vous aurez besoin pour Chrome OS! Lisez la suite pour commencer à créer vos propres raccourcis.

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

In this article