Arduino

Arduino  je open-source platforma, založená pôvodne na mikrokontroléri ATMega od firmy Atmel a grafickom vývojovom prostredí, ktoré vychádza z prostredia Wiring (podobný projekt ako Arduino, teda doska s mikrokontrolérom a IDE) a Processing (prostredie pre výuku programovania). Arduino môže byť použité k vytváraniu samostatných interaktívnych zapojení alebo môže byť pripojené k softvéri na počítači (napr. Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). Momentálne možno kúpiť verzie, ktoré sú už skompletované; schéma a návrh plošného spoja je dostupná pre tých, ktorí si chcú postaviť Arduino sami.

Projekt Arduino získal ocenenie v kategórii digitálnych komunít na Prix Ars Electronica 2006.

Prehľad základných hardvérových modulov 

* Niektoré z týchto  14 pinov sú rezervované.

** V roku 2015 došlo k rozkolu medzi autormi Arduina. Následne vznikli dve spoločnosti. Obe vyrábajú tento model, sú však navzájom nekompatibilné vďaka prehodeniu digitálnych pinov 2 a 4. Nekompatibilné verzie majú názvy Arduino M0 a Arduino M0 Pro.

Software 

Vývojové prostredie Arduina (IDE) je viacplatformová aplikácia, naprogramovaná v Jave. Je navrhnuté tak, aby umožnilo programovať aj ľuďom, ktorí nemajú veľké skúsenosti s programovaním. Obsahuje editor kódu s bežnými vlastnosťami ako farebné označovanie syntaxe, automatické zarovnávanie a párovanie zátvoriek. Je schopné program skompilovať a nahrať do Arduina jedným kliknutím tlačidla. Program pre Arduino sa pomenúva anglickým slovom sketch.

Programy pre Arduino sa píšu v programovacom jazyku C a C++(Niekedy je nesprávne označovaný ako Wiring). IDE obsahuje knižnicu funkcií, ktoré uľahčujú písanie najzákladnejších operácii s hardvérom. Užívateľ musí definovať iba dve funkcie, aby sa získal spustiteľný program:

 setup(): funkcia, ktorá sa spúšťa iba raz na začiatku programu a používa sa na nastavenie parametrov
 loop(): funkcia, ktorá je periodicky spúšťana, pokiaľ je mikrokontrolér pripojený ku zdroju elektrickej energie

Typický prvý program pre Arduino je program na blikanie LED diódou. Program môže vyzerať takto. Program využíva tri interné funkcie pinMode(), digitalWrite() a delay(). Tento program je obvykle nahraný na doske od samotného výrobcu.
#define LED_PIN 13

void setup() {
  pinMode(LED_PIN, OUTPUT); // Povoliť pin 13 ako digitálny výstup
}

void loop() {
  digitalWrite(LED_PIN, HIGH); // Zapnúť LED
  delay(1000); // Čakať jednu sekundu (1000 milisekúnd)
  digitalWrite(LED_PIN, LOW); // Vypnúť LED
  delay(1000); // Čakať jednu sekundu
}

Užitočnou konštrukciou typickej dosky pre Arduino je prítomnosť LED diódy a predradného rezistora medzi pinom 13 a zemou, preto je možné tento príklad vyskúšať priamo na doske.

IDE 
Na vývoj je možné použiť niekoľko verzií IDE. Je vhodné používať najaktuálnejšiu verziu, pretože v starších IDE nie sú vykonávané žiadne úpravy.
 Arduino IDE 2.0 RC - Táto vývojová verzia je v beta verzii. Je postavená nad modernejšími technológiami. Využíva Electron a vzhľadom sa podobá na Visual Studio Code alebo PlatformIO. Na rozdiel od predchádzajúcich verzií ponúka napríklad debugger pre dosky s čipmi SAMD.
 1.9.X - Táto vývojová vetva je v beta verzii. Mala by priniesť oddelenie AVR jadra od vývojového prostredia. Po úprave bude IDE dodávané bez neho a jadro sa bude inštalovať len pomocou Manažéra dosiek. Táto verzia bude pravdepodobne preskočená a nahradí ju IDE 2.0.
 1.8.X - Táto vývojová vetva vznikla po ukončení sporov medzi firmami Arduino LLC a Arduino SRL. Obsahuje podporu pre všetky dosky oboch výrobcov.
 1.7.X - Táto vývojová vetva bola vytvorená firmou Arduino SRL počas sporu o vlastníctvo obchodnej značky Arduino. Vyššia verzia mala naznačovať, že sa jedná o modernizovanú verziu. Nepodarilo sa jej ale na svoju stranu získať podporu vývojárov a v podstate sa sústredila iba na programovanie podpory pre dosky tejto firmy. Samotné IDE ostávalo nezmenené.
 1.6.X - Umožňuje programovať aj novšie moduly, ktoré sú založené na mikrokontroléroch AT91SAM3X8E alebo ATSAMD, aj všetky predchádzajúce. Napríklad Arduino Due alebo Zero. Pri niektorých knižniciach (vydávaných mimo oficiálnej distribúcie) nie je zaručené, že ich autori prispôsobili, vtedy je nutné použiť nižšiu verziu IDE.
 1.0.X - Umožňuje programovať iba moduly, ktoré sú založené na mikrokontroléri ATmega. Najbežnejšie je Arduino Uno.

IDE umožňuje programovať aj ďalšie mikrokontroléry. Napríklad mikrokontroléry ESP8266 so zabudovanou podporou Wi-Fi. Je to vďaka otvorenej architektúre, umožňujúcej pridávať ľubovoľné balíky programov (nazývané toolchain), ktoré vedia skompilovať program pre konkrétny cieľový mikrokontrolér.

Knižnice 
Programovanie Arduina uľahčuje existencia obrovského množstva knižníc. Knižnice je ucelený zdrojový kód, ktorý je obvykle umiestnený na serveri GitHub. Okrem zdrojového kódu v C++ je doplnená metaznačkami, ktoré umožňujú IDE indexovať tieto zdrojové kódy a poskytovať ich na pohodlnú inštaláciu prostredníctvom Manažéra knižníc. Knižnica obvykle poskytuje ucelenú sadu funkcií alebo tried, určených na ovládanie konkrétneho hardvéru.

Online nástroje 
Arduino je možné programovať v cloude pomocou editora Arduino Web Editor na stránke Arduino Create. Obsahuje editor zdrojového kódu, úložisko pre vlastné programy, ktoré možno zdieľať s ostatnými užívateľmi a nainštalované knižnice. Programovanie v editore funguje tak, že v prehliadači sa upravuje zdrojový kód, ktorý sa odošle na preklad na virtuálny server. Z virtuálneho servera sa vráti preložený program v binárnom tvare, ktorý sa následne nahrá do Arduina pomocou programu, ktorý musí byť nainštalovaný v počítači a ktorý slúži ako prenosový mostík medzi cloudom a fyzickým hardvérom, pripojeným k počítaču.

Referencie

Iné projekty

Externé odkazy 
 arduino.cc – domovská stránka projektu
 arduinoposlovensky.sk – webové stránky o programovaní Arduina
 blog.sitepoint.sk – blog o programovaní Arduina a ATtiny85
 arduinoslovakia.eu – blog o programovaní Arduina
 deadawp – blog o praktickej realizácii Arduino projektov

Zdroj 
 

Slobodný softvér
Slobodný hardvér
Mikrokontroléry
Automatizácia
Robotika