Feu els vostres propis botons de drecera personalitzats amb un Arduino

Feu els vostres propis botons de drecera personalitzats amb un Arduino

L’humil Arduino pot fer moltes coses, però sabíeu que pot emular un teclat USB? Podeu combinar les dreceres de teclat llargues difícils de recordar en una sola tecla de drecera personalitzada, amb aquest circuit senzill. Aquí teniu el resultat final:





Mai no heu utilitzat un Arduino? Consulteu el nostre guia d'iniciació primer.





Què necessites

Això és el que necessiteu per fer aquest projecte:





  • 1 x Arduino Pro Micro.
  • Botons momentanis o botons de teclat.
  • Resistències de 10K ohm.
  • Assortiment de cables de connexió.
  • 1 x 220 ohm resistències.
  • 1 x 5 mm (0,197 polzades) LED.
  • Suport LED d'1 x 5 mm.

Necessitareu un Arduino molt específic per a aquest projecte. Estic fent servir un Pro Micro , ja que són tan petits i barats, necessiteu un Arduino que tingui USB-Serial integrat al processador (Atmega32u4). És possible construir aquest projecte amb altres Arduinos, com ara UNO o Nano, però requereix molta feina per tornar a fer flash de la bios i jugar a les coses per funcionar. Els clons d'altres models Arduino no solen funcionar gens, però un clon Pro Micro també està bé.

Taula de mòduls OSOYOO Pro Micro ATmega32U4 5V / 16MHz amb capçal de pin de 2 files Substitueix amb ATmega328 Pro Mini per Arduino COMPRAR A AMAZON

Necessitareu un botó momentani, una resistència de 10K ohmis i un cable de connexió adequat per a cada botó que vulgueu utilitzar. Estic fent servir commutadors de teclat mecànics Cherry MX per als botons de drecera reals, però cap el commutador funcionarà, sempre que sigui momentani i no estigui bloquejat.



És possible que necessiteu alguns altres elements en funció de com es construeixi. Si voleu prototipar-lo, necessitareu un fitxer tauler de pa sense soldadura . Val la pena gastar els diners en una bona, de vegades poden ser molt poc fiables. Si voleu encapçalar-lo, voldreu comprar una mica de llistó.

Pla de construcció

Així és com funcionarà això. L'Arduino es programarà per actuar com un teclat USB; pel que fa a l'ordinador, sí. Diversos botons connectats a l'Arduino enviaran ordres de tecles a l'ordinador. Només premreu un botó, però el vostre equip pensarà que heu premut Tot > F4 , per exemple.





Selecció d'un commutador

Hi ha diverses variacions dels commutadors de la sèrie MX. Aquest lloc web proporciona una excel·lent introducció, però bàsicament es redueixen al soroll i la pressió. Alguns models requereixen més força per prémer, i alguns models emeten un 'clic' mecànic quan es premen. He utilitzat Cherry MX Browns, que no fan soroll quan es prem. Totes tenen les mateixes dimensions, de manera que trieu qualsevol model que vulgueu (o barregeu-lo) sense preocupacions.

Per descomptat, també haureu de comprar majúscules majúscules, i hi ha tot un món dissenys personalitzats aquí per triar: hem comprat a KeyboardCo al Regne Unit





El cas

He imprès aquest estoig en 3D i el podeu descarregar .STL fitxers de Thingiverse . No us preocupeu si no teniu cap impressora 3D, encara podeu construir-la. Molts llocs web ofereixen serveis d'impressió 3D, com ara Concentradors 3D o bé Shapeways . Com a alternativa, es tracta d’un cas molt senzill, que podreu fer vostre amb plastilà, perspex, fusta o fins i tot cartró. Si voleu ser realment estalviadors, Cherry MX ven un commutador de proves / mostreig activat Amazon ( UK ). Necessitareu 4 perns M5 x 35mm i 4 femelles M5. Per descomptat, podeu substituir-los per una alternativa adequada que tingueu.

Teclat màxim de teclat, interruptor Cherry MX, kit de prova (9 interruptors Pro Sampler Tester Kit) COMPRAR A AMAZON

Si elaboreu el vostre propi cas, hi ha un detall important que heu de saber: els interruptors Cherry MX s’ajusten als forats de muntatge. Requereixen un forat de muntatge quadrat de 14 x 14 mm (0,551 polzades), amb una placa que no sigui més gruixuda que 1,5 mm (0,059 polzades). Allunyeu-vos massa d’aquestes dimensions i és possible que els commutadors ja no es muntin correctament.

La caixa impresa en 3D es divideix en dues parts, la superior i la inferior. Introduïu els interruptors Cherry MX als forats quadrats:

Assegureu-vos de muntar els interruptors de la manera correcta. A la part superior hi apareixen les paraules 'CHERRY' i la part inferior té una mica d'escot. Inseriu un LED de 3 mm en aquesta ranura:

