Úvod
Čipy PICAXE nabízejí široký sortiment instrukcí pro práci s
informacemi na vstupech. Data ze vstupů jsou posílána pomocí sériového
portu do serverů a aplikací. Princip sériové komunikace jsem popsal v
předchozí stránce.
Editor, který jsem použil k napsání programu a naprogramování čipu
není jediný, který je k dispozici. Osobně ho považuji za nejlepší. Je
určen pro Windows a vyžaduje mít instalovaný Framework .NET verze
3.51. Další vývojová prostředí pro programy PICAXE jsou k dispozici na
stránkách výrobce:
https://picaxe.com/getting-started/software-selection/
Pro naprogramování čipu jsou důležité znalosti o tom, co konkrétní
instrukce provádějí. Doporučuji si o tom přečíst ve
stručném přehledu (v českém jazyce,
staženo z internetu, autor neznámý, omlouvám se, že jsem si nenapsal
zdroj, je to hezky přehledné). Úplný přehled instrukcí je obsahem
druhého manuálu - lze stáhnout zde a
také na stránkách výrobce čipů PICAXE zde:
https://picaxe.com/getting-started/picaxe-manuals/
Úkol 1, měření ADC převodníky
Potřebujeme napsat program, který zajistí tyto funkcionality čipu PICAXE:
1. Bude očumovat na sériovém portu C.3, až přijde
preambule 254,86,86. Pokud bude přijata tato kombinace, která znamená
adresu našeho čipu, bude pokračovat program instrukcemi na dalších
řádcích.
2. Pokud přijde správná prambule, budou změřeny ADC převodníky hodnoty
napětí na vstupech C.1 a C.2
3. Další instrukcí budou bajty se změřenými hodnotami poslány z čipu do
sériového portu.
4. Před data budou vloženy 3 bajty preambule (qualifier), aby zařízení na
druhém konci poznalo, odkud byla data odeslána. Qualifier je použit
současně také pro adresaci čipu.
5. Hlavní smyčka programu poběží mezi návěštím main: (řádek 5) a koncem
smyčky (řádek 19).
Program vypadá takto:
 |
Celý program lze odladit v simulátoru Editoru PICAXE. Hodnoty
převodníků zadáváme po kliknutí pravého tlačítka na příslušný pin.
Sériová data (zde jen preambuli), zadáváme z terminálu jako čísla. Po
odeslání přečteme odeslanou posloupnost bajtů rovněž v terminálu.
Velice elegantní, že? |
 |
|
 |
|
 |
Úkol 2, měření čítačem
Potřebujeme napsat program, který zajistí tyto funkcionality čipu
PICAXE:
1. Bude očumovat na sériovém portu C.3, až přijde
preambule 254,86,86. Pokud bude přijata tato kombinace, která znamená
adresu našeho čipu, bude pokračovat program instrukcemi na dalších
řádcích.
2. Na řádku č. 13 spustí instrukce count C.1, 1000, w0 čítání impulsů na
vstupu C.1 po dobu 1000 milisekund a po uplynutí měřící doby hodnotu
zapíše do slova w0 (dva bajty, rozlišeno maximálně 65536 hodnot).
3. Na čádku č. 15 se slovo w0 odešle po tříbajtové preambuli jako další
dva bajty skrz sériový port do komunikujícího zařízení.
4. Hlavní smyčka poběží mezi řádky č. 5 a č. 19
|
 |
Při ladění v simulátoru si potřebujeme ověřit, zda program opravdu
posílá správné hodnoty z čítače do terminálu. To uděláme tak, že v
levém spodním okně "Simulation" si přepneme na zobrazení "Values" a
napíšeme si hodnotu slova w0. V našem příkladě jsem si napsal hodnotu
65535, což odpovídá bajtům 255 255 (tj. FFh FFh). V terminálu vidíme,
že po preambuli bylo odesláno slovo w0 jako dva bajty za sebou (255
255).
|
 |
Rekapitulace
1. V tomto článku jsme se naučili, jak čip PICAXE změří pomocí ADC
převodníků hodnoty na dvou analogových vstupech a odešle naměřené
hodnoty do sériového portu. Vše provede na pokyn z komunikujícího
zařízení. Před dvěma bajty dat odešle preambuli, podle které se pozná,
z kterého zařízení byla data odeslána.
2. Také jsme se naučili na pokyn změřit čítačem počet pulsů, který
přišel na vstup C.1 během doby měření v délce 1000 ms. Po načítání je
hodnota odeslána za preambulí čipu, podle kterého druhé zařízení
pozná, odkud byla data odeslána.
Poznámky
1. Obě měření jsou provedena na pokyn a pak odeslána po sériovém
portu. Na sériovém rozhraní tedy netrtká žádný protokol zbytečně a
neucpává nám sériovou linku, která využívá protokolu s jednoduchou
adresací, balastem, který nepotřebujeme.
2. Programy jsou neskutečně jednoduché a naprogramování čipů je
neskutečně elegantní. Jen za takových podmínek lze očekávat výsledek
(spolehlivý program) rychle.
3. Telemetrické měření pomocí čítače (instrukce count) je využitelné k
vyčítání převodníků napětí - kmitočet (voltage frequency converters
(VFC). Takové převodníky se vyznačují neskutečně nízkou nelinearitou
(některé převodníky umí nelinearitu menší, než 0.01%) a rovněž počet
hladin, které jsme schopni rozlišit je dán délkou slova w0 (16 bitů),
teoreticky bychom byli schopni rozlišit 65535 hodnot měřené veličiny.
VFC převodníky používám velice rád k přesným měřením.
4. Pro telemetrická měření s radostí používám nejlacinější čipy PICAXE
08M2. Důvod je prostý, obvykle mi stačí měřit v jednom místě měřit
max. 2 veličiny.
5. Pro telemetrická snímání stavů kontaktů naopak používám čipy s
velkým počtem vstupů (20M2, 28X2, 40X2).
Jsou na místě domácí úkoly (Úkol č. 3 a č. 4):
Úkol č. 3: Navrhněte program, který vám na pokyn odešle stav 8 vstupů,
na kterých jsou připojené kontakty.
Úkol č. 4: Navrhněte program, který na pokyn odešle hodnotu teploty
změřenou čidlem Dallas, typ DS 18S20.
V obou případech použijte bajty qualifier (preambule), dle které čip
pozná, že má měřit. Preambuli čip odešle, aby zařízení na druhé straně
poznalo, odkud naměřená hodnota přišla.
|
Závěr
Opět musím konstatovat, že úlohy telemetrických měření jsem schopen
elegantně a rychle realizovat pomocí čipů PICAXE. |
|
|