OK1UFC
Čipy PICAXE a jejich použití pro dálkové ovládání, popis jednoduchého SW | Poslední aktualizace v srpnu 2020
Úvod Čipy PICAXE nabízejí široký sortiment instrukcí pro řízení výstupů. V tomto článku popisuji, na jakém principu funguje protokol sériové komunikace a jednoduchý příklad programu, kterým lze pomocí sériového rozhraní ovládat výstupní piny mikrokontroléru. Protokol sériové komunikace Od komunikace pomocí sériového kanálu vyžadujeme několik důležitých funkcionalit. Jde nám o to, aby mikrokontrolér poznal, kde na portu začíná začátek protokolu, zda je komunikace určená pro náš mikrokontrolér (adresace), případně, zda byl protokol odeslán z kontroléru k tomu určenému, aby byla přenesena data v potřebném sledu a případně, aby na konci protokolu byl znak, že takovým bajtem protokol končí. Opakuji, že po sériovém kanálu se přenášejí všechny uvedené informace bajt po bajtu (tj. běžně po 8 bitech). Za dobrý, ale velice jednoduchý a přehledný protokol považuji protokol, který používá firma Icom pro komunikaci se zařízeními. Základní tvar protokolu zde znovu vysvětluji na komunikaci kontroléru (zde rozuměj program v PC) do zařízení (zde rozuměj zařízení Icom, konkrétně zařízení s adresou 76h, což je TCVR IC-7200. Originální manuál s částí, ve které je popsán protokol, sada příkazů, subpříkazů a dat s parametry, je ke stažení zde.
Zapojení mikrokontroléru a instrukce PICAXE pro sériovou komunikaci Čipy PICAXE jsou stvořené pro sériovou komunikaci. Pomocí sériové komunikace je rovněž do čipů zaváděn program. Čipy můžeme naprogramovat v jednoduchém přípravku (bude popsán) nebo přímo v přístroji, kde jsou zapojené. V přípravku programuji čipy, které jsou v pouzdře DIP. Do přístroje vložím do patice naprogramovaný čip. V přístroji programuji čipy, které jsou zapájené. K programování a k finální komunikaci používám rozdílné sériové vstupy, viz obrázek:
Příklad jednoduchého programu pro dálkové ovládání Nejjednodušší, ale plně funkční program je popsán obrázkem náhledu na programovací prostředí PICAXE Editor 6.1.0.0; program je bohatě komentován, ale i tak je napsán asi na 25 řádcích včetně komentáře. Potřebné instrukce jsou jen asi na 10 řádcích. Program po připojení napájení provede nějaká nastavení (níže bod č. 1) a potom cyklicky vykonává hlavní smyčku, která začíná na návěští main: 1. Program jde do procedury, která nastaví výstupní piny na úroveň low. Moje zkušenost - nastavuji jeden pin po druhém instrukcemi v proceduře na řádku 23 a 24. Tím se současně nastaví piny jako výstupní. Po provedení se vrací řízení programu zpět. 2. Hlavní smyčka programu je označena "main:" a návěští je na řádku číslo 5. 3. Na řádku č. 6 se přijímají data ze sériového portu. Užitečné jsou dva bajty, které uložíme do proměnných b0 a b1. 4. Instrukce na řádku 6 si všimneme podrobněji. C.6 znamená, že sériová data čteme ze špičky (pinu) C.6. V závorce jsou čísla (254,254,118,224). Těmto číslům říkáme hodnoty qualifier. Nebo také preambule. Pokud je program přijme správně, přijme rovněž bajty b0 a b1 a dosadí je do těchto proměnných. Pokud se hodnota qualifier liší, data b0 a b1 se ukládat nebudou. Tuto posloupnost zde používám k adresaci konkrétního čipu. Čipy mají podobné programy, které se liší v počtu bajtů a hodnotách qualifier (preambule). V mé úloze jsem u prvního čipu použil číslo 118, u druhého 119, atd. V jiné úloze - viz poznámka v prvním obrázku, jsem použil jiné hodnoty i jiné počty bajtů preambule. 5. Pokud se nám přijaté hodnoty qualifier a hodnoty naprogramované v čipu shodují, jsou přijaté a uložené hodnoty bajtů b0 a b1. Program následně běží na řádky 15 a 16. Tam jsou nastaveny pomocí instrukcí outpinB a outpinC všechny piny portu B a piny portu C mimo C.6 (ten není u typu 20M2 výstupní). 6. Na řádku 18 je pausa 100 ms (netřeba čip nutit k nepotřebnému výkonu) a skok na řádku č. 20 vrací program na začátek hlavní smyčky (návěští main:). Úplný výpis programu ve formátu pdf je ke stažení tady.
Program je velice jednoduchý a přehledný. Abychom se vyznali přesně v tom, co konkrétní instrukce dělají, 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/ 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/ Jiný příklad sériové komunikace s adresací čipů, který využívá stejný program, je popsán zde: http://ok1ufc.nagano.cz/Gambas_stranky/serial_picaxe/serial_expander.htm Závěry 1. Použití čipů PICAXE pro použití v oblasti dálkového ovládání se mi jeví jako nejjednodušší, nejméně pracný, ale spolehlivý způsob. S žádnými jinými čipy jsem nebyl schopen realizovat zařízení tak rychle a tak jednoduše. 2. Pokud použijeme protokol, který umožňuje adresaci a čipům správně naprogramujeme qualifier bajty (popsáno v tomto článku, jak to funguje), jsme schopni po jednom sériovém portu ovládat značná množství výstupů, např. relé. Dříve jsem používal pro stejné funkcionality čipy Atmega 88 (Atmega8). 3. Několik dalších užitečných instrukcí pro použití v telemetrii (TM) je popsáno v dalším článku.
TU 73, Mira, ok1ufc