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