És possible que els LED es vegin millor muntats “cap per avall”. Aquest va ser el cas de les claus que vaig fer servir, i no afecta en absolut els commutadors.

Ara hauríeu de tenir nou commutadors amb 9 LED. No cal enganxar cap d'aquestes parts. La soldadura mantindrà els LED i la fricció mantindrà els interruptors.

A continuació, enrosqueu el suport LED (deixeu el LED eliminat per ara). Un cop acabat el circuit, acabareu de muntar la caixa més endavant.

El Circuit

Aquest circuit està construït sobre un tauler de tires. Això és excel·lent per construir circuits semipermanents, sense el cost d'una placa de circuit d'impressió (PCB). És simplement una peça de fibra de vidre amb pistes de coure paral·leles en una direcció. Aquestes pistes es poden soldar i tallar. Tallar una pista es pot fer amb una eina especial o una broca petita.

No esteu massa segurs de la soldadura? Mireu primer aquests senzills projectes.

A continuació, es mostra el disseny del tauler (exclou els cables posteriors):

Assegureu-vos de tallar les traces sota les resistències i l’Arduino. Com que pot ser molt difícil llegir un circuit de taulers, aquí teniu una versió de taulers:

És un ajust ajustat per esprémer tots els components en un espai tan reduït. Talla les cantonades del tauler de fusta de la següent manera:

Això hauria d’adaptar-se perfectament a la part inferior de la caixa:

Assegureu-vos que les pistes funcionin verticalment.

Connecteu l'ànode ( cama llarga, positiva ) del LED a la resistència de 200 ohm i després a +5 V. Connecteu el càtode ( cama curta, negativa ) a terra. Cobriu les potes amb mànigues termorretractores i, a continuació, introduïu-les al suport del LED. No cal cap cola, però és possible que el suport del LED no sigui ajustable, de manera que és possible que hàgiu d'adaptar aquestes instruccions.

És possible que vulgueu utilitzar un LED bicolor aquí; això us permetrà configurar dos o més bancs de commutadors, amb un LED d'estat de color diferent per a cada banc.

Ara és el moment de soldar tots els LEDs de les claus. S’utilitzen únicament per fer brillar les tecles, de manera que podeu saltar-les si ho desitgeu i no cal que estiguin connectades a un pin digital, només el poder. Connecteu tots els ànodes junts i tots els càtodes junts. Apreneu del meu error: és molt més fàcil fer-ho abans de connectar els interruptors. Connecteu els ànodes a +5 V mitjançant una resistència de 220 ohm i els càtodes a terra. Aquests LED estan connectats en paral·lel. Aquí teniu el circuit només per a aquests LED:

Utilitzeu un petit tros de tub termorretractiu per cobrir la connexió entre els LEDs i l'Arduino:

Enceneu l'Arduino per provar que tots els LED funcionin. No cal que pengeu cap codi. Si cap LED no funciona, aneu a comprovar el cablejat.

Ara connecteu els interruptors. Cal connectar-los mitjançant una resistència de 10 k, en cas contrari l'Arduino morirà. D’això se’n diu un curt mort: +5 V entra directament a terra i tot el que queda del vostre Arduino serà una bufada de fum (confieu en mi, ja n’he matat un perquè no hagueu de fer-ho). Aquí teniu el circuit per a un commutador:

Aquest circuit és el mateix per als nou commutadors. Connecteu els commutadors als pins digitals de dos a deu, cadascun amb la seva pròpia resistència de 10K a terra. Vés amb compte a soldar els commutadors Cherry MX, poden ser una mica fràgils, he tingut trencats diversos pins. És possible que vulgueu soldar-los directament amb un altre tauler de fusta, tot i que encara són adequats els cables posteriors.

Això és tot pel cablejat. És possible que vulgueu muntar un sòcol femella USB tipus B, tot i que els petits pins d'ells sovint poden ser bastant difícils de soldar. Si no voleu fer això, no us preocupeu. El connector Micro USB de l’Arduino s’adapta perfectament al forat del xassís. Si esteu una mica confós sobre els diferents tipus d’USB, assegureu-vos entendre les diferències .

Finalment, comproveu que el vostre circuit sigui correcte. Un curt pot destruir fàcilment un Arduino i pot ser fàcil de fer amb llistons.

El codi

Ara proveu que el circuit sigui correcte. És una bona idea fer-ho abans de continuar, de manera que pugueu solucionar qualsevol problema ara mentre pugueu. Pengeu aquest codi de prova (no oblideu seleccionar la placa i el port correctes del fitxer Eines > Pissarra i Eines > Port menús):

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

És possible que hagueu de canviar els pins si heu modificat el circuit.

Un cop carregat, obriu el monitor sèrie ( dalt a la dreta > Monitor de sèrie ). Un per un, premeu cada botó. Hauríeu de veure que el monitor sèrie mostra el número del botó que heu premut. Igual que amb el LED, si l'ordinador es queixa de treure massa corrent o els LED s'apaguen quan premeu un botó, desconnecteu-lo immediatament. Tens un curt en algun lloc del circuit, comprova que el circuit sigui correcte i que no hi hagi curtmetratges entre les connexions.

Si tot funciona, endavant i poseu el circuit a la caixa. És possible que vulgueu fer servir una mica de cola per mantenir el circuit al seu lloc (tot i que els cables quedaven bé). Traieu la tapa també.

Fer que l’Arduino sembli un teclat és molt senzill. Si utilitzeu un Nano o UNO, reprogramareu el vostre Arduino amb Actualització del firmware del dispositiu (DFU). Normalment s’utilitza per llançar un nou firmware a l’Arduino. L'utilitzaràs per fer flash a l'Arduino amb un nou microprogramari que el farà funcionar com un teclat. Això no es tractarà aquí, ja que és una tasca força complexa. El Lloc web Arduino té un bon tutorial per a això.

L'Arduino Pro Micro facilita aquest pas. La lògica necessària per emular un teclat USB ja està integrada al processador, de manera que és tan senzill com escriure algun codi.

En primer lloc, configureu les tecles:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

Es tracta d’una matriu que conté tots els pins als quals estan connectats els botons. Si heu utilitzat més o menys botons o heu utilitzat pins diferents, canvieu els valors aquí.

Una matriu és una col·lecció de coses afins. Els ordinadors poden optimitzar el vostre codi per accedir-hi ràpidament i acceleren el procés d’escriptura de codi.

Ara inicialitzeu tots els pins com a entrades:

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

Això indica a Arduino que tots els pins de la matriu són entrades. Per fer-ho, s’utilitza un bucle en lloc d’escriure pinMode (2, INPUT) nou vegades, només l’heu d’escriure una vegada. Això també crida Keyboard.begin . Això configura una funció integrada a la biblioteca Arduino, dissenyada específicament per emular un teclat.

Creeu un mètode anomenat readButton :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

Es necessita un pin i es comprova si s’ha premut o no. Simplement torna CERT o bé FALS . També en conté alguns denúncia de programari - Un simple retard i, a continuació, tornar a comprovar l'interruptor garanteix que el botó s'hagi premut realment.

Ara es diu un altre bucle per dins bucle buit () :

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

Una vegada més, això repassa tots els elements de la matriu i comprova si s'ha premut. Ho fa anomenant el readButton mètode que heu creat anteriorment. Si s’ha premut un botó, passa aquest número de pin a un altre mètode anomenat 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;
}
}

Això comprova el número de PIN mitjançant un interruptor declaració. Instruccions de canvi (de vegades anomenades commutador de majúscules ) són similars a un si afirmació, però, són útils per comprovar que una cosa (en aquest cas el número de pin) és igual a un dels diversos resultats diferents. Essencialment, són molt més ràpids de calcular.

Els components principals es troben dins d'aquesta instrucció switch. Keyboard.println escriu text a l’ordinador com si escrivís físicament totes les tecles. Keyboard.press prem i manté premuda una tecla. No oblideu alliberar-los amb Keyboard.releaseAll després d'un breu retard!

com escanejar documents a l'iPhone

Aquí teniu el codi 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;
}
}

A més de totes les tecles de número i lletra, l’Arduino pot prémer la majoria de les tecles especials anomenades Modificadors de teclat . Són particularment útils per prémer dreceres de teclat. El lloc web Arduino té un fitxer llista útil .

Ara només queda crear algunes dreceres. Podeu assignar-ho a dreceres existents, com ara Tot + F4 (tancar el programa a Windows) o Cmd + Q (sortiu del programa macOS). Com a alternativa, assegureu-vos de llegir el nostre document guia de dreceres de teclat definitiva , com crear dreceres de Windows i totes les dreceres de Chromebook per començar a fer les vostres dreceres.

Heu creat el vostre propi quadre de drecera? Avisa’m als comentaris, m’encantaria veure algunes imatges!

Esperem que us agradin els articles que recomanem i comentem. MUO té associacions afiliades i patrocinades, de manera que rebem una part dels ingressos d'algunes de les vostres compres. Això no afectarà el preu que pagueu i ens ajudarà a oferir les millors recomanacions de productes.

Compartir Compartir Tweet Correu electrònic A continuació s’explica per què l’FBI va emetre un advertiment per al ransomware Hive

L'FBI va emetre una advertència sobre una varietat de ransomware especialment desagradable. A continuació s’explica el motiu pel qual cal ser especialment cautelós amb el ransomware de Hive.

Llegiu a continuació
Temes relacionats
  • Bricolatge
  • Teclat
  • Dreceres de teclat
  • Arduino
Sobre l'autor Joe Coburn(136 articles publicats)

Joe és llicenciat en Informàtica per la Universitat de Lincoln, Regne Unit. És un desenvolupador de programari professional i, quan no fa volar drons ni escriu música, sovint se’l pot trobar fent fotos o produint vídeos.

Més de Joe Coburn

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us