Gör dina egna anpassade genvägsknappar med en Arduino

Gör dina egna anpassade genvägsknappar med en Arduino

Den ödmjuka Arduino kan göra många saker, men visste du att den kan efterlikna ett USB -tangentbord? Du kan kombinera de svåra att komma ihåg långa kortkommandon till en enda anpassad genvägstangent med denna enkla krets. Här är slutresultatet:





Har du aldrig använt en Arduino tidigare? Kolla in vår Uppstartnings Guide först.





Vad du behöver

Här är vad du behöver för att göra detta projekt:





  • 1 x Arduino Pro Micro.
  • Kortvariga knappar eller tangentbordsknappar.
  • 10K ohm motstånd.
  • Diverse anslutningskablar.
  • 1 x 220 ohm motstånd.
  • 1 x 5 mm (0,197 tum) LED.
  • 1 x 5 mm LED -hållare.

Du behöver en mycket specifik Arduino för detta projekt. Jag använder en Pro Micro eftersom de är så små och billiga behöver du en Arduino som har inbyggd USB-serie i processorn (Atmega32u4). Det är möjligt att bygga detta projekt med andra Arduinos, till exempel en UNO eller Nano, men det kräver mycket hårt arbete för att återblixta bios och busa för att få saker att fungera. Kloner från andra Arduino -modeller fungerar vanligtvis inte alls, men en Pro Micro -klon är också bra.

OSOYOO Pro Micro ATmega32U4 5V/16MHz modulkort med 2 radstiftshuvud Ersätt med ATmega328 Pro Mini för Arduino KÖP NU PÅ AMAZON

Du behöver en kort knapp, ett 10K ohm motstånd och lämplig anslutningskabel för varje knapp du vill använda. Jag använder dock mekaniska tangentbordsbrytare för Cherry MX för själva genvägsknapparna några switch kommer att göra, förutsatt att det är tillfälligt och inte låser.



Du kan behöva några andra saker beroende på hur du bygger detta. Om du vill prototypa den behöver du en lödlös brödbräda . Det är värt att lägga pengarna på en bra - de kan ibland vara väldigt opålitliga. Om du vill boxa upp det här, kommer du att vilja köpa lite stripboard.

Bygg plan

Så här fungerar det. Arduino kommer att programmeras att fungera som ett USB -tangentbord - vad det gäller din dator är det så. Flera knappar som är anslutna till Arduino skickar nyckelkommandon till din dator. Du kommer bara att trycka på en knapp, men din dator tror att du har tryckt Allt > F4 , till exempel.





Välja en switch

Det finns flera varianter av switchar i MX -serien. Denna webbplats ger en utmärkt introduktion, men de kommer i huvudsak till buller och tryck. Vissa modeller kräver mer kraft för att trycka, och vissa modeller ger ett mekaniskt 'klick' -ljud när de trycks in. Jag har använt Cherry MX Browns, som inte låter när det trycks. De är alla samma dimensioner, så välj vilken modell du vill (eller mixa och matcha) utan oro.

Du måste naturligtvis också köpa några nyckelhattar, och det finns en värld av anpassade mönster där ute att välja mellan - vi köpte från KeyboardCo i Storbritannien





Fallet

Jag har 3D -skrivit ut det här fodralet, och du kan ladda ner .STL filer från Thingiverse . Oroa dig inte om du inte äger en 3D -skrivare, du kan fortfarande bygga detta. Många webbplatser tillhandahåller 3D -utskriftstjänster, t.ex. 3D -nav eller Shapeways . Alternativt är detta ett mycket enkelt fodral, du kan göra ditt eget av plasticard, perspex, trä eller till och med kartong. Om du vill vara riktigt sparsam så säljer Cherry MX en switch tester/sampler set på Amazon ( Storbritannien ). Du behöver 4 M5 x 35 mm bultar och 4 M5 muttrar. Du kan naturligtvis ersätta dessa med ett lämpligt alternativ du har.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switchar Pro Sampler Tester Kit) KÖP NU PÅ AMAZON

Om du skapar ditt eget fodral är det en viktig detalj du behöver veta: Cherry MX-omkopplare är en push-fit i sina monteringshål. De kräver ett 14 x 14 mm (0,551 tum) fyrkantigt monteringshål, där plattan inte är tjockare än 1,5 mm (0,059 tum). Sträva för långt från dessa dimensioner, och dina omkopplare kanske inte längre monteras korrekt.

Det 3D -tryckta fodralet är i två delar, topp och botten. Skjut in Cherry MX -omkopplarna i de fyrkantiga hålen:

Se till att du monterar omkopplarna på rätt sätt. Toppen har orden 'CHERRY' på, och den nedre har ett litet snäpp. Sätt i en 3 mm LED i den här lilla facket:

Du kanske tycker att lysdioderna ser bäst ut monterade 'upp och ner'. Detta var fallet för nyckelkåporna jag använde, och det påverkar inte omkopplarna alls.

Du bör nu ha nio omkopplare med 9 lysdioder. Det finns ingen anledning att limma in någon av dessa delar. Lödet håller fast lysdioderna och friktionen håller omkopplarna.

Skruva sedan in LED -fästet (låt LED -lampan vara borttagen för tillfället). Du kommer att slutföra monteringen av fodralet senare när kretsen är byggd.

Kretsen

Denna krets är byggd på band. Detta är utmärkt för att bygga halvpermanenta kretsar, utan kostnaden för ett kretskort (PCB). Det är helt enkelt en bit glasfiber med kopparspår som löper parallellt i en riktning. Dessa spår kan lödas till, samt klippas. Skärning av ett spår kan göras med ett specialverktyg eller en liten borr.

Inte alltför säker på lödning? Ta en titt på dessa enkla projekt först.

Här är layouten på kartong (exkluderar bakre ledningar):

Se till att du skär av spåren under motstånden och Arduino. Eftersom det kan vara mycket svårt att läsa en kretskortskrets, här är en brödbrädversion:

Det passar tätt att klämma in alla komponenter i ett så litet utrymme. Klipp hörnen på din bandplatta enligt följande:

Detta bör passa snyggt i botten av fodralet:

Se till att spåren går vertikalt.

Anslut anoden ( långt ben, positivt ) på lysdioden till 200 ohm motståndet och sedan till +5 V. Anslut katoden ( kort ben, negativ ) Till marken. Täck benen med värmekrympslang och skjut sedan in i LED -hållaren. Det behövs inget lim, men din LED-hållare kanske inte är en push-fit, så du kan behöva anpassa dessa instruktioner.

Du kanske vill använda en tvåfärgad LED här istället-detta gör att du kan ställa in två eller flera switchar, med en olika färgad status-LED för varje bank.

Nu är det dags att löda alla lysdioder för nyckelkåporna. Dessa används enbart för att få tangenterna att lysa, så du kan hoppa över dem om du vill, och de behöver inte vara anslutna till en digital stift, bara ström. Anslut alla anoder tillsammans och alla katoder tillsammans. Lär dig av mitt misstag - det är mycket lättare att göra detta innan du kopplar omkopplarna! Anslut anoderna till +5 V om ett 220 ohm motstånd, och katoderna till jord. Dessa lysdioder är parallellkopplade. Här är kretsen bara för dessa lysdioder:

Använd en liten bit av värmekrympslang för att täcka anslutningen mellan lysdioderna och Arduino:

Slå på Arduino för att testa alla lysdioder som fungerar. Du behöver inte ladda upp någon kod. Om några lysdioder inte fungerar, gå och dubbelkolla kablarna.

Anslut nu strömbrytarna. Dessa måste anslutas via ett 10k -motstånd, annars dör Arduino. Detta kallas en död kort - +5 V går direkt i marken, och allt som återstår av din Arduino kommer att vara en rökpuff (lita på mig, jag dödade en redan så att du inte behöver). Här är kretsen för en switch:

Denna krets är densamma för alla nio omkopplare. Anslut omkopplarna till digitala stift två till tio, var och en med sitt eget 10K -motstånd mot jord. Var försiktig med att lödda Cherry MX -switchar, de kan vara lite ömtåliga, jag hade flera stift sönder på mig. Du kanske vill löda dessa direkt till några fler band, men efterledningar är fortfarande lämpliga.

Det är det för ledningarna. Du kanske vill montera ett USB -uttag av typ B, men de små stiften på dem kan ofta vara ganska svåra att lödas till. Oroa dig inte om du inte vill göra detta. Micro USB -kontakten på Arduino passar snyggt i hålet i chassit. Om du är lite förvirrad över de olika USB -typerna, se till att du förstå skillnaderna .

Slutligen, dubbelkolla att din krets är korrekt. En kort kan lätt förstöra en Arduino, och det kan vara enkelt att göra med band.

Koden

Testa nu att kretsen är korrekt. Det är en bra idé att göra detta innan du fortsätter, så att du kan åtgärda eventuella problem nu medan du kan. Ladda upp denna testkod (glöm inte att välja rätt kort och port från Verktyg > Styrelse och Verktyg > Hamn menyer):

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

Du kan behöva byta stiften om du har ändrat kretsen.

När du har laddat upp, öppna den seriella bildskärmen ( överst till höger > Seriell bildskärm ). Tryck på varje knapp en efter en. Du bör se seriemonitorn visa numret på knappen du tryckte på. Precis som med lysdioden, om din dator klagar över att dra för mycket ström, eller lysdioderna slocknar när du trycker på en knapp, koppla bort omedelbart! Du har en kortare någonstans i kretsen, dubbelkolla att kretsen är korrekt och att det inte finns några kortslutningar mellan anslutningarna.

Om allt fungerar, fortsätt och sätt kretsen i lådan. Du kanske vill använda en klick lim för att hålla kretsen på plats (även om trådarna höll min fina). Skruva fast locket också.

Att få Arduino att verka som ett tangentbord är väldigt enkelt. Om du använder en Nano eller UNO kommer du att programmera om din Arduino med Uppdatering av enhetens firmware (DFU). Detta används vanligtvis för att flasha ny firmware till Arduino. Du kommer att använda den för att blinka Arduino med en ny firmware som får det att fungera som ett tangentbord. Detta kommer inte att täckas här, eftersom det är en ganska komplex uppgift. De Arduinos webbplats har en bra handledning för detta.

Arduino Pro Micro gör detta steg väldigt enkelt. Logiken som krävs för att emulera ett USB -tangentbord är redan inbyggd i processorn, så det är så enkelt som att skriva lite kod!

Ställ först in nycklarna:

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

Detta är en matris som innehåller alla stift som knapparna är anslutna till. Om du har använt mer eller mindre knappar eller använt olika stift, ändra värdena här.

En array är en samling likasinnade saker. Datorer kan optimera din kod för att komma åt dem snabbt, och de påskyndar kodskrivningsprocessen.

Initiera nu alla stiften som ingångar:

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

Detta berättar för Arduino att alla stift i matrisen är ingångar. En loop används för att göra detta, snarare än att skriva pinMode (2, INPUT) nio gånger, du behöver bara skriva det en gång. Detta kräver också Tangentbord. Börjar . Detta skapar en funktion inbyggd i Arduino -biblioteket, speciellt utformad för att emulera ett tangentbord.

Skapa en metod som kallas readButton :

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

Detta tar en nål och kontrollerar om den har tryckts eller inte. Det återvänder helt enkelt SANN eller FALSK . Den innehåller också en del programvara debouncing -en enkel fördröjning och sedan kontroll av omkopplaren säkerställer att knappen verkligen trycktes in.

Nu kallas en annan för loop inuti 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);
}
}
}

Återigen går detta över varje element i matrisen och kontrollerar om det har tryckts in. Det gör detta genom att kallas readButton metod du skapade tidigare. Om en knapp har tryckts över, skickar den pin -numret till en annan metod som kallas 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;
}
}

Detta kontrollerar pin -numret med hjälp av a växla påstående. Byt uttalanden (kallas ibland switch fallet ) liknar en om uttalande, men de är användbara för att kontrollera att en sak (i ​​detta fall pin -numret) är lika med ett av flera olika resultat. I huvudsak är de mycket snabbare att beräkna.

Huvudkomponenterna finns i detta switch -uttalande. Keyboard.println skriver text till datorn som om du fysiskt skrev in varje nyckel. Tangentbord. Tryck trycker och håller ned en knapp. Glöm inte att släppa dem med Keyboard.releaseAll efter en kort fördröjning!

hur man hittar någon gratis på internet

Här är hela koden:

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

Förutom alla siffer- och bokstavstangenter kan Arduino trycka på de flesta specialtangenterna som kallas Tangentbordsmodifierare . Dessa är särskilt användbara för att trycka på kortkommandon. Arduino -webbplatsen har en användbar lista .

Nu återstår bara att skapa några genvägar. Du kan mappa detta till befintliga genvägar, t.ex. Allt + F4 (stäng program i Windows) eller Cmd + F (avsluta programmet macOS). Alternativt, se till att du läser vår ultimata tangentbordsgenvägsguide , hur man skapar Windows -genvägar och varje Chromebook -genväg för att komma igång med att skapa egna genvägar.

Har du skapat din egen genvägsruta? Låt mig veta i kommentarerna, jag vill gärna se några bilder!

Vi hoppas att du gillar de saker vi rekommenderar och diskuterar! MUO har samarbetspartners och sponsrade partnerskap, så vi får en del av intäkterna från några av dina köp. Detta påverkar inte priset du betalar och hjälper oss att erbjuda de bästa produktrekommendationerna.

Dela med sig Dela med sig Tweet E-post Här är varför FBI utfärdade en varning för Hive Ransomware

FBI utfärdade en varning om en särskilt otäck stam av ransomware. Här är varför du måste vara särskilt försiktig med Hive -ransomware.

Läs Nästa
Relaterade ämnen
  • DIY
  • Tangentbord
  • Tangentbordsgenvägar
  • Arduino
Om författaren Joe Coburn(136 artiklar publicerade)

Joe är utbildad i datavetenskap från University of Lincoln, Storbritannien. Han är en professionell mjukvaruutvecklare, och när han inte flyger drönare eller skriver musik kan han ofta hittas ta foton eller producera videor.

Mer från Joe Coburn

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera