Twórz własne niestandardowe przyciski skrótów za pomocą Arduino

Twórz własne niestandardowe przyciski skrótów za pomocą Arduino

Skromny Arduino może robić wiele rzeczy, ale czy wiesz, że może emulować klawiaturę USB? Za pomocą tego prostego obwodu możesz połączyć trudne do zapamiętania długie skróty klawiaturowe w jeden niestandardowy klawisz skrótu. Oto wynik końcowy:





Nigdy wcześniej nie używałeś Arduino? Sprawdź nasze Przewodnik wprowadzający pierwszy.





Czego potrzebujesz

Oto, czego potrzebujesz, aby wykonać ten projekt:





  • 1 x Arduino Pro Micro.
  • Chwilowe przyciski lub przyciski klawiatury.
  • Rezystory 10 kiloomów.
  • Różne przewody przyłączeniowe.
  • 1 x rezystory 220 omów.
  • 1 x 5 mm (0,197 cala) dioda LED.
  • 1x5mm uchwyt LED.

Do tego projektu będziesz potrzebować bardzo specyficznego Arduino. używam Pro Mikro , ponieważ są tak małe i tanie, potrzebujesz Arduino z wbudowanym w procesor USB-Serial (Atmega32u4). Możliwe jest zbudowanie tego projektu z innymi Arduino, takimi jak UNO lub Nano, jednak wymaga to dużo ciężkiej pracy, aby przeflashować bios i bawić się, aby wszystko działało. Klony innych modeli Arduino zwykle w ogóle nie działają, ale klon Pro Micro jest również w porządku.

OSOYOO Pro Micro ATmega32U4 5 V/16 MHz płyta modułu z 2-rzędowym nagłówkiem pinowym wymień na ATmega328 Pro Mini dla Arduino KUP TERAZ NA AMAZON

Będziesz potrzebował jednego przycisku chwilowego, jednego rezystora 10K omów i odpowiedniego przewodu dla każdego przycisku, którego chcesz użyć. Używam mechanicznych przełączników klawiatury Cherry MX do rzeczywistych przycisków skrótów, chociaż każdy przełącznik zadziała, pod warunkiem, że jest chwilowy i nie zatrzaskuje się.



Możesz potrzebować kilku innych przedmiotów w zależności od tego, jak to zbudujesz. Jeśli chcesz go prototypować, będziesz potrzebować płytka stykowa bez lutowania . Warto wydać pieniądze na dobre - czasami mogą być bardzo zawodne. Jeśli chcesz to zapakować, będziesz chciał kupić stripboard.

Plan budowy

Oto jak to będzie działać. Arduino zostanie zaprogramowany tak, aby działał jak klawiatura USB – jeśli chodzi o komputer, tak jest. Kilka przycisków podłączonych do Arduino wyśle ​​kluczowe polecenia do twojego komputera. Naciśniesz tylko jeden przycisk, ale komputer pomyśli, że nacisnąłeś Wszystko > F4 , na przykład.





Wybór przełącznika

Istnieje kilka odmian przełączników serii MX. Ta strona internetowa stanowią doskonałe wprowadzenie, jednak zasadniczo sprowadzają się do hałasu i ciśnienia. Niektóre modele wymagają większej siły do ​​wciśnięcia, a niektóre modele wydają mechaniczny dźwięk „kliknięcia” po naciśnięciu. Użyłem Cherry MX Browns, które nie hałasują po naciśnięciu. Wszystkie mają te same wymiary, więc wybierz dowolny model, który Ci się podoba (lub mieszaj i dopasowuj) bez obaw.

Oczywiście będziesz musiał także kupić kilka kluczyków, a jest świat niestandardowe projekty do wyboru - kupiliśmy od KeyboardCo w Wielkiej Brytanii





Walizka

Wydrukowałem to etui w 3D i możesz je pobrać .STL pliki z Rzeczoświata . Nie martw się, jeśli nie masz drukarki 3D, nadal możesz ją zbudować. Wiele stron internetowych świadczy usługi drukowania 3D, takie jak Koncentratory 3D lub Kształty . Alternatywnie jest to bardzo prosty przypadek, możesz zrobić własny z plastiku, pleksiglasu, drewna, a nawet tektury. Jeśli chcesz być naprawdę oszczędny, Cherry MX sprzedaje tester przełączników/sampler włączony Amazonka ( Wielka Brytania ). Potrzebne będą 4 śruby M5 x 35mm i 4 nakrętki M5. Możesz oczywiście zastąpić je odpowiednią alternatywą, którą masz.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 przełączników Pro Sampler Tester Kit) KUP TERAZ NA AMAZON

Jeśli tworzysz własną obudowę, jest jeden ważny szczegół, o którym musisz wiedzieć: przełączniki Cherry MX są wciskane w otwory montażowe. Wymagają kwadratowego otworu montażowego 14 x 14 mm (0,551 cala), a płyta nie jest grubsza niż 1,5 mm (0,059 cala). Odejdź zbyt daleko od tych wymiarów, a twoje przełączniki mogą nie być już prawidłowo zamontowane.

Pudełko z nadrukiem 3D składa się z dwóch części, górnej i dolnej. Wciśnij przełączniki Cherry MX w kwadratowe otwory:

Upewnij się, że montujesz przełączniki we właściwy sposób. Na górze znajduje się napis „CHERRY”, a na dole niewielkie nacięcie. Włóż 3mm diodę LED do tego małego gniazda:

Może się okazać, że diody LED najlepiej wyglądają zamontowane „do góry nogami”. Tak było w przypadku użytych przeze mnie nasadek klawiszy i w ogóle nie wpływa to na przełączniki.

Powinieneś teraz mieć dziewięć przełączników z 9 diodami LED. Nie ma potrzeby wklejania żadnej z tych części. Lut utrzyma diody LED, a tarcie utrzyma przełączniki.

Następnie wkręć uchwyt LED (diodę LED na razie pozostaw zdjętą). Montaż obudowy zakończysz później, po zbudowaniu obwodu.

Obwód

Ten obwód jest zbudowany na stripboardzie. Jest to doskonałe rozwiązanie do budowy obwodów półtrwałych, bez kosztów płytki drukowanej (PCB). To po prostu kawałek włókna szklanego z miedzianymi ścieżkami biegnącymi równolegle w jednym kierunku. Tory te można przylutować, a także przyciąć. Cięcie toru można wykonać za pomocą specjalnego narzędzia lub małego wiertła.

Nie jesteś zbyt pewny siebie w lutowaniu? Najpierw spójrz na te proste projekty.

Oto układ stripboardu (z wyłączeniem końcowych przewodów):

Upewnij się, że przeciąłeś ścieżki pod rezystorami i Arduino. Ponieważ odczyt obwodu z paskiem może być bardzo trudny, oto wersja z płytką stykową:

Jest ciasno dopasowany, aby zmieścić wszystkie elementy na tak małej przestrzeni. Wytnij rogi stripboardu w następujący sposób:

To powinno dobrze pasować do dolnej części obudowy:

Upewnij się, że gąsienice biegną pionowo.

Podłącz anodę ( długa noga, pozytywna ) diody LED do rezystora 200 omów, a następnie do +5 V. Podłącz katodę ( krótka noga, negatyw ) do ziemi. Przykryj nogi koszulką termokurczliwą, a następnie wepchnij do uchwytu LED. Nie ma potrzeby stosowania żadnego kleju, jednak uchwyt LED może nie być mocowany na wcisk, więc może być konieczne dostosowanie tych instrukcji.

Zamiast tego możesz chcieć użyć dwukolorowej diody LED – pozwoli to na ustawienie dwóch lub więcej banków przełączników, z różnokolorową diodą LED stanu dla każdego banku.

Teraz nadszedł czas, aby przylutować wszystkie diody LED do nasadek klawiszy. Służą one wyłącznie do świecenia klawiszy, więc możesz je pominąć, jeśli chcesz, i nie muszą być podłączone do cyfrowego pinu, tylko do zasilania. Połącz wszystkie anody razem i wszystkie katody razem. Ucz się na moim błędzie — o wiele łatwiej jest to zrobić przed podłączeniem przełączników! Podłącz anody do +5 V przez rezystor 220 omów, a katody do masy. Te diody LED są połączone równolegle. Oto obwód tylko dla tych diod LED:

Użyj małego kawałka rurki termokurczliwej, aby zakryć połączenie między diodami LED a Arduino:

Włącz Arduino, aby przetestować działanie wszystkich diod LED. Nie musisz przesyłać żadnego kodu. Jeśli jakiekolwiek diody LED nie działają, sprawdź dokładnie okablowanie.

Teraz podłącz przełączniki. Muszą być one połączone przez rezystor 10k, w przeciwnym razie Arduino zginie. Nazywa się to martwym zwarciem - +5 V idzie bezpośrednio w ziemię, a wszystko, co pozostanie z twojego Arduino, będzie obłokiem dymu (zaufaj mi, już zabiłem jednego, więc nie musisz). Oto obwód jednego przełącznika:

Ten obwód jest taki sam dla wszystkich dziewięciu przełączników. Podłącz przełączniki do styków cyfrowych od dwóch do dziesięciu, każdy z własnym rezystorem 10K do masy. Uważaj na lutowanie przełączników Cherry MX, mogą być trochę kruche, złamało mi się kilka pinów. Możesz chcieć przylutować je bezpośrednio do jakiejś większej listwy, jednak wleczone wyprowadzenia są nadal odpowiednie.

To tyle jeśli chodzi o okablowanie. Możesz chcieć zamontować żeńskie gniazdo USB typu B, jednak małe piny na nich często mogą być dość trudne do przylutowania. Jeśli nie chcesz tego robić, nie martw się. Złącze Micro USB w Arduino idealnie pasuje do otworu w obudowie. Jeśli jesteś trochę zdezorientowany różnymi typami USB, upewnij się, że zrozumieć różnice .

Na koniec sprawdź, czy twój obwód jest poprawny. Zwarcie może łatwo zniszczyć Arduino i może to być łatwe do zrobienia za pomocą stripboardu.

Kod

Teraz sprawdź, czy obwód jest poprawny. Dobrym pomysłem jest zrobienie tego przed kontynuowaniem, aby móc teraz rozwiązać wszelkie problemy, póki możesz. Prześlij ten kod testowy (nie zapomnij wybrać właściwej płyty i portu z Narzędzia > Deska oraz Narzędzia > Port menu):

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

Może być konieczna zmiana pinów, jeśli zmodyfikowałeś obwód.

Po przesłaniu otwórz monitor szeregowy ( w prawym górnym rogu > Monitor szeregowy ). Jeden po drugim, naciśnij każdy przycisk. Powinieneś zobaczyć, że monitor szeregowy pokazuje numer naciśniętego przycisku. Podobnie jak w przypadku diody LED, jeśli komputer skarży się na pobór zbyt dużego prądu lub diody LED gasną po naciśnięciu przycisku, natychmiast odłącz! Masz gdzieś zwarcie w obwodzie, sprawdź ponownie, czy obwód jest prawidłowy i nie ma zwarć między połączeniami.

Jeśli wszystko działa, śmiało włóż obwód do pudełka. Możesz użyć odrobiny kleju, aby utrzymać obwód w miejscu (chociaż przewody dobrze trzymały moje). Przykręć również pokrywę.

Sprawienie, by Arduino wyglądało jak klawiatura, jest bardzo proste. Jeśli używasz Nano lub UNO, przeprogramujesz Arduino za pomocą Aktualizacja oprogramowania sprzętowego urządzenia (ZSZ). Jest to zwykle używane do flashowania nowego oprogramowania układowego do Arduino. Zamierzasz go użyć do flashowania Arduino za pomocą nowego oprogramowania układowego, które sprawi, że będzie działać jak klawiatura. Nie zostanie to tutaj omówione, ponieważ jest to dość złożone zadanie. ten Strona Arduino ma dobry tutorial do tego.

Arduino Pro Micro bardzo ułatwia ten krok. Logika wymagana do emulacji klawiatury USB jest już wbudowana w procesor, więc jest to tak proste, jak napisanie kodu!

Najpierw skonfiguruj klucze:

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

Jest to tablica zawierająca wszystkie piny, do których podłączone są przyciski. Jeśli użyłeś więcej lub mniej przycisków lub użyłeś innych pinów, zmień wartości tutaj.

Tablica to zbiór podobnie myślących rzeczy. Komputery mogą zoptymalizować kod, aby uzyskać do niego szybki dostęp, a także przyspieszyć proces pisania kodu.

Teraz zainicjuj wszystkie piny jako wejścia:

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

To mówi Arduino, że wszystkie piny w tablicy są wejściami. Służy do tego pętla, więc zamiast pisać pinMode(2, WEJŚCIE) dziewięć razy, wystarczy napisać to tylko raz. To również wzywa Keyboard.begin . To ustawia funkcję wbudowaną w bibliotekę Arduino, zaprojektowaną specjalnie do emulacji klawiatury.

Utwórz metodę o nazwie przycisk odczytu :

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

To bierze szpilkę i sprawdza, czy została wciśnięta, czy nie. Po prostu wraca PRAWDA lub FAŁSZYWE . Zawiera również trochę odrzucanie oprogramowania -- proste opóźnienie, a następnie ponowne sprawdzenie przełącznika zapewnia, że ​​przycisk został naprawdę wciśnięty.

Teraz kolejna pętla for nazywa się inside pusta pętla() :

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

Ponownie, to sprawdza każdy element w tablicy i sprawdza, czy został naciśnięty. Robi to, nazywając się przycisk odczytu metoda, którą stworzyłeś wcześniej. Jeśli przycisk został naciśnięty, przekazuje ten numer PIN innej metodzie zwanej zrobićAkcję :

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

To sprawdza numer PIN za pomocą przełącznik oświadczenie. Instrukcje Switch (czasami nazywane Sprawa przełącznik ) są podobne do an Jeśli oświadczenie, jednak są one przydatne do sprawdzenia, czy jedna rzecz (w tym przypadku numer pinu) jest równa jednemu z kilku różnych wyników. Zasadniczo obliczanie ich jest znacznie szybsze.

Główne komponenty znajdują się wewnątrz tej instrukcji switch. Keyboard.println zapisuje tekst do komputera tak, jakbyś fizycznie wpisywał każdy klucz. Keyboard.press naciska i przytrzymuje jeden klawisz. Nie zapomnij uwolnić ich za pomocą Keyboard.releaseAll po krótkim opóźnieniu!

Lorem ipsum dolor sit amet, consectetur

Oto pełny kod:

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

Oprócz wszystkich klawiszy numerycznych i literowych, Arduino może naciskać większość klawiszy specjalnych zwanych Modyfikatory klawiatury . Są one szczególnie przydatne przy naciskaniu skrótów klawiaturowych. Strona Arduino ma pomocna lista .

Teraz pozostało tylko utworzyć kilka skrótów. Możesz mapować to do istniejących skrótów, takich jak Wszystko + F4 (zamknij program w Windows) lub Polecenie + Q (zakończ program macOS). Ewentualnie przeczytaj nasze najlepszy przewodnik po skrótach klawiaturowych , jak tworzyć skróty Windows i każdy skrót do Chromebooka aby zacząć tworzyć własne skróty.

Czy stworzyłeś własne okno skrótów? Dajcie znać w komentarzach, z chęcią zobaczę kilka zdjęć!

Mamy nadzieję, że spodobają Ci się polecane i omawiane przez nas przedmioty! MUO posiada partnerstwo partnerskie i sponsorowane, więc otrzymujemy udział w przychodach z niektórych Twoich zakupów. Nie wpłynie to na cenę, którą płacisz, i pomoże nam zaoferować najlepsze rekomendacje produktów.

Udział Udział Ćwierkać E-mail Oto dlaczego FBI wydało ostrzeżenie dotyczące Hive Ransomware

FBI wydało ostrzeżenie o szczególnie paskudnym szczepie oprogramowania ransomware. Oto dlaczego należy szczególnie uważać na oprogramowanie ransomware Hive.

Czytaj dalej
Powiązane tematy
  • majsterkowanie
  • Klawiatura
  • Skróty klawiszowe
  • Arduino
O autorze Joe Coburn(136 opublikowanych artykułów)

Joe jest absolwentem informatyki na Uniwersytecie w Lincoln w Wielkiej Brytanii. Jest profesjonalnym programistą, a kiedy nie lata dronami ani nie pisze muzyki, często można go spotkać wykonującego zdjęcia lub produkującego filmy.

Więcej od Joe Coburna

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować