Az elmúlt napokban nagy buzgalommal kezdtem neki a morze abc megtanulásának. A számtalan hallás utáni vétel elsajátítására kihegyezett, jobbnál-jobb szoftver és weblap között rátaláltam a lcwo.net-re ( learn cw online ) , ahol a morze adásgyakorlására is lehetőség van. Apró szépséghiba, hogy a számítógép SPACE billentyűjét kell püfölni hozzá… Adott volt a feladat, hogy készítsek egy interface-t ami a morzebillentyű lenyomásakor a számítógép SPACE billentyűjét nyomkodja. Az első ötlet természetesen az volt, hogy egy vezetékes usb-s billentyűzet szóköz billentyűjének a kontaktusait repülőzöm ki majd csatlakoztatom a morzebillentyűhöz. Aztán picit tovább gondolva a lehetséges megoldásokat bevillant, hogy a pár ezer Forintért kapható Raspberry Pi Pico mikrovezérlők USB HID kompatibilisek, azaz tudnak számítógép billentyűzetet, egeret illetve joystic-ot emulálni. Az USB-s pc billentyűzet megmenekült ! 🙂
A kód megírásához a CircuitPython nyelvet választottam, elsősorban azért mert az Adafruit cégnek köszönhetően számtalan library érhető el hozzá, többek között az USB HID kapcsolaté is. A szűz Raspberry Pi Pico-k esetében első körben installálni kell a panelra a CircuitPython nyelvet.
Elsőként töltsük le a CircuitPython oldaláról a panel tipusának megfelelő UF2 kiterjesztésű fájlt.
Nyomjuk le és tartsuk nyomva az aprócska panelen található BOOTSEL gombot amíg egy újm RPI-RP2 nevű meghajtó lesz látható a gépünkön. Ebbe maghajtóba másoljuk be az UF2 fájlt ééééééééééés a meghajtó neve átváltozik CIRCUITPY -ra. Ezzel meg is volnánk a programnyelv installálásával. Ezen túl a panel CIRCUITPY néven lesz elérhető, a gyökérkönyvtárban található code.py -ba tudjuk írni a szoftvert, mely akár egy közönséges editorral is elvégezhető, de az Adafruit a MU Editort ajánlja hozzá, ami egy faék egyszerű editor hibakeresés funkcióval illetve REPL ( a panel válaszának kijelzésére alkalmas ) ablakocskával. Ne ilyedjünk meg. az editor első használatakor elég sokáig szöszmötöl.
A következő feladatunk, hogy letöltsük a a panelra a kód futásához szükséges „extra” library-kat. Az aktuális library csomag itt található meg. Fontos, hogy az installált CircuitPython verziónknak megfelelő library bundle-t töltsük le. ( a cikk írásakor ez a 9-es verzió ) A letöltött zip fájlt csomagoljuk ki, majd a lib mappában található temérdek könytárból válasszuk ki a számunkra szükséges adafruit_hid könyvtárat, és ahogy van ( könyvtárként ) másoljuk be a panel lib könyvtárába.
Ezek után jöhet maga a kód, melyet a panel gyökérkönyvtárában található code.py -ba kell bemásolni.
Miután rátöltöttük / lementettük a kódot a panelra, egy újraindítás után egy új billentyűzet ( „HID billentyűzet eszköz” ) is megjelenik a windows eszközkezelőben. Ha nyomkodjuk a morzebillentyűt, annak szóközöket kell beírnia például egy megnyitott dokumentumba, vagy a lcwo.net – „tx training” menüjében már meg is tudjuk szólaltatni a rendszert.
A morzebillentyű a Raspberry Pi Pico GP17 -es portjára és egy szemközti GND-re csatlakozik. Ez nyugodtan átírható, ha másik portra csatlakoztatod a billentyűt. Ha túl hosszúnak találod a kódot 🙂 a led.value… sorok kihagyhatóak, ez „csak” a panel saját kis smd led-jét kapcsolja be illetve ki a billEntyű megnyomásakor ( hibajavításhoz kiváló volt )
A kód a morzebillentyű megnyomásakor „lenyomja” a SPACE billentyűt és nyomva tartja amíg mi is nyomjuk azt.
Amennyiben másik billentyű megnyomásával aktiválható valamelyik másik morze program, akkor a SPACE átírható az adott karakterre.