Úvod
Na jedné ze stránek jsem zmínil použití kontroléru, který jsem
vytvořil pomocí desky Arduino nano.
Budu upřímný, příliš projektů jsem s Arduinem nerealizoval a mám své
důvody:
1. Před Arduinem jsem používal své desky s různými procesory (ATmega8,
ATmega88, PIC16F877, ...) a různým způsobem programování, vč. bootloaderů.
2. Většinu přístrojů (měřáky, tunery, spínače) jsem dokázal vyrobit pomocí
vynikajících čipů PICAXE. Tato řešení jsem popsal v předchozích článcích a
znovu zdůrazňuji výhody:
- existence vynikajících programovacích editorů
- krásný simulátor kontroléru
- jednoduché programování bez nutnosti použít programátor
- bohatá sada čipů PICAXE s různým počtem I/O pinů a s vestavěným UARTem
pro sériovou komunikaci.
3. Určitá zmlsanost daná historicky. Dávno před Arduinem jsem byl zvyklý
na vývojové prostředky, které poskytovaly vysoký komfort při programování,
snadnou editaci a hlavně simulátory, pomocí kterých jsem si svůj program
snadno vyzkoušel např. ve vlaku nebo na nudné poradě lidí, kteří si neváží
času druhých.
Proto jsem tady popsal tento jediný příklad, který ukazuje na velice komfortní
způsob programování kontrolérů PIC (mám od stejného autora více
kompilátorů, také pro AVR) pomocí nástrojů
https://www.oshonsoft.com/pic.html
Příklad - ovládání dálkového tuneru přes
sériový port
Můj oblíbený příklad. Dálkově ovládaný tuner je jednoduchý a spolehlivý.
Pokud potřebujeme symetrický tuner ke krátkovlnné anténě, stejně si ho
musíme vyrobit sami. Aplikace a obsahy pamětí běží na PC a popsal jsem ji
mnohokrát. V přístroji běží program v mikrokontroléru, který pouze přijímá
data ze sériového portu. Data obsahují 3 bajty, kde jedním bajtem se
nastavuje 256 hodnot indukčnosti, dalším 256 hodnot kapacity a posledním
konfigurace LC nebo CL. Ve výprodeji firmy Hadex jsem za necelou stokorunu
koupil několik čipů PIC 16F877 ve 40 pinovém DIL pouzdru, takže počet pinů
na spínání relé mám víc, než dost.
Program
Program pro mikrokontrolér je jednoduchý.
Napsal jsem ho asi za čtvrt hodiny v Basicu a náhled lze
stáhnout ve formátu pdf zde.
Editor
Oshon software má celkem normální hezký editor, dobře se
s tím dělá. Editor je přehledný:

Vpravo nahoře je tmavé menu, ze kterého lze zdrojový kód
přeložit, přeložit a uložit, případně přeložit, uložit a natáhnout do
simulátoru kontroléru a ladit.
Simulátor
Simulátor, to je parádička. Náhledy do registrů procesoru považujme za
samozřejmost. Zaměřme se na hlavní menu. Že se simulace nechá
odstartovat, krokovat, zastavit, to také samozřejmě předpokládáme.
Podobně, že se nechá celá řada parametrů nastavovat (Options).
Nástroje
Tady vidíme velice bohaté vybavení - viz vpravo
 |

Zvýraznil jsem si tři z mnoha nástrojů, které jsem
použil při odladění svého programu při cestě vlakem. |
Softwarový terminál na připojení k UARTu kontroléru. Na UART
terminálu si nastavíme, na které špičky připojíme RX a TX linku,
nastavíme přenosovou rychlost a můžeme začít komunikovat s
mikrokontrolérem. UART terminál je propojený s editorem, takže zrovna
prováděný řádek v Basicu je zvýrazněný červeně.

|
PINy
mikrokontroléru potřebuje i začátečník a neprogramátor sledovat z
pohledu jejich logické úrovně. Hned vidíme, jak nás program poslouchá.
V předchozím obrázku jste si všimli, že jsem do kontroléru poslal 3
bajty dat - FF FF 01 (dekádicky 255 255 001). První bajt mi rozsvítil
8 pinů portu B (RB0 až RB7), druhý bajt mi rozsvítil čtyři piny (bity)
portu A (RA0 až RA3). Port A má málo pinů. Proto jsem stejnou hodnotu
bajtu poslal taky do portu D a rozsvítil jsem 4 piny RD4 až RD7.
Vidíte, nemusel jsem ani přemýšlet o tom, zda budu bity v bajtu nějak
posouvat. Prostě jsem nakonfiguroval na každém portu jen 4 piny jako
výstupní, viz editor, řádky číslo 26 až 34 a celý bajt jsem šoupnul do
obou portů - viz řádky 67 a 68.
Ještě jsem šoupnul celý bajt3 do portu C (řádka č. 71), ale jen
jeden pin RC0 je konfigurován jako výstupní. Používám ho k přepínání
sedmnáctého relé, které nastavuje na tuneru konfiguraci LC nebo CL.
Všimněte si, že jsem nepotřeboval žádný I/O expandér a nepoužil
jsem žádnou složitou operaci pro práci s bity v bajtech, aby
mikrokontrolér za stovku spínal tak, jak má.
|
 |
|
|
LED Board
LED Board je úplně prostá a jednoduchá sonda.
Její HW obdobu jsem vyfotil a uvedl jako
čtvrtý obrázek na úvodní stránce. Jde o jednoduchý nástroj, který
nám někdy zpříjemní ladění. Obsahuje ho i sada nástrojů v simulátoru.
Použil jsem ho rovněž při ladění ukázkového programu a sice na
zobrazení hodnot 4 bitů portu A a portu D, abych je viděl hezky pod
sebou - viz obrázek vpravo.
Ostatní nástroje simulátoru
Prográmek použitý jako příklad je extrémně jednoduchý. Proto uvedu
na obrázku dole příklady dalších užitečných nástrojů:
osciloskop, grafický LCD displej, dvouřádkový LCD modul, simulátor
snímače teploty se sériovým výstupem, simulátor krokového motoru a
prohlížeč hodnot použitých proměnných. |
 |
|
|
 |
|
Závěr
1. Opět jste mohli nahlédnout pod pokličku do mé kuchyně. Amatérské
přístroje si bez mikrokontrolérů nedovedu představit. Jsem si vědom toho, že každý dělá s
tím, co má k dispozici a čemu věnoval čas k získání dovedností umět s
tím dělat. Proto předpokládám, že nemá smysl na amatérských stránkách
tyhle věci popisovat, když je jich plný Internet. Mým cílem bylo
potřebné aplikace vyřídit rychle, jednoduše a s vysokým komfortem vývoje.
2. Čipy PIC (Microchip) jsou u mě zastoupené tam, kde potřebuji větší
počet I/O pinů, oblíbený je PIC16F877A. Čipy PICAXE slouží v celé řadě
mých přístrojů. Ve starších přístrojích běží několik ATmega 8
(ATmega88) a v jedné aplikaci ATmega 328, vždy jsem používal AVR
kontroléry s bootloaderem.
Poznámky
1. Na cestovním notebooku mám nainstalované celkem 3 kompilátory
(IDE a simulátory) a každý mi na SSD disku sežere necelých 6 MBajtů:

2. Editor vytváří soubor s příponou .bas, po kompilaci nám
kompilátor vytvoří soubor .hex, který vypalujeme do flash paměti
mikrokontroléru a dále soubory .asm a .lst. Takže v jednom
zkompilovaném projektu najdeme např. takové soubory:

3. Obsah souborů lze znázornit a prohlédnout. Zde jsou odkazy na
obsah souborů našeho školního příkladu: bas
asm lst a
hex.
4. Nejsem programátor. Ani jím nechci a s ohledem na věk ani nemohu
být. Proto jsem volil v mých řešeních jednoduchost, časovou
nenáročnost a určitý komfort. Přeci jen potřebuji měřit, ovládat,
vysílat .... |
|