Czech English

0. Co je Arduino?

vývojová platforma pro mikrokontrolery

Arduino je open-source platforma založená na mikrokontroleru ATMega od firmy Atmel a grafickém vývojovém prostředí, které vychází z prostředí Wiring (prostředí pro výuku programování). Arduino může být použito k vytváření samostatných interaktivních zapojení nebo může být použito jako rozšíření osobního počítače.


Motivace

O Arduinu je toho na internetu napsáno nepřeberné množství. Informace se dají tedy najít, ale někdy je to dost práce.
Na naší škole vedu již 9 rokem kroužek robotiky. Začínáme se stavebnicí FischerTechnik, potom staví kluci roboty většinou s využitím Merkuru nebo si sami vyrábí kompletně mechanickou část (jsme strojaři). Jako elektroniku nadále používají řídicí jednotku z FischerTechniku.
Ale letos se sami začali pídit po tom, jak to funguje a tak jsem se rozhodl zkusit Arduino. Kluky to docela chytlo, a proto začínám psát seriál "Jak s Arduinem začít".
Obsahem bude nejen vlastní programování, ale i trocha elektroniky (ta strojařům chybí) a hlavně kompletní návody, jak danou úlohu sestavit, naprogramovat a další náměty na úpravy. Každý týden by tedy měla být nová lekce pro kroužek. Pokud někomu tento seriál pomůže, tak budu rád a hlavně budu vděčný za přimomínky a nápady.
Jen poznámka na úvod: za léta praxe v učitelském povolání jsem si ověřil, že je nutné informace pečlivě odměřovat a podávat je postupně. Proto na mnoha místech si dovolím značná zjednodušení (hlavně u elektroniky), takže odborníci to budou muset překousnout, ale pro ně tyto články stejně nejsou určeny.

Popis

Mozkem Arduina je něco, co se odborně nazývá jednočipový mikropočítač (mikrokontroler). Je to v podstatě kompletní počítač v jednom integrovaném obvodě. Obsahuje vše potřebné pro svoji funkci (aritmeticko-logickou jednotku, řadič, paměť a další součásti nazývané takovými to cizími slovy). Stačí tedy jen připojit napájení a už může fungovat, ale pozor, aby něco užitečného dělal, musí mít program. Ovšem není to počítač, který znáte (PC) - nemá ani klávesnici, myš, monitor, ale naopak dokáže věci, které PC neumí - např. řídit robota.
Kromě vlastního mikrokontroleru je na desce i obvod pro spojení s PC, které potřebujeme pro nahrání programu do Arduina. Dále zde najdeme stabilizátor napětí a konektory, přes které budeme připojovat různá zařízení.

Parametry

A teď trošku konkrétněji. Různých typů Arduina (a jeho klonů) existuje nepřeberné množství. My budeme používat jedno z nejobyčejnějších Arduino Diecimila, Duemilanove nebo novější Arduino Uno.
U nich je použit mikrokontroler ATMEL ATmega328 s hodinovou frekvencí 16 MHz (to oproti PC, které má dnes taktovací frekvenci cca 3 GHz vypadá dost uboze, ale zdání klame. Arduino dokáže generovat signály s přesností v řádu mikrosekud a o tom se může sebenadupanějšímu PC jen zdát).
Stejně tak i paměť je na dnešní poměry docela malá: programová paměť FLASH 32kB a paměť dat RAM 2 kB. Ovšem pokud s ní bude trošku hospodařit (a ne s ní plýtvat, jako programátoři PC), tak zjistíte, že se tam vejde opravdu hodně.
A teď to nejdůležitějsí, co lze k Arduinu připojit - jednoduše všechno. Ale teď vážně. Na připojovací konektory je vyvedeno celkem 20 pinů (nožiček) mikrokontroleru. Ty lze použít na vstup signálů do počítače nebo pro ovládání zařízení k němu připojených.
Zapojení konektorů
Zapojení konektorů
K dispozici máme 14 digitálních vstupů/výstupů, můžeme si tak zvolit, zda signál vstupuje do mikrokontroleru nebo naopak mikrokontroler signál posílá ven. Digitální (číslicové) znamená, že rozlišujeme pouze dvě hodnoty signálu. Obvykle je označujeme jako logickou 0 a 1. Logické nule odpovídá napětí 0V a logické jedničce 5V (ve skutečnosti je to trošku složitější, ale to zatím nepotřebujeme řešit).
Zbývajících 6 pinů jsou analogové vstupy. Ty umožňují "měřit" napětí na ně přivedené v rozsahu 0-5V (rozlišení je 10 bitů, tzn. rozeznávají 1024 různých hodnot, tedy měří napětí s rozlišením cca 4,88 mV). Pokus se nám digitálních vstupů/výstupů nedostává, lze i analogové vstupy použít jako digitální.
Mikrokontroler obsahuje i množství dalších vestavěných periferií (seriovou linku, sběrnici I2C, čítače, ...) jejichž vstupy a výstupy jsou společné s některými digitálními a analogovými piny. Proto, když budeme tyto periferii využívat, musí vzít v úvahu na kterých pinech jsou vyvedeny.

Programování

Pro programování se využívá vývojového prostředí Arduino založené na projektu Wiring. Vlastní programovací jazyk je jazyk C/C++ doplněný o množství knihoven, které zajišťují obsluhu vlastního hardwaru mikrokontroleru. Proto při programování nemusíme řešit jak to v mikrokontroleru funguje (řešit taková cizí slova jako registr, port, stack, ...), ale můžeme se plně věnovat vlastnímu algoritmu (tedy řešení úlohy). Toto je dle mého názoru to, co zajistilo obrovské rozšíření Arduina a umožnilo, tak proniknout "laikům" do světa mikrokontrolerů.

WWW stránky o Arduinu