OK1UFC
Čipy PICAXE a jejich použití pro telemetrii (TM), popis jednoduchého SW | Poslední aktualizace v srpnu 2020
Ú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.
TU 73, Mira, ok1ufc