Postupně zjistíme, jaké komponenty budou potřeba a jak určit matici klávesnice.
Konektor
Začneme průzkumem klávesnice. Musíme zjistit, jaký typ konektoru flex kabel klávesnice používá. U nx6310 je to 30ti pinový FCC kabel s roztečí 1mm.
Volitelně si obstarejte plošný spoj – adaptér pro FFC/PFC konektor, jednoduše a rychle se pak určí matice klávesnice a lze jej snadno připojit k výslednému produktu.
Určení matice klávesnice
Pro matici si připravte dokument tabulkového procesoru (LibreOffice Calc), dobře se pak redukuje a zjišťuje počet řádků. Matici jsem určil následovně. FFC kabel z klávesnice jsem připojil ke konektoru, konektor k měřícím háčkům a háčky k multimetru. Nebylo to zrovna moc zábavné, rozteč 1mm je dost na hraně, háček může při manipulaci sklouznout, proto opravdu doporučuji FFC/FPC adaptér. Postup je pak snadný. Připojíte FFC/FPC adaptér k nepájivému poli propojkami, ideálně dodržet číslování pinů. Matici si jednoduše vyblikáte diodou. Např. pin 1 pripojte k led a pin 2 k napájení. Stiskněte postupně všechny tlačítka, pokud se led v něteré kombinaci rozsvítí, znáte polohu klávesy. Některé kombinace mohou být mrtvé, proto postupně zkoušíme kombinace 1-3, 1-4, .. 1-27, pak 2-3, 2-4 …, 3-4, 3-5 … atd., výsledky postupně zapíšeme. Klávesy které už známe nemusíme mačkat. Výslednou matici zredukujte, některou část budete muset prohodit diagonálně. Je nutné, aby počet sloupců v programu byl 8, algoritmus hledání stisku kláves je pak mnohem snažší. U nx6310 jsem zjistil ještě speciální řádek s vlastními sloupci pro CTRL, ALT, SHIFT, FN. Přikládám sešit k nahlédnutí.
Volba mikrokontroléru a programátoru
Komunikaci s PC i čtení stisku kláves zajistí mikrokontrolér. Dle počtu pinů konektoru se jako vhodný jeví ATmega16, v mém případě ATmega16a. Umožňuje pracovat s taktem 12MHz, který jako minimální vyžaduje V-USB.
Mikrokontrolér se musí naprogramovat, proto je potřeba obsatarat si vhodný programátor. Z Číny jsem objednal usbisp v3.01, software je bohužel jen pro winows a není bez přeprogramování kompatibilní s usbasp. Ti, kteří chtějí pouze linux, musí pečlivě vybírat. My ostatní si vystačíme s virtualizovanými windows anebo přeprogramujeme.
K programování se nejlépe hodí vývojová deska s ISP konektorem. Některé mají i vývod pinů pro jednoduché připojení prototypu. Z Číny mi přišel ISP ATmega32 board, bohatě stačí. Původní 8MHz krystal jsem použil ke stavbě avrtesteru a s osazenýmí smd 30pF kondenzátory u krystalu jsem nezaznamenal žádné problémy.
Ostatní součástky v obvodu
Programově zajišťuje komunikaci s USB knihovna V-USB, ta vyžaduje minimální takt 12MHz, proto si obstarejte vhodný krystal. Pokud budete používat k vývoji nepájivé pole, ke krystalu budou potřeba 22pF keramické kondenzátory.
ATmega16a může pracovat s napětím 2.7 – 5.5V, ATmega16 4.5 – 5.5V. Je více variant, jak výsledný obvod sestavit. Pro ATmega16a postačí 2 diody 1N4148, pro ATmega16 2 zenerovy diody 3.6V.
K tomu přidejte jeden pull-up rezistor 1.5kOhm a 2x 68Ohm rezistory pro USB Data. Ke stabilizaci napětí by mohl posloužit 10uF kondenzátor. Použil jsem variantu s diodami 1N4148, kdy dojde k úbytku napětí a mikrokontrolér je napájen 3.6V +- 0.1V, toto napětí je pro takt 12MHz dostačující. Pokud máte v plánu vyšší frekvence, použijte zenerovy diody a pro jistotu prostudujte datasheet.
Seznam součástek
- FFC/FPC konektor 30pin 1mm
- volitelně FFC/FPC adaptér vhodných parametrů
- 2x 1N4148 anebo 2x zenerovy diody 3.6V
- XTAL 12MHz
- 2x 22pF keramický kondenzátor
- 2x 68Ohm rezistor
- 1x 1.5kOhm rezistor
- 1x elektorlytický kondenzátor 10uF
- programátor ATmega např. usbasp
- 1 nepájivé pole
- propojky k nepájivému poli, samice i samci
- volitelně vývojová deska pro ATmega16
- USB konektor + kabel k USB konektoru
- mikrokontrolér ATmega16
Kde shánět
Většinu věcí seženete levně z Číny (FFC/FPC konektor a adaptér, vývojová deska, programátor, mikrokontrolér, propojky, nepájivé pole), zbytek snadno v tuzemských obchodech anebo na aukru.
Osobně mám z číny mikrokontrolér, programátor, vývojovou desku, propojky, cena je takřka třetinová oproti naším, poštovné zdarma, jen ta čekací doba a nejistota čínské kvality – zatím bez problému.
Pokud máme všechny součástky pohromadě, můžeme začít se stavbou.