Kontrolní výpisy v programu PICAXE

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).

BT_picaxe
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í.

bt_picaxe2Vý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.

termin4800

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.

IMGP1646b

Kat. 2