Arduino

 

 

Co to je Arduino?

Základ tvoří hlavní deska s některým z čipů z řady ATmega a grafické vývojové prostředí Arduino IDE napsané v jazyce Java. Mikroprocesor lze přes toto prostředí programovat v jazyce C nebo C#. K programování lze použít i knihovnu Wiring, která sdružuje některé funkce jazyku C a tím usnadňuje vývoj programu. Daní za to je jako vždy delší strojový kód po překladu programu a tím vyšší nároky na paměť mikroprocesoru. Kromě hlavní desky existuje mnoho dalších modulů, které rozšiřují možnosti hlavní desky. Moduly mohou být nejrůznějšího typu: senzory fyzikálních veličin, paměťová média, datové sběrnice, displeje, ovládácí rozhraní, atp.

Arduino je tedy univerzální volně přístupná platforma založená na 8 bit mikrokontroléru ATmega. Tato platforma byla vyvinuta za účelem rychlého vývoje, jednoduchého ovládání a cenové dostupnosti. Díky tomu je Arduino vyhledáváno zejména studenty a domácími kutily. Dále na Arduinu velmi oceňuji jeho modularitu a neustálý vývoj kupředu. Arduino moduly lze zakoupit již hotové nebo je lze postavit svépomocí, jelikož je veškerá dokumentace volně přístupná.

 

Hlavní deska s mikrokontrolérem – Arduino Uno

Právě Arduino Uno je přimým pokračovatelem hlavní řady Arduino a jedná se o nejčastěji používanou hlavní desku (r. 2014). Jádro tvoří mikrokontrolér ATmega328P-PU tikající na frekvenci 16 MHz. Mikrokontrolér disponuje 14 digitálnímy vstupy/výstupy (z nichž 6 lze použít jako PWM výstup) a 6 analogovými vstupy, které mají rozlišení 10 bit a rozsah 0 – 5 V s možností změny horní hodnoty rozsahu a tím pádem zmenšení kvanta napětí (minimální změna napětí, kterou je ADC schopný měřit). Co se paměti týče, tak mikrokontrolér ATmega328 je vybaven 32 kB typu FLASH, 2 kB SRAM a 1 kB EEPROM.

 

Rozšiřující moduly kompatibilní s hlavní deskou Arduino

Arduino Ethernet Shield a Arduino WiFi Shield

Tento modul se připojuje k hlavnímu modulu přes SPI sběrnici a umožňuje tak propojení Arduina s internetem buď přes UTP kabel (Arduino Ethernet Shield) nebo bezdrátově (Arduino Wifi Shield). Díky tomu lze Arduino ovládat nebo jen vyčítat data přes webový prohlížeč z kteréhokoli místa na světě. Navíc se na desce nachází slot na micro-SD kartu, což lze použít například k ukládání naměřených dat.

Arduino TFT LCD Screen

Tento modul Arduino TFT LCD Screen se opět připojuje k hlavní desce Arduina přes sběrnici SPI a také disponuje micro-SD slotem pro paměťovou kartu. Základem je barevný TFT LCD displej o velikosti 1,77″ a roszlišení 160 x 128 pixelů. Displej je vhodný kromě výpisu textu a obrázků i pro zobrazení grafů naměřených veličin. Pro práci s displejem se používá knihovna TFT library, která je napojena i na SPI library, takže musí být také přítomna.

LCD modul

Nejjednodužší a nejlevnější variantou jak zobrazovat naměřená data je přes LCD displej, který je k sehnání ve 2 řádkové nebo 4 řádkové verzi. Tento displej se vyplatí doplnit o modul I2C, který nám smrskne počet vodičů připojených k Arduino na 4. Displej má standardně 16 nebo 20 znaků na řádek a disponuje různě barevným podsvícením. Pro ovládání displeje existuje již hotová hnihovna LCD I2C knihovna.

 

Postavené Arduino

Koupil jsem již hotový hlavní modul Arduino Uno a k němu Arduino Ethernet Shield, což by mi mělo dát dostatečný prostor pro vývoj a hraní si. :) Celé zařízení ovládám přes webový prohlížeč, kde i vyčítám naměřená data. Proto jsem nekupoval žádný displej, i když toho ted tak trochu lituji, jelikož se i s displejem dá pěkně vyhrát. Dále jsem k Arduinu dobastlil různé tlačítka, LED diody, senzory teploty, vlhkosti a intenzity osvětlení, mikrofon, koncové výstupy pro PWM, repráček, dvouřádkový LCD displej, bezdrátovou komunikaci a modul pro micro-SD kartu. Také jsem si k zařízení spájel RGB LED kostku: RGB LED cube. Celé zařízení nazývám vývojový kit.

Pro samotnou implementaci potom stačí mít jen naprogramovaný mikrokontrolér + případný rozšiřující modul. Tady se skrývá jedna záludnost, mikrokontrolér musí mít v sobě také nahraný bootloader, jinak ho nelze v Arduinu naprogramovat a je nutné vlastnit programátor AVR-ISP. Bootloader je krátký program (asi 0,5 kB), který nám právě umožní používat nový mikrokontrolér v naší Arduino hlavní desce. Jestliže si zakoupíme hotové Arduino, tak mikroprocesor uvnitř již bude obsahovat bootloader, ale pokud budeme kupovat nový mikrokontrolér samostatně, je potřeba bootloader nahrát.

Schéma a fotka mého “Arduino vývojového kitu”

 

Arduino jako programátor ISP

Jelikož využívám Arduino v mnoha různých projektech, je pro mě mnohem výhodnější použít v daném projektu pouze naprogramovaný mikrokontrolér než celou hlavní desku Arduina. Je to i z ekonomických důvodů mnohem praktičtější. Jak ale naprogramovat nově zakoupený mikrokontrolér? Nejprve je nutné připojit k našemu Arduinu nově zakoupený mikrokontrolér ATmega328P-PU například dle návodu zde Arduino ISP. Zapněme vývojové prostředí Aruino IDE v našem počítači. Ujistěte se, že máte vše správně nastavené (sériový port a typ hlavní desky). Nahrajte do vašeho Arduina program, který najdeme v File/Examples/ArduinoISP. Dále v menu v Tools/Programmer a zaškrtněte: Arduino as ISP. Nyní bude Arduino pracovat jako programátor ISP. Ted přišla řada na vypálení bootloaeru na náš nově zakoupený mikrokontrolér, v menu pod Tools klikněte na Burn Bootloader. Vypalování trvá několik minut a je potvrzeno zprávou Done burning bootloader. Nyní můžeme na náš čip nahrát program tak, že při odesílání programu v prostředí Arduino IDE je potřeba na klávesnici podržet tlačítko Shift. To aby naše Arduino skutečně pracovalo jako programátor nově zakoupeného čipu a nepřepsal se nám program přímo v našem Arduinu. Ve zprávě se musí při najetí myší na šipku doprava (vykoná nahrání programu do Arduina) a podržení tlačítka Shift zobrazit Upload using programmer. Více zde: Arduino jako ISP programátor.

Tímto způsobem popsaným výše lze programovat i jiné AVR mikrokontroléry například ATtiny85/45. Tento mikrokontrolér je menší a levnější a pro jednoduché aplikace nám poslouží stejně dobře jako ATmega328P-PU. Pro tyto případy je dobré nahrát do našeho Arduino IDE aplikace knihovnu Arduino tiny library, která obsahuje specifikaci ATtiny mikrokontrolérů Arduino ATtiny knihovna. Jediné co je třeba udělat navíc je připojit k Arduinu elektrolytický kondenzátor zhruba 0,1 uF mezi reset a zem, více zde: Programování mikrokontroléru ATtiny pomocí Arduina.

 

Další informace o Arduino

Arduino oficiální stránky
Nahrání Bootloaderu
Datalogger
Měření teploty
Zalévač květin v1
Zalévač květin v2