Jaky typ pripojeni pro klavesnici?

Pavel Kutina hw na prelude.cz
Neděle Srpen 25 20:55:42 CEST 2019


Zdravim,

potreboval bych trochu popostrcit mozek - buduju si takovou malou hracku, 
ARM, k nemu troska klavesnice z nejakeho subntebooku, nejvetsi transflexni 
COG LCD, co jsem kde potkal - no a a nad tim vsim BASIC :) (plus nejaka 
nadstavba pro dalsi HW drobnosti).

Klavesnice (nejen z duvodu vytezovani hlavniho procesoru) ma vlastni 
procesor, na nem jsou navesene jesete nejake LEDky a v planu dalsi 
ptakoviny. A jeste neni uplne rozhodnuto, jakyze BASIC si do toho nacpu, 
anzto se mi nechce psat interpret od nuly, bohate saci, ze budu priohybavat 
cizi reseni. Podobnych projektu jsou hromady, takze se da odkud opisovat 
nebo se lehce inspirovat.

Vsechno mi po HW strance chodi, po SW strance si s tim povidam, ale ted 
premyslim, co dal, resp. jak komunikovat mezi klavesnici a hlavnim 
procesorem - muzu napsat (nebo opet pouzit nejakou dostupnou) knihovnu pro 
emulaci PS/2 klavesnice (neni uplne mala, ma to 80 klaves a mam vymyslene 
vyuziti i ruznych "Fn" kominaci atd.), na strane toho hlavniho ARMu to cist 
jako PS/2 a je v podstate vystarano.

Druha moznost je emulovat nejaky terminal a dovymyslet si chybejici kody, na 
strane ARMu si to "nejak" obslouzit po seriove lince.

Obe reseni maji sva pro a proti - reseni s terminalem a seriovkou je asi 
jednodussi po stance programove, zase to sezere jeden UART ze tri na hlavnim 
procesoru. A kazdy UART, ktery nemusim pouzit interne, budu moci vyuzit na 
hrani "s okolim".

Reseni pres PS/2 znamena napsat kompletni obsluhu a buffering pro stranu 
klavesnice (ruzne mnohostisky, pamatovat si, co bylo v predchozim cteni 
stisknute a ted uz neni atd. Zatim jsem nepotkal nejaky kompletnejsi 
projekt, kde by se dalo inspirovat - vsechny knihovny resi jen vlastni 
odeslani, ale uz ne obsluhu te matice, buffering, repeat atp. Aktualne je 
tam AVR, co cte matici klaves a pripadne posila nejake scankody - to ma do 
PS/2 protokolu jeste docela daleko. Na strane toho ARMu to znamena trochu 
pobojovat s prerusenim a nejak to "jen" dodelat :)

Nebo si napsat nejaky uplne vlastni system a komunikacni protokol?

Co byste zvolili vy -  pripadne i proc? Ja se zatim priklanim k te vnitrni 
emulaci PS/2, i kdyz to asi bude znamenat vic kodu na strane klavesnice, ae 
zase se tam to AVR nebude zbytecne nudit :)

Jo a kdybyste nekdo vedel o vetsim COG LCD - ted mam tusim 95x60 mm aktivni 
plochy, 240x128 px - TFT nechci z duvodu citelnosti na slunci a spotreby, 
stejne tak by to mel byt COG z duvodu hmotnosti, klasika jako treba 
https://www.soselectronic.cz/products/bolymin/bg-320240f-bnchnp-bg320240fbnchnp87a-1-53760 
by mi preklapela "notebook" na zadicka :) No v uvahu by asi pripadal eInk, 
ale zase neni videt potme a dynamicky to stoji za... za malo.

Diky za inspiraci.

Pavel Kutina






Další informace o konferenci Hw-list