Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Zobaczyłem coś z mojej podróży do Ameryki, co uważałem za naprawdę fajne i przydatne - The Stream Deck. Są to w zasadzie klawisze skrótów do dowolnej aplikacji, idealne do wielozadaniowości. Ale chodzi o to, że jest dla mnie zbyt drogi (100 $) i nie jest nawet dostępny w moim kraju. Mimo to pomyślałem, że będzie to niezwykle pomocne w mojej pracy, więc postanowiłem zrobić jeden sam (co kosztował prawie 10 $ od taniego chińskiego Pro Micro) i podzielić się nim, aby studenci i osoby z ograniczonym budżetem mogli go mieć i zrobić swoje. życie trochę prostsze.
W każdym razie nie jest tak ładny, jak ten za 100 $, ale działa dobrze.
(Na zdjęciu mojego Decka brakowało Arduino Pro Micro, odkąd go upuściłem i zepsułem, HC-05 i Arduino Pro Mini były przeznaczone do innego projektu, więc nie przejmuj się).
Kieszonkowe dzieci
Arduino Pro Micro x 1
Przyciski x 12 (Arduino Pro Micro może obsługiwać maksymalnie 12 przycisków)
Rozmiar PCB pasujący do preferowanej liczby przycisków
Rezystory 10k Ohm
Krok 1: Przyciski
Aby Arduino rozpoznało po naciśnięciu przycisku, będziemy musieli podłączyć przyciski w następujący sposób:
Przycisk pin 1 -> Rezystor 10k -> GND
Przycisk pin 2 -> VCC
Pin przycisku 4 -> Jeden z pinów cyfrowych lub pinów analogowych Arduino
Powtarzaj, aż uzyskasz żądaną liczbę przycisków
Moja płytka PCB jest głupio brudna, więc naprawdę trudno jest wyśledzić, kiedy wystąpi błąd, chciałbyś, aby była lepiej zorganizowana, aby ułatwić rozwiązywanie problemów.
Krok 2: Programowanie Arduino
Programowanie z Pro Micro różni się nieco od innych Arduino i wymagałoby kilku dodatkowych kroków. Sugerowałbym przewodniki, które pomogły mi zaprogramować Pro Micro:
Oficjalny przewodnik Sparkfun:
www.sparkfun.com/products/12640
Przewodnik po instrukcjach:
www.instructables.com/id/Set-up-and-Instal…
Po pomyślnym podłączeniu Pro MIcro do komputera i możliwości programowania, oto kod do mojego projektu:
#define KEY_RIGHT_SHIFT 0x85#define KEY_RIGHT_ALT 0x86 #define KEY_RIGHT_GUI 0x87
#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9 #define KEY_LEFT_ARROW 0xD8 #define KEY_RIGHT_ARROW 0xD7 #define KEY_BACKSPACE 0xB2 #define KEY_TAB 0xB3 #define KEY_RETURN 0xB0 #define KEY_ESC 0xB1 #define KEY_INSERT 0xD1 #define KEY_DELETE 0xD4 #define KEY_PAGE_UP 0xd3 #define KEY_PAGE_DOWN 0xd6 #define KEY_HOME 0xD2 #define KEY_END 0xD5 #define KEY_CAPS_LOCK 0xC1 #define KEY_F1 0xC2 #define KEY_F2 0xC3 #define KEY_F3 0xc4 #define KEY_F4 0xc5 #define KEY_F5 0xC6 #define KEY_F6 0xC7 #define KEY_F7 0xC8 #define KEY_F8 0xC9 #define KEY_F9 0xCA #define KEY_F10 0xCB #define KEY_F11 0xCC #define KEY_F12 0xCD #define KEY_LEFT_CTRL 0x80 int buttonPin = 9; int przyciskPin1 = 10; int przyciskPin2 = 8; int przyciskPin3 = 6; int przyciskPin4 = 5;
#włączać
pusta konfiguracja()
{ pinMode(buttonPin, INPUT); pinMode(przyciskPin1, WEJŚCIE); pinMode(buttonPin2, INPUT); pinMode(przyciskPin3, INPUT); pinMode(przyciskPin4, WEJŚCIE);
}
pusta pętla()
{ if (digitalRead(buttonPin) == 1) //Po naciśnięciu przycisku 1 { Keyboard.print("Wydrukuj dowolną frazę"); //
opóźnienie (1000);
} if (digitalRead(buttonPin1) == 1) { Keyboard.print(""); //Jakiekolwiek wyrażenie chcesz } if (digitalRead(buttonPin2) == 1) //To jest skrót do zmiany języka mojej klawiatury { Keyboard.press(KEY_RIGHT_SHIFT); Keyboard.press(KEY_LEFT_CTRL); Keyboard.release(KEY_LEFT_CTRL); Zwolnienie klawiatury(KEY_RIGHT_SHIFT); opóźnienie (1000); } if (digitalRead(buttonPin3) == 1) // Otwórz aplikację skrótem Ctrl + Alt + t { Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_LEFT_CTRL); Klawiatura.print('t'); Keyboard.release(KEY_LEFT_ALT); Keyboard.release(KEY_LEFT_CTRL); opóźnienie (1000); } if (digitalRead(buttonPin4) == 1) // Otwórz aplikację skrótem Ctrl + Alt + p
{ Keyboard.press (KEY_LEFT_ALT); Keyboard.press(KEY_LEFT_CTRL); Klawiatura.print('p'); Keyboard.release(KEY_LEFT_ALT); Keyboard.release(KEY_LEFT_CTRL); opóźnienie (1000); } }
Jeśli chcesz, aby Twoja klawiatura naciskała klawisz „Enter”: Keyboard.write(10); (Kod ACSII dla klawisza Enter to 10)
Opóźnienie po każdej akcji ma zapobiec spamowaniu klucza.
Oto kod do pobrania:
Krok 3: Tworzenie klawiszy skrótów do aplikacji
Krok 1: Utwórz skrót do aplikacji, których chcesz używać
Krok 2: Kliknij prawym przyciskiem myszy i wybierz „Właściwości”
Krok 3: Kliknij „Skrót” (pokazany na obrazku) i wybierz odpowiedni klucz
Na przykład, jeśli wybierzesz „p”, skrótem do aplikacji będzie Ctrl + Alt + p
Teraz powinieneś już iść
//Widać w kodzie
if (digitalRead(buttonPin4) == 1) // Otwórz aplikację skrótem Ctrl + Alt + p
{
Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_LEFT_CTRL); Klawiatura.print('p'); Keyboard.release(KEY_LEFT_ALT); Keyboard.release(KEY_LEFT_CTRL); opóźnienie (1000); }
Krok 4: Sugestie
Mam wszystkie 12 klawiszy Arduino Pro Micro związanych z czymś, oto co możesz zrobić:
- Polecenia gry lub spam (CS:GO, TF2)
- Uniwersalne skróty klawiszowe dla Windows Media Player, ponieważ moja klawiatura nie ma klawiszy funkcyjnych multimediów
Oto przewodnik po wtyczce:
www.howtogeek.com/howto/19356/add-global-h…
Link do pobrania:
wmpkeys.sourceforge.net/
- Automatyczne uzupełnianie haseł: jeśli nie chcesz zapamiętywać hasła w przeglądarce, przypisz je do jednego z przycisków (jest to ryzykowne, ale jeśli nie oznaczysz kluczy, powinno być w porządku, użyj:
if (digitalRead(buttonPin) == 1) //Po naciśnięciu przycisku 1 { Keyboard.print("Hasło");
opóźnienie (1000);
Klawiatura.zapis(10); // Aby nacisnąć Enter
}
Krok 5: Ekspansje
Możesz spróbować dodać czujniki i moduły do Pro Micro, aby mieć różne sposoby odblokowania komputera.
Może czytnik RFID, czytnik podczerwieni, aby po zeskanowaniu karty lub naciśnięciu pilota Pro mini mógł wydrukować hasło.
Na przykład uruchamiasz komputer, zamiast wpisywać hasło, skanujesz klucz RFID, a komputer jest odblokowany.
Myślałem o tym od jakiegoś czasu, ale nigdy tego nie zrobiłem, ponieważ moja płytka drukowana jest poza miejscem dla skanera, ale mam nadzieję, że moglibyście to urzeczywistnić.