Arduino Duemilanove

Arduino je open-source elektronická platforma určena všem kutilům, kteří své výtvory chtějí podstatně vylepšit a "vdechnout jim život". Může být mozkem robota, který manipuluje s předměty, nebo přehrávat na LED displeji vzkazy. Základem je možnost naprogramovat, jak vaše vlastní zařízení bude reagovat na podněty ze svého okolí. Arduino vyhodnotí data, která na jeho vstupy předají senzory, a podle instrukcí například zapne motor, rozsvítí LED diodu a podobně. To vše zvládnete, aniž byste byli nuceni proniknout hluboko do tajů mikrokontrolérů (jednočipů). Nyní se tedy blíže podíváme na poslední verzi – Arduino Duemilanove. Zakoupit si ho můžete na internetovém obchodě www.czechduino.cz.

29.10.2010 - Aktuálně už je Arduino Duemilanove nahrazeno novější verzí Arduino UNO. Rozdíly mezi nimi jsou ovšem pro uživatele spíše kosmetické.

Hardware

Tvoří ho deska modré barvy o rozměrech přibližně 68 x 53 mm (USB konektor ovšem přesahuje asi o 6 mm). Srdcem je mikrokontrolér ATmega168 nebo ATmega328 taktovaný krystalem na frekvenci 16 MHz. K dispozici máte 14 digitálních vstupně/výstupních pinů (označovaných anglicky jako I/O), 6 z nich zvládne také PWM (Pulse width modulation – česky pulzně šířková modulace). Jsou schopné dodávat proud 40 mA, což stačí na několik LED diod, ale k připojení motoru nebo relé je nutné použít tranzistor. Piny označené čisly 0 a 1 jsou určeny k sériové komunikaci. Dále můžete využít 6 analogových vstupů, které jsou vybaveny 10-bitovými A/D převodníky. To znamená, že naměřené napětí od 0 do 5V je převedeno na číslo od 0 do 1023, se kterým pak dále můžete pracovat. Abych byl úplně přesný, tyto piny jdou použít i jako výstupní, nicméně díky převodníkům poslouží hlavně jako vstupy.

Největší konektor na desce je USB, které slouží k připojení k PC. Arduino pochopitelně potřebuje napájení, to zajistí buď samotné USB nebo ho přivedeme pomocí 2,1 mm jacku, mělo by se pohybovat mezi 7 a 12V. Vestavěný stabilizátor se každopádně pak postará o jeho snížení na pracovních 5V. Nejspíše pro vás bude záhadný konektor s označením ICSP (In Circuit Serial Programming), který umožňuje pokročilejší programování mikrokontroléru, ale pravděpodobně jej ani nevyužijete. Zpočátku tedy určitě ne. Na desce se nachází pouze jeden ovládací prvek a tím je resetovací tlačítko, jehož funkci snad není nutné vysvětlovat.

K signalizaci slouží celkem čtyři LED diody. Po připojení napájení se rozsvítí zelená s označením PWR, další dvě blikají při komunikaci s PC (označené TX – odesílání dat a RX – příjem dat). Poslední je připojena k pinu 13, lze ji tedy ovládat programem. Arduino také můžeme rozšířit pomocí takzvaných shields – štítů, které se na něj zhora nasadí a díky stejnému umístění konektorů i zapojí. Takový štít například umožní připojení Arduina k internetu nebo použití Bluetooth.

Připojení k PC

Jak jsem již uvedl výše, k připojení slouží USB. Z oficiálních stránek www.arduino.cc si stáhnete ovladač, po jehož instalaci vám ve správci zařízení přibude USB serial port. Ten nadále slouží ke komunikaci mezi PC a Arduinem. Všechno by vám mělo fungovat během chvilky. Dostupné jsou verze pro operační systémy Windows, Linux a Mac OS X. Pro úplnost doplním, že aby Arduino mohlo takto komunikovat bez použití dalšího hardwaru, je v něm již nahrán speciální program – bootloader.

IDE

Vývojové prostředí (IDE - Integrated Development Enviroment) si stáhnete rovněž zdarma z internetu. Pomocí něj můžete vytvářet programy, ukládat si je a nahrávat do Arduina. Spuštěné okno se skládá z několika částí, začněme tedy nahoře: nabídky, panel s tlačítky, textový editor pro psaní programu a úplně dole je umístěn pruh pro zprávy. Ten slouží například pro oznámení syntaktických chyb a podobně.

Prostředí zároveň obsahuje i Serial Monitor, což je velmi užitečná pomůcka, která slouží k oboustranné sériové komunikaci mezi Arduinem a PC. Pomocí něj lze odesílat a přijímat číselné hodnoty nebo znaky. Vše je pochopitelně v angličtině.

Programování

Pokud už jste někdy programovali v C/C++, budete mít velkou výhodu - jazyk Wiring pro Arduino z něj totiž vychází. Jste-li ale úplnými začátečníky, tak by vám jeho zvládnutí nemělo činit velký problém. Výrazně vám pomůže spousta dostupných vzorových programů a hlavně kompletní vysvětlení jazyka v sekci Learning na www.arduino.cc. Podle mého názoru je vše natolik propracované, že zprovoznění je opravdu hračkou a naučit se programovat už bude pouze na vaši píli a trpělivosti. Každopádně by jste se neměli setkat se žádnými záludnostmi.

Abyste si udělali konkrétní představu, jak takový program pro Arduino nebo-li skeč vypadá, uvedeme si jeden příklad. Tento kód pouze bliká LED diodou připojenou k pinu 13. Skládá se ze tří částí, v první deklarujeme proměnnou ledPin, která slouží k uložení čísla pinu s připojenou LED. Druhou částí je funkce setup(), ta proběhne jen jednou při zapnutí Arduina a nastaví, že pin bude použit jako výstup. Třetí částí je funkce loop() – anglicky smyčka, která pořád dokola zapíná a vypíná LED s pauzou půl sekundy. Text tištěný šedou barvou jsou pouze komentáře, které vysvětlují části kódu, ale nemají na něj vliv. Jednotlivé příkazy ukončujeme středníkem ; a bloky příkazů, které náleží například funkci loop(), uzavíráme do složených závorek {}.

/*
Náš první program pro Arduino Duemilanove!
Blikající LED dioda
 */

/* deklaruje proměnnou ledPin a uloží 
do ní číslo pinu s LED */
int ledPin =  13;    

// Procedura setup() proběhne při zapnutí Arduina

void setup()   
{ 
   // inicializuje digitální pin jako výstup  
  pinMode(ledPin, OUTPUT);    
}

/* tato procedura probíhá stále dokola, 
dokud má Arduino připojeno napájení */

void loop()                     
{
  // Přiřadí výstupu s LED hodnotu HIGH (5V)
  digitalWrite(ledPin, HIGH);   
  // Počká půl sekundy
  delay(500);                   
  // Přiřadí výstupu s LED hodnotu LOW (0V)
  digitalWrite(ledPin, LOW);   
  // Počká půl sekundy
  delay(500);                  
}

K vyzkoušení programu nepotřebujete žádné součástky, protože jak jsem již uvedl, k pinu 13 je připojena malá LED dioda. Nicméně určitě bude zajímavější použít vlastní LED diodu s vyšší svítivostí a připojit ji přes ochranný odpor mezi pin 13 a pin s označením GND – zem.

Toto bylo tedy jen malé seznámení s programováním Arduina, kompletní a podrobné vysvětlení by samozřejmě vyžadovalo daleko více prostoru. Během tvorby vlastních programů vám usnadní práci knihovny, které pomocí jednoduchých příkazů umožňují například ovládat modelářská serva, LCD displeje nebo naopak přijímat data z počítačové myši či klávesnice. Na stránkách www.arduino.cc najdete mnoho tipů a podrobných návodů, které jsou dobře srozumitelné a pomohou i začátečníkovi (anglicky samozřejmě). Rozhodně se nemusíte bát, že si Arduino koupíte a nebudete vědět, co s ním, i když jste nikdy neprogramovali a nemáte žádné znalosti o mikrokontrolérech. Podle mého názoru se jedná o velmi zdařilý výrobek.

Technická data:

  •  Mikrokontrolér: ATmega168 / ATmega328
  •  Takt procesoru: 16 MHz
  •  Pracovní napětí: 5V
  •  Vstupní napětí (doporučené): 7 až 12V
  •  Vstupní napětí (limity): 6 až 20V
  •  Digitální I/O piny: 14 (6 s podporou PWM)
  •  Analogové vstupní piny: 6
  •  Proudové zatížení I/O pinu: 40mA
  •  Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader
  •  SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)
  •  EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)

Mým první pokusem bylo použití LED displeje, následovalo zapojení posuvného registru. Nasbírané zkušenosti jsem využil při konstrukci LED kostky.

- Stránka vytvořena 28. března 2010 -