Programovatelná makro klávesnice

V tomto článku bych Vám chtěl představit klávesnici, kterou jsem vyvíjel s kolegy z konstrukční kanceláře. Jedná se o tzv. „makro klávesnici“, kterou lze naprogramovat – nastavit jí příkazy, funkce atd… Reálné využití bude mít v usnadnění práce v CAD programech, ale nalezne využití například i při streamování video her. Pod jednotlivá tlačítka lze nastavit sled kláves, který klávesnice vyšle do PC pomocí USB portu. Na níže uvedených obrázcích je klávesnice, která má naprogramované spuštění jednotlivých programů.

usb makro klavesnice

Popis zapojení:

Zapojení je velmi jednoduché, jedná se pouze o modul Arduino Micro (ATmega32u4 s vestavěným USB). Tento modul má tu výhodu, že neobsahuje USB-sériový převodník a proto se v PC tváří jako samostatné HID zařízení, lze jej tedy využít například jako klávesnici. K tomuto modulu je zapojených 8 tlačítek, která při sepnutí spínají proti GND napájení. Ke každému tlačítku je paralelně připojen keramický kondenzátor 100nF, který filtruje záchvěvy při sepnutí a rozepnutí tlačítka. Uvnitř mikroprocesoru jsou softwarově aktivované pull-up rezistory, které v nesepnutém stavu přivádějí na vstup proud a tím logickou 1. V tomto ukázkovém zapojené je využito 8 spínačů a jsou obsazené vstupy D2 až D9. Plošný spoj se spínači je s Arduino Micro propojený 9 vodičovým plochým kabelem. Tlačítka jsem použil Omron B3F-4055 (12×12) s hmatníkem, který lze rozebrat s vložit do něj papírek s obrázkem. K samotnému modulu se pak připojujeme pomocí Micro USB kabelu.

tact switch

Modul obsahuje celkově 14 digitálních a 4 analogové vstupy, je možné tedy jednoduše připojit až 18 tlačítek, případně využít maticové zapojení pro zvýšení počtu. Často se využívá i zapojení pomocí analogového vstupy, kdy v řadě rezistorů fungují spínače jako odbočky, který mění hodnotu v odporovém děliči.

Pro tento účel vznikla i krabička vyrobená na 3D tiskárně, která celému zapojení dodává „profesionální vzhled“. Krabička se skládá z 2 kusů. Spodní díl, ve kterém je uchycené Arduino Micro a horní rámeček, který uchycuje plošný spoj se spínači.

Plošný spoj a osazovací plán:
tact switchdps klavesnice

Osazovací plán i DPS jsou 1:1 600dpi (jak vytisknout DPS naleznete v článku Jak vytisknout DPS). Skutečná velikost DPS je 61,0 x 32,7 mm.

Krabička z 3D tiskárny:

Krabička byla navržena pro 8 kusů tlačítek a Arduino Micro. Víčko krabičky má velmi malou vůli, díky tomu „zacvakne“ a slouží jako aretace plošného spoje se spínači. Soubory je možné stáhnout v následujícím odkazu, jsou volně k dispozici na stránkách Thingiverse: https://www.thingiverse.com/thing:4766586.

krabicka 3D tisk

Arduino kód:

Kód pro tuto konstrukci je volně k dispozici, níže popíši nejčastěji používané makra a uvedu příklady reálného použití. Kompletní kód na tuto konstrukci je k dispozici zde: https://pastebin.com/fKvN8VMe.

if ((buttonState1 != previousButtonState1)
      && (buttonState1 == LOW)) {
    Keyboard.write(KEY_LEFT_GUI); //WINDOWS
    delay(100);
    Keyboard.println("word");
    delay(100);
    Keyboard.write(KEY_RETURN);  //ENTER
    delay(200);
  }
  previousButtonState1 = buttonState1;

Tato zobrazená část kódu spouštění program Microsoft Word. Řádek 1 a 2 je podmínka KDYŽ, která vyhodnocuje stisknutí tlačítka. První část podmínky vyhodnocuje dlouhé stisknutí tlačítka (hlídá aby se příkaz stále neopakoval) a druhá část už samotné stisknutí. Řádek 3 odesílá stisknutí klávesy Windows (otevře nabídku Start). Řádek 5 vypíše text „word“, který nalezne danou aplikace v PC. Řádek číslo 7 odesílá stisknutí klávesy Enter. Za každým příkazem je nutné program „pozastavit“ pomocí funkce delay, počítač by pak nestíhal příchozí data po USB správně vyhodnocovat. Na řádku 10 zapisujeme do proměnné aktuální stav tlačítka, s kterým je procováno v první části podmínky.

2 komentáře

Přidejte odpověď

Vaše e-mailová adresa nebude zveřejněna.


*