Je běžné, že při ladění programu pro mikrokontrolér PICAXE potřebujeme dělat nějaké kontrolní výpisy proměnných po programovacím kabelu do sériového terminálu, pro některé (zejména zkušební) programy toto bývá dokonce jediná forma komunikace. Jak to ale udělat, když z nějakého důvodu není možné mít při zkoušení zařízení připojené kabelem k PC?
Řešení je poměrně jednoduché, využijeme Bluetooth modul HC-05 a bezdrátový přenos údajů posílaných do terminálu v mobilního telefonu. Obejdeme se dokonce bez úpravy programu v Picaxe.
BT modul připojíme podle následujícího nákresu. Problém je v tom, že výstup SerOut nelze přímo spojit s RxD na HC-05. Brání tomu dvě věci, jednak je rozdílná polarita sériového signálu (je nutné jej invertovat), jednak Picaxe bude většinou napájen z 5 V a vstup HC-05 má být v úrovních logiky 3,3V. Pomůžeme si jedním tranzistorem a malou zenerovou diodou na napětí kolem 3 V (třeba BZX83V003.0).
Pokud je modul HC-05 správně nastavený, stačí nyní v mobilu nebo tabletu spustit BT terminál a navázat spojení s modulem. Kontrolní výpisy, které původně mířily do počítače, se zobrazí na něm.
Háček je ve formulaci „správně nastavený„. Když už jsme modul HC-05 pro tento účel použili a jeho nastavení se nezměnilo, je to opravdu takhle snadné. Bohužel nový (nebo „resetovaný“) modul stejně snadno použít nejde, musíme mu nastavit parametry přenosu, které odpovídají Picaxe, to je 4800,n,8,1 pro většinu typů Picaxe při základním kmitočtu hodin nebo 9600,n,8,1 pro řadu X2.
Jsou dvě cesty, jak modul nastavit. Můžeme postupovat podle článku „Programování Bluetooth modulů HC-05 (1)„. Pro komunikaci s modulem zvolíme terminál v PC a postavíme si přípravek, který upraví úrovně ze sériové linky. Je to univerzální a nezávislé na platformě, s níž pracujeme.
Druhou možností je, že si podstatně jednodušší přípravek vytvoříme programem přímo z toho zapojení, které již máme. Aby bylo možné doplnit opravdu minimum součástek (stačí jedna LED), budeme modul ovládat „naslepo“ bez čtení jeho hlášení.
Vývod WAKEUP modulu spojíme s napájením +5V přes zelenou nebo žlutou LED (červená má menší úbytek napětí a není vhodná). Když teď zapneme napájení, modul se uvede do příkazového režimu a nastaví si pevně danou rychlost přenosu 38400 Bd. To nám stačí vědět, dál můžeme postupovat příkazy uvedenými v článku, nejprve uvést modul do výchozího stavu, pak změnit rychlost přenosu a pokud chceme, dalšími příkazy třeba jméno nebo hleslo, to už pro náš problém není podstatné. Je nutné pracovat při plné rychlosti hodin 32 MHz, jinak bychom nedosáhli 38400 Bd. Program pro Picaxe může vypadat třeba takto:
REM programovani modulu HC-05 #picaxe 20M2 #no_data setfreq m32 pause 8000 sertxd("AT+ORGL",13,10) pause 4000 sertxd("AT+UART=4800,0,0",13,10) pause 4000 end
Pokud byl během přenosu tohoto programu BT modul připojený, nevadí to, ale dostal pro něj nesmyslná data a není jisté, v jakém stavu je. Vypneme napájení, počkáme, zapneme napájení. Počkáme několik sekund a opět napětí vypneme. Picaxe modul (snad) naprogramoval. Odpojíme LED u vývodu WAKEUP, zapneme napájení a do Picaxe přeneseme původní program, jehož kontrolní výpisy potřebujeme zobrazit.
My si v této ukázce pomůžeme zkušebním programem, který kontrolní výpisy co nejjednodušeji nasimuluje. Stačí třeba nekonečná smyčka v níž budeme kontrolovat hodnotu jednobytové proměnné:
REM Kontrolni vypis PICAXE do inc b0 pause 1000 sertxd (" b0= ",#b0,13,10);toto je nas kontrolni vypis loop
Ověříme si, že tento program pracuje a posílá data do sériového terminálu v PC.
Nyní už stačí (tak bylo uvedeno na začátku) připojit BT modul, spustit v mobilu BT terminál, navázat spojení, a stejný kontrolní výpis by se měl postupně objevovat na displeji mobilu.
Kat. 2