Créez vos propres boutons de raccourci personnalisés avec un Arduino

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





Vous n'avez jamais utilisé d'Arduino auparavant ? Consultez notre Guide de Démarrage 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 branchement assortis.
  • 1 résistances de 220 ohms.
  • 1 LED de 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 Micro Pro , comme ils sont si petits et bon marché, 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, comme un UNO ou un Nano, mais cela demande beaucoup de travail acharné 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 Module OSOYOO Pro Micro ATmega32U4 5 V/16 MHz avec en-tête à 2 rangées à remplacer par ATmega328 Pro Mini pour Arduino ACHETEZ MAINTENANT SUR AMAZON

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 les commutateurs de clavier mécanique Cherry MX pour les boutons de raccourci réels, bien que tout l'interrupteur fera l'affaire, à condition qu'il soit momentané et qu'il ne se verrouille pas.



Vous aurez peut-être besoin de quelques autres éléments en fonction de la façon dont vous le construisez. Si vous voulez le prototyper, vous aurez besoin d'un planche à pain sans soudure . Cela vaut la peine de dépenser de l'argent pour en acheter un bon - ils peuvent parfois être très peu fiables. Si vous voulez l'emballer, 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 clés à votre ordinateur. Vous n'appuierez qu'un seul bouton, mais votre ordinateur pensera que vous avez appuyé Tout > 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 enfoncés. J'ai utilisé des Cherry MX Browns, qui ne font pas de bruit lorsqu'on appuie dessus. Ils ont tous 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 capuchons de touches, bien sûr, et il y a un monde de conceptions personnalisées là-bas pour choisir - nous avons acheté de 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 Centres 3D ou Formes . Alternativement, 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 vend un ensemble de testeur/échantillonneur de commutateur sur Amazone ( 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 une alternative appropriée que vous avez.

Max Keyboard Keycap, Cherry MX Switch, Kit de testeur (9 commutateurs Pro Sampler Tester Kit) ACHETEZ MAINTENANT SUR AMAZON

Si vous fabriquez votre propre boîtier, il y a un détail important que vous devez savoir : les commutateurs Cherry MX s'emboîtent 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). Éloignez-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 porte les mots « CHERRY » et le bas a une petite encoche. Insérez une LED de 3 mm dans ce petit emplacement :

Vous constaterez peut-être que les LED semblent mieux montées «à l'envers». C'était le cas pour les touches que j'ai utilisées, et cela n'a aucun impact sur les commutateurs.

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

Ensuite, vissez le support LED (laissez la LED retiré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 stripboard. C'est excellent pour construire des 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 coupées. La découpe d'une piste peut être effectuée avec un outil spécial ou un petit foret.

Pas trop confiant en soudure ? Jetez d'abord un coup d'œil à ces projets simples.

Voici la disposition du stripboard (à l'exclusion des 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 stripboard, voici une version breadboard :

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

Cela devrait s'insérer parfaitement dans le fond du boîtier:

Assurez-vous que les pistes fonctionnent verticalement.

Connectez l'anode ( longue jambe, positif ) de la LED à la résistance de 200 ohms puis au +5 V. Connecter la Cathode ( jambe courte, négatif ) à la terre. Couvrez les pieds avec une gaine thermorétractable, puis poussez dans le support LED. Il n'y a pas besoin de colle, cependant votre support LED peut ne pas être à emboîtement, vous devrez donc peut-être adapter ces instructions.

Vous pouvez utiliser une LED bicolore ici à 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.

Il est maintenant temps de souder toutes les LED des touches. Ceux-ci sont utilisés uniquement pour faire briller les touches, vous pouvez donc les ignorer si vous le souhaitez, et ils n'ont pas besoin d'être connectés à une broche numérique, seulement à 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 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 :

Allumez l'Arduino 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, vérifiez votre câblage.

Branchez maintenant les interrupteurs. Ceux-ci doivent être connectés via une résistance de 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 interrupteur :

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 de 10K à la terre. Attention à la soudure des switchs Cherry MX, ils peuvent être un peu fragiles, j'ai eu plusieurs pins cassés sur moi. Vous voudrez peut-être les souder directement à un autre stripboard, mais les fils de fuite conviennent toujours.

Voilà pour le câblage. Vous souhaiterez peut-être monter une prise femelle USB de type B, mais les petites broches sur celles-ci peuvent souvent être assez difficiles à souder. Si vous ne souhaitez pas le faire, ne vous inquiétez pas. Le connecteur Micro USB de l'Arduino s'adapte parfaitement au trou du châssis. Si vous êtes un peu confus au sujet des différents types USB, assurez-vous de comprendre les différences .

Enfin, vérifiez que votre circuit est correct. Un court-circuit peut facilement détruire un Arduino, et cela peut être facile à 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, afin que vous puissiez résoudre tous les problèmes maintenant pendant 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 le Outils > Planche et Outils > Port menus):

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 > 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 tiennent bien les miens). Vissez également le couvercle.

Faire apparaître l'Arduino comme un clavier est très simple. Si vous utilisez un Nano ou UNO, vous allez reprogrammer votre Arduino en utilisant Mise à jour du micrologiciel de l'appareil (DFU). Ceci est généralement utilisé pour flasher le 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 il s'agit d'une tâche assez complexe. Les 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, c'est donc aussi simple que d'écrire du code !

Tout d'abord, configurez les clés :

int keys[] = {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é des broches différentes, 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.

Initialisez maintenant 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, ENTRÉE) neuf fois, vous n'avez qu'à l'écrire une fois. Cela appelle aussi Keyboard.begin . Cela met en place une fonction intégrée à la bibliothèque Arduino, conçue spécifiquement pour émuler un clavier.

Créer 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;
}

Celui-ci prend une épingle et vérifie si elle a été enfoncée ou non. ça revient tout simplement VRAI ou FAUX . Il contient également quelques logiciel anti-rebond -- un simple délai puis revérifier l'interrupteur permet de s'assurer que le bouton a bien été enfoncé.

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

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 passe en revue chaque élément du tableau et vérifie s'il a été enfoncé. Il le fait en s'appelant 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 faireAction :

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;
}
}

Ceci vérifie le numéro de broche à l'aide d'un changer déclaration. Les 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 broche) est égal à l'un de plusieurs résultats différents. Essentiellement, ils sont beaucoup plus rapides à calculer.

Les principaux composants sont à l'intérieur de cette instruction switch. Clavier.println écrit du texte sur l'ordinateur comme si vous tapiez physiquement chaque touche. Appuyez.clavier appuie et maintient une touche. N'oubliez pas de les libérer en utilisant Keyboard.releaseAll après un court délai !

pourquoi mes données mobiles sont-elles si lentes

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 un liste utile .

Il ne reste plus qu'à créer des raccourcis. Vous pouvez mapper cela à des raccourcis existants, tels que Tout + F4 (fermer le programme sous Windows) ou Cmd + Q (quitter le programme macOS). Sinon, assurez-vous de lire notre guide ultime des raccourcis clavier , comment créer des raccourcis Windows , et chaque raccourci Chromebook pour commencer à créer vos propres raccourcis.

Avez-vous créé votre propre boîte de raccourcis ? Faites le moi savoir dans les commentaires, je serais ravi de voir des photos!

Nous espérons que vous aimez les articles que nous recommandons et dont nous discutons ! MUO a des partenariats affiliés et sponsorisés, nous recevons donc une part des revenus de certains de vos achats. Cela n'affectera pas le prix que vous payez et nous aide à offrir les meilleures recommandations de produits.

Partager Partager Tweeter E-mail Voici pourquoi le FBI a émis un avertissement pour Hive Ransomware

Le FBI a émis un avertissement concernant une souche de ransomware particulièrement désagréable. Voici pourquoi vous devez vous méfier particulièrement du ransomware Hive.

Lire la suite
Rubriques connexes
  • DIY
  • Clavier
  • Raccourcis clavier
  • Arduino
A propos de l'auteur Joe Coburn(136 articles publiés)

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, on le trouve souvent en train de prendre des photos ou de produire des vidéos.

Plus de Joe Coburn

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner
Catégorie Diy