Créez vos propres boutons de raccourci personnalisés à l’aide d’Arduino
L’humble Arduino peut faire beaucoup, mais saviez-vous qu’il peut émuler un clavier USB ? Avec ce circuit simple, vous pouvez combiner ces raccourcis clavier longs et difficiles à mémoriser en un seul raccourci personnalisé. Voici le résultat final :
Vous n’avez jamais utilisé d’Arduino auparavant ? Consultez d’abord notre guide de démarrage.
de quoi avez-vous besoin
Voici ce qu’il faut pour réaliser ce projet :
- 1 Arduino Pro Micro.
- Boutons momentanés ou boutons du clavier.
- Résistance 10K ohms.
- Diverses lignes de connexion.
- 1 résistance de 220 ohms.
- 1 DEL de 5 mm (0,197 po).
- 1 support de lampe LED de 5 mm.
Vous aurez besoin d’un Arduino très spécifique pour ce projet. J’utilise Pro Micro car ils sont petits et bon marché, vous avez besoin d’un Arduino avec USB-Serial 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 d’efforts pour reflasher le bios et bricoler pour que les choses fonctionnent. Les clones d’autres modèles Arduino ne fonctionnent généralement pas du tout, mais les clones Pro Micro le feront aussi.
Vous aurez besoin d’un bouton momentané, d’une résistance de 10K ohms et de fils de connexion pour chaque bouton que vous souhaitez utiliser.J’utilise les commutateurs de clavier mécaniques Cherry MX pour les boutons de raccourci réels, cependant quelconque L’interrupteur fera l’affaire tant qu’il est momentané et qu’il ne se verrouille pas.
Faire une vidéo du jour
Selon la façon dont vous construisez, vous aurez peut-être besoin d’éléments supplémentaires. Si vous voulez le prototyper, vous aurez besoin d’une planche à pain sans soudure. C’est payant de dépenser de l’argent pour un bon produit – ils peuvent parfois être très peu fiables. Si vous voulez l’emballer, vous voudrez acheter des planches détachables.
Plan de construction
Voilà comment cela fonctionne. 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 clés à votre ordinateur.Vous n’appuyerez que sur un bouton, mais votre ordinateur pensera que vous avez appuyé dessus Autre > F4Par exemple.
interrupteur
Il existe plusieurs variantes des commutateurs de la série MX. Ce site fournit une bonne introduction, mais ils se résument essentiellement au bruit et au stress. 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 et il n’y a pas de son lorsqu’on appuie dessus. Ils sont tous de la même taille, alors choisissez le modèle que vous aimez (ou mélangez et assortissez) sans souci.
Bien sûr, vous devrez également acheter des capuchons de touches, et vous avez le choix entre de nombreux modèles personnalisés – nous les avons obtenus de KeyboardCo au Royaume-Uni
Cas
J’ai imprimé en 3D cette coque, vous pouvez la télécharger .STL Fichier de Thingiverse. Si vous n’avez pas d’imprimante 3D, ne vous inquiétez pas, vous pouvez toujours la construire. De nombreux sites Web proposent des services d’impression 3D, tels que 3D Hubs ou Shapeways. Ou, il s’agit d’un étui très simple, vous pouvez fabriquer le vôtre en plastique, en plexiglas, en bois ou même en carton. Si vous voulez être vraiment économe, Cherry MX propose un ensemble testeur/échantillonneur de commutateurs en vente sur Amazon (Royaume-Uni). Vous aurez besoin de 4 boulons M5 x 35 mm et de 4 écrous M5. Vous pouvez bien sûr les remplacer par des pièces de rechange appropriées que vous avez.
Si vous fabriquez votre propre boîtier, il y a un détail important à savoir : les commutateurs Cherry MX sont des trous de montage enfichables. Ils nécessitent un trou de montage carré de 14 x 14 mm (0,551 po) et l’épaisseur de la carte ne dépasse pas 1,5 mm (0,059 po). Si vous vous écartez trop de ces dimensions, votre interrupteur risque de ne plus s’adapter correctement.
La coque imprimée en 3D est divisée en parties supérieure et inférieure. Poussez le commutateur Cherry MX dans le trou carré :
Assurez-vous d’installer le commutateur dans le bon sens. Il a « CHERRY » sur le dessus et une petite encoche sur le dessous. Insérez une LED de 3 mm dans cette petite fente :
Vous constaterez peut-être que les LED semblent mieux montées « à l’envers ». C’est le cas des touches que j’utilise, qui n’affectent en rien le commutateur.
Vous devriez maintenant avoir 9 interrupteurs avec 9 LED. Il n’est pas nécessaire de coller ces pièces. La soudure maintiendra la LED et le frottement maintiendra l’interrupteur.
Ensuite, vissez le support de LED (retirez temporairement la LED). Une fois le circuit construit, vous terminerez l’assemblage du boîtier plus tard.
circuit
Le circuit est construit sur une carte dénudée. Ceci est idéal pour construire des circuits semi-permanents sans le coût d’une carte de circuit imprimé (PCB). C’est juste un morceau de fibre de verre avec des pistes en cuivre parallèles dans une direction. Ces rails peuvent être soudés ou coupés. Les rails peuvent être coupés avec des outils spéciaux ou une petite perceuse.
Vous n’êtes pas trop à l’aise avec le soudage ? Jetez d’abord un coup d’œil à ces projets simples.
Voici la disposition des lamelles (à l’exclusion des indices de fuite):
Assurez-vous de couper les traces sous la résistance et l’Arduino. Étant donné que la lecture des circuits de stripboard peut être très difficile, voici une version de planche à pain :
Il était naturel de regrouper tous les composants dans un si petit espace. Coupez les coins du panneau pelable comme suit :
Cela devrait s’intégrer parfaitement dans le fond du boîtier :
Assurez-vous que la piste fonctionne verticalement.
Connectez l’anode (longues jambes, positif) à une résistance de 200 ohms, puis à +5 V. Connectez la cathode (pattes courtes, négatif) à la terre. Couvrez les pieds avec de la gaine thermorétractable et enfoncez la douille LED. Aucune colle n’est nécessaire, mais vos douilles LED peuvent ne pas être enfichables, vous devrez donc peut-être ajuster ces instructions.
Vous pouvez utiliser une LED bicolore ici – cela vous permettra de configurer deux ou plusieurs groupes de commutateurs, chacun avec une LED d’état de couleur différente.
Il est maintenant temps de souder toutes les LED pour les touches. Ceux-ci ne sont utilisés que pour faire briller les touches, vous pouvez donc les ignorer si vous le souhaitez, et vous n’avez pas à les connecter aux broches numériques, juste à l’alimentation. Connectez toutes les anodes ensemble et toutes les cathodes ensemble. Apprenez de mes erreurs – beaucoup plus facile à faire avant de câbler le commutateur ! Connectez l’anode au +5 V via une résistance de 220 ohms et la cathode à la masse. Ces LED sont connectées en parallèle. Voici le circuit de ces LED :
Utilisez un petit morceau de thermorétractable pour couvrir la connexion entre la LED et l’Arduino :
Allumez l’Arduino pour tester le fonctionnement de toutes les LED. Vous n’avez pas besoin de télécharger de code. Si une LED ne fonctionne pas, revérifiez le câblage.
Connectez maintenant le commutateur. Ceux-ci doivent être connectés via des résistances de 10k ou l’Arduino gèlera. C’est ce qu’on appelle un court-circuit complet – le +5 V va directement à la masse et tout ce qui reste de votre Arduino est un nuage de fumée (croyez-moi, j’en ai tué un pour que vous n’ayez pas à le faire). Voici un circuit pour un interrupteur:
Le circuit est le même pour les neuf commutateurs. Connectez le commutateur aux broches numériques 2 à 10, chacune avec sa propre résistance 10K à la terre. Soyez prudent en soudant les commutateurs Cherry MX, ils peuvent être un peu fragiles, j’ai eu quelques broches cassées sur moi. Vous voudrez peut-être les souder directement à plus de stripboards, mais les fils de fin conviendront toujours.
C’est le câblage. Vous voudrez peut-être installer une prise femelle USB de type B, mais les petites broches sont souvent difficiles à souder. Si vous ne voulez 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 clés USB, assurez-vous de bien comprendre les différences.
Enfin, vérifiez que votre circuit est correct. Un court-circuit peut facilement détruire un Arduino, ce qui est facile à faire avec une carte à bande.
codage
Testez maintenant l’exactitude du circuit. C’est une bonne idée de le faire avant de continuer, afin que vous puissiez résoudre tous les problèmes que vous pouvez maintenant.Téléchargez ce code de test (n’oubliez pas de commencer outil > planche et outil > Port menu):
bouton const int[] = {2,3,4,5,6,7,8,9,10} ; // tableau de toutes les broches du bouton
void set() {
// Mettez votre code d’installation ici, exécutez-le une fois :
série.start(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);
}
boucle vide() {
// Mettez votre code principal ici et exécutez-le à plusieurs reprises :
pour(int je = 2; je < 11; ++i) {
si (nombrelu(i) == haut) {
// L’anti-rebond logiciel améliore la précision
retard(10);
si (nombrelu(i) == haut) {
// vérifier le commutateur
Serial.print(« entrée »);
numéro de série.println(i);
retard(250);
}
}
}
}
Si vous modifiez le circuit, vous devrez peut-être changer les broches.
Après le téléchargement, 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 les LED, si votre ordinateur se plaint d’un courant excessif, ou si la LED s’éteint 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 va bien, continuez et mettez le circuit dans la boîte. Vous devrez peut-être utiliser une petite quantité de colle pour maintenir le circuit en place (bien que le fil tienne très bien le mien). Visser le couvercle aussi.
Faire en sorte qu’un Arduino ressemble à un clavier est assez simple. Si vous utilisez un Nano ou un UNO, vous reprogrammerez votre Arduino avec Mise à jour du micrologiciel de l’appareil (DFU). Ceci est généralement utilisé pour flasher un nouveau firmware sur l’Arduino. Vous l’utiliserez pour flasher l’Arduino avec le nouveau firmware, le faisant fonctionner comme un clavier. Cela ne sera pas abordé ici car il s’agit d’une tâche assez complexe. Le site Web d’Arduino propose un bon tutoriel.
L’Arduino Pro Micro rend cela très facile. La logique nécessaire 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, définissez la clé :
clé entière[] = {2, 3, 4, 5, 6, 7, 8, 9, 10} ;
Il s’agit d’un tableau contenant toutes les broches auxquelles le bouton est connecté. Si vous avez utilisé plus ou moins de boutons ou utilisé une broche différente, modifiez la valeur ici.
Un tableau est une collection d’éléments partageant les mêmes idées. Les ordinateurs peuvent optimiser vos codes pour y accéder rapidement et accélérer le processus d’écriture du code.
Initialisez maintenant toutes les broches en tant qu’entrées :
void set() {
// Mettez votre code d’installation ici, exécutez-le une fois :
keyboard.start(); // définit le clavier
pour (int je = 2; je < 11; ++i) {
// initialise les broches
pinMode(je, entrée);
}
}
Cela indique à l’Arduino que toutes les broches du tableau sont des entrées.Une boucle est utilisée pour ce faire, donc au lieu d’écrire pinMode(2, entrée) Neuf fois, vous n’avez qu’à l’écrire une seule fois.cela s’appelle aussi démarrage au clavierCela met en place une fonction intégrée à la bibliothèque Arduino conçue pour simuler un clavier.
Créer une méthode appelée bouton de lecture:
bouton de lecture booléen (int pin) {
// Contrôle et anti-rebond des boutons
si (numériqueRead(broche) == HIGH) {
retard(10);
si (numériqueRead(broche) == HIGH) {
retourner vrai ;
}
}
retourner faux ;
}
Cela prend une épingle et vérifie si elle a été enfoncée.ça revient juste réel ou alors Incorrect. il contient également quelques Logiciel…