Arduino

jednodeskový počítač, open-source a open-hardware

Arduino je značka malých jednodeskových počítačů založených na mikrokontrolerech ATmega od firmy Atmel. Svým návrhem se snaží podpořit výuku informatiky ve školách a seznámit studenty s tím, jak jsou pomocí počítačů řízena různá zařízení (např. mikrovlnná trouba, automatická pračka a jiné stroje). Nejedná se tedy o počítač ve smyslu stolního počítače nebo chytrého telefonu. Nelze proto k němu snadno přímo připojit monitor ani klávesnici či myš, ale je připraven na připojení LED diod, displeje z tekutých krystalů, servomotorů, senzorů, osvětlení atd.

Verze Arduino Diecimila je podobná předchozím modelům. Tuto desku později nahradila verze Duemilanove a na konci roku 2010 až dodnes pak Uno

Charakteristika

editovat

Arduino je otevřená platforma s grafickým vývojovým prostředím, které vychází z prostředí Wiring (podobný projekt jako Arduino, tedy deska s mikrokontrolerem a IDE)[1] a Processing (prostředí pro výuku programování).[2] Arduino bylo poprvé představeno v roce 2005. Může být použito k vytváření samostatných interaktivních zapojení nebo může být připojeno k software na počítači (např. Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider). Momentálně lze koupit verze, které jsou už zkompletované; schéma a návrh plošného spoje je dostupný pro ty, kteří si chtějí postavit Arduino sami.

Na rozdíl od Raspberry Pi není Arduino zamýšleno jako plnohodnotný stolní počítač. Řídící program je vyvíjen zvlášť (na stolním počítači) a do Arduina je posléze nahrán a spuštěn. Uvnitř Arduina je pak spuštěn jen tento program, který typicky obsahuje smyčku, která se neustále opakuje (Arduino neustále zjišťuje stav svého okolí a na změny reaguje). Díky tomu má nízkou spotřebu (je možné napájení malou baterií) a hodí se například pro řízení dronů, robotů a podobně.

Historie

editovat

Projekt vznikl v roce 2005 v Itálii ve městě Ivrea. Jeho cílem bylo vytvořit jednoduchou prototypovací platformu pro studenty, která umožní rychlý vývoj a jednoduché používání. Projekt zaznamenal velký úspěch a později začaly vznikat jeho další, novější verze. Do února 2010 se údajně prodalo více než 120 tisíc kusů.[3]

Zakladatelé Massimo Banzi a David Cuartielles pojmenovali projekt po Arduinovi Ivrejském, který byl významnou historickou postavou města[4] a po vymření otonské dynastie roku 1002 římský král, jediný nezávislý italský král v době trvání svaté říše římské.

Projekt Arduino získal ocenění v kategorii digitálních komunit na Prix Ars Electronica 2006.[5][6]

V roce 2010 vyšla, zatím poslední, verze Arduino desky s označením Uno[7], která nahradila svého předchůdce Duemilanove. Od roku 2012 jsou v prodeji desky Due (s procesorem ARM) a Leonardo a také nová revize Una R3.[8]

Filosofie

editovat

Projekt Arduino je již od svého počátku volně dostupný (open-source) všem uživatelům, kteří jej chtějí používat a/nebo vylepšovat. Dokumentace a referenční příručka jazyka a externích knihoven je pak většinou vydávána pod licencí Creative Commons. Díky tomu jsou k dispozici všechny zdrojové soubory a je dodržována určitá kompatibilita (ať už pomocí jazyka Java, ve kterém je napsáno vývojové prostředí (IDE) nebo díky použití USB-to-RS-232 převodníkového čipu, který zajišťuje virtuální sériovou linku a pro který jsou běžně dostupné ovladače na většinu platforem). Arduino se také snaží být dostupné i cenově, toho dosahuje použitím levné pracovní síly v Itálii. Pro své univerzální uplatnění je Arduino vyhledáváno především domácími kutily. Možnosti jeho využití jsou rozsáhlé. V České republice se začíná postupně rozšiřovat. Existuje několik elektronických obchodů, které dováží již hotovou desku, a vznikají i weby a články věnované právě Arduinu.

Platforma

editovat

Hardware

editovat
 
První verze desky Arduino Uno. Čip FTDI byl nahrazen ATMega8U2 (vlevo za USB konektorem). Oproti novější verzi rev2 chybí ICSP konektor pro ATMega8U2

Desky arduino obsahují 8bitové mikrokontrolery z rodiny AVR od firmy Atmel a množství dalších podpůrných obvodů. Oficiální vydání Arduina, které vyrábí a prodává Italská firma Smart Projects, používají čipy ATMega8, ATMega168, ATMega328, ATMega1280 a ATMega2560. Arduino Due obsahuje 32bitový ARM procesor Atmel SAM3X8E. Každá deska má většinu I/O pinů přístupných přes standardizované patice, do kterých se jednoduše připojují další obvody, kterým ve světě Arduina říká Shieldy. Na deskách bývá několik diod, resetovací tlačítko, konektory pro ICSP programování, napájecí konektor, oscilátor a obvod zprostředkovávající komunikaci po USB. Základní verze Arduina, Arduino Uno, poskytuje celkem 14 I/O digitálních pinů a 6 pinů analogových. Šest digitálních pinů je také možné použít na softwarově řízený PWM výstup.

Hlavní mikrokontroler, který je uživatelsky programovatelný, již má bootloader (kód, který se po spuštění postará o základní nastavení mikrokontroleru, jako jsou interní časovače, nastavení rozhraní USART a další) a nastavené potřebné fuses bajty (těmi se nízkoúrovňově nastavují některé vlastnosti čipu). Díky tomu se uživatel nemusí starat o detaily a své programy píše v jazyce podobném C/C++.

Ačkoliv je Arduino připojeno k počítači pomocí rozhraní USB, je softwarově simulována sériová komunikace přes linku RS-232. Ve starších deskách, jako je například Duemilanove nebo Diecimila, se pro tyto účely používaly FTDI čipy, v desce Uno toto obstarává ATMega8U2 s předprogramovaným firmware (ten je, jako vše ostatní, volně dostupný v podobě zdrojových kódů).

Díky otevřenosti celého projektu vzniká množství klonů od dalších firem i jednotlivců. Samotné Arduino lze jednoduše poskládat i z jednotlivých součástek na nepájivém kontaktním poli. Z klonů, které jsou s původním Arduino kompatibilní, jsou například:

  • „FreeDuino“ Free klon Arduina — v současnosti v1.16, klon Diecimila
  • „LABduino“ Český klon Arduina vytvořený z otevřené elektronické stavebnice MLAB
  • „Bare Bones Board“ Arduino — kompatibilní, vyráběné a prodávané jako kit firmou Modern Device Company.
  • „Runtime“ Arduino-kompatibilní deska, vyráběná a prodávaná jako kit firmou NKC Electronics.
  • „Boarduino“ levnější klon Arduina Diecimila s piny pro zapojení rovnou do nepájivého pole.
  • „Arduelo Libero“ mírně vylepšený český Free klon Arduino Diecimila.
  • „Seeeduino“ SMD verze 1.0b kompatibilní s Arduino Diecimila.

Typy Arduino desek

editovat
Označení modulu Mikrokontrolér Flash
KiB
EEPROM
KiB
SRAM
KiB
Digitální I/O
piny
PWM

kanály

Analogové

vstupy

Typ USB rozhraní Rozměry
[mm]
Diecimila ATmega168 16 0,5 1 14 6 6 FTDI 68,6 × 53,3
Duemilanove ATmega168/328P 16/32 0,5/1 1/2 14 6 6 FTDI 68,6 × 53,3
Uno ATmega328P 32 1 2 14 6 6 ATmega8U2 68,6 × 53,3
Due[9][10] ATMEL SAM3U 256 50 16 101,52 × 53,3
Mega ATmega1280 128 4 8 54 14 16 FTDI 101,6 × 53,3
Mega2560 ATmega2560 256 4 8 54 14 16 ATmega8U2 101,6 × 53,3
Leonardo[10] ATmega32u4 32 1 2 14 6 12 Atmega32u4 68,6 × 53,3
Fio Archivováno 26. 5. 2011 na Wayback Machine. ATmega328P 32 1 2 14 6 8 Žádné 40,6 × 27,9
Micro ATmega32U4 32 1 2,5 20 7 12 ATmega32U4 48 × 18
Nano ATmega168 or ATmega328 16/32 0,5/1 1/2 14 6 8 FTDI 43 × 18
LilyPad ATmega168V or ATmega328V 16 0,5 1 14 6 6 Žádné ø 50
Yún Atheros AR9331 – 400 MHz

(ATmega32u4)

16 MiB

(32KiB)

1 64 MiB DDR2

(1KiB)

20

(ATmega32u4)

7 12 ATmega32u4 68,6 × 53,3

Některé Arduino klony

editovat
 
LilyPad s připojenými diodami

FreeDuino je jeden z alternativních projektů postavených na Arduinu. Od Arduina se liší především názvem, na který mají výrobci Arduina právo. Naproti tomu může kdokoli svůj projekt nazvat FreeDuino. Ačkoli se FreeDuino, které v otevřenosti zachází mnohem dál než Arduino, dá koupit, stále si ho může každý libovolně upravit (nebo od základů předělat), nazvat FreeDuinem a třeba i prezentovat nebo prodávat. Tudíž FreeDuino zbaví své fanoušky obchodní známky na název a nutnosti podřídit se centrální výrobě v případě, že chcete „originál“. K dostání jsou také kity obsahující potřebné součástky a podobně.

Arduelo Libero je český klon, který vychází z projektu Arduino Diecimila. Arduelo je klonem open source produktu Arduino Diecimila a je s ním obvodově kompatibilní. Od Arduina se liší především názvem a několika drobnými úpravami, které však nemají na funkčnost žádný vliv. Jde především o trochu jiné rozmístění součástek, při zachování původních rozměrů desky. Patice nejsou dělené a jsou umístěny symetricky v palcovém rastru. Je to jednodušší a usnadní to návrh přídavných modulů. Přibyly i dva nové piny, na které je vyveden vstup pro externí oscilátor. Další drobnou změnou je přesunutí všech LED diod a resetovacího tlačítka mimo prostor mezi konektory, aby byly viditelné a dostupné i při použití nasazeného modulu. Arduelo je volně k dispozici včetně výrobních podkladů.

Arduino shields

editovat

Arduino shield je v informatice rozšiřující modul pro jednodeskový počítač Arduino a od něho odvozené kompatibilní klony, který se zapojí na standardně dodávané piny Arduina. Pomocí shieldů tak lze získat různá rozšíření pro Arduino. Některé shieldy využívají každý pin Arduina, jiné využívají jen některé piny. Podle druhu shieldu pak probíhá komunikace s Arduinem buď přes SPI, I²C nebo po sériové lince.

Nejznámější Arduino shieldy

editovat

Ethernet Shield

editovat
 
Arduino Ethernet Shield

Tento shield umožňuje připojit Arduino k internetu. Samotný shield obsahuje integrovaný obvod W5100, konektor RJ-45 pro připojení síťového kabelu, slot pro paměťové karty typu microSD, resetovací tlačítko a indikační LED diody signalizující činnost LAN portu. Ethernet shield využívá pro komunikaci s Arduinem piny 4, 10, 11, 12 a 13, přičemž samotná komunikace probíhá pomocí komunikačního protokolu SPI.[11]

Wifi Shield

editovat
 
Arduino Wi-fi Shield

Tento shield umožňuje připojit Arduino k internetu pomocí bezdrátové sítě Wi-Fi se standardem 802.11b a 802.11g se zabezpečením WEP a WPA2. Samotný shield obsahuje slot pro microSD kartu, miniUSB port primárně určený pro aktualizaci firmwaru shieldu, několik signalizačních LED diod a resetovací tlačítko. Wi-fi shield využívá, stejně jako Ethernet shield, komunikační protokol SPI.[12]

Motor Shield

editovat
 
Arduino Motor Shield

Tento shield je určen pro pohodlné a bezpečné ovládání stejnosměrných motorů, krokových motorů a servomotorů. Pro připojení stejnosměrných a krokových motorů slouží konektory s označením M1 až M4. Pokud chceme připojit krokový motor, je nutné využít vždy dvojici konektorů vedle sebe, tedy M1 + M2 nebo M3 + M4. Vzhledem k proudové náročnosti, které je nutné pro řízení motorů, se na Motor shieldu nachází i konektor pro externí napájení. Velikost tohoto externího napájení souvisí s daným typem motoru, přičemž rozsah externího napájecího napětí je od 4,5V do 25V a maximální velikost výstupního proudu je 0,6A, špičkově až 1,2A.[13]

GPS Shield

editovat
 
Arduino GPS Shield

Umožňuje rozšířit Arduino o GPS modul, pomocí kterého můžeme zjistit aktuální polohu, nadmořskou výšku nebo rychlost pohybu.[14] Velmi snadno se používá, neboť aktuální GPS data stačí jen přečíst ze sériové linky. Dále tento shield obsahuje slot pro připojení microSD karty, na kterou si můžeme uložit například získaná GPS data. GPS shield podporuje obě úrovně napětí, tedy 3.3V i 5V.[15]

Online nástroje

editovat

Cloudové nástroje pro programování jsou dostupné na Arduino Create (webový editor, úložiště a další). Simulátor několika modelů Arduina je k dispozici v prototypovacím návrháři Circuits.io společnosti Autodesk.

Software pro Arduino

editovat
Arduino IDE
 
Vývojové prostředí Arduina ukazující jednoduchý program na blikání LED.
VývojářArduino Software
První vydání2003
Aktuální verze1.8.10 (13. září 2019)
Operační systémMultiplatformní (Java)
PlatformaAVR
Vyvíjeno vWiring
Typ softwaruVývojové prostředí
LicenceLGPL nebo GPL
Webwww.arduino.cc
Některá data mohou pocházet z datové položky.

Arduino společně se svými deskami a periferiemi vyvíjí i svoje vlastní vývojové prostředí pro jejich programování. Tento software kombinuje hned několik funkcí, kvůli kterým je ovládání Arduina tak jednoduché, mezi ně patří: emulace portu RS-232, správa knihoven a desek, vestavěný compiler a prostředí pro programování. Využívaným jazykem je zde Wiring, který je postaven okolo C a C++. Samotný software se tedy jmenuje Arduino IDE, které si už prošlo několika verzemi, na rozdíl od nového prostředí Arduino Pro IDE nacházející se stále ve verzi beta.[16]

Arduino IDE

editovat

Arduino IDE (integrated development environment – vývojové prostředí) je tedy program vytvořený přímo pro Arduino, který může být spuštěn jak ve Windows, tak v macOS a Linuxu. Tato vzájemná kompatibilita je způsobena právě kvůli samotné kódové struktuře IDE, je totiž napsaná v Javě. Mezi funkce integrovaného kódovacího editoru patří: kopírování a vkládání textu, vyhledávání a přepisování textu, automatické odsazení, doplňování závorek a zvýrazňování textu. Dále zde můžeme najít místo pro vypisování zpráv (chyby, stav nahrávání kódu…), konzoli, lištu pro práci s kódem a lištu pro nastavení IDE.

Arduino Pro IDE

editovat

Patnáctého října 2019[17] bylo poprvé zveřejněno Arduino Pro IDE ve verzi beta (též označovaná jako alpha preview). Mezi přidané funkce patří[18][19]:

  • Moderní a plně vybavené vývojové prostředí
  • Debugger
  • Duální mód – klasický a Pro
  • Vytvořen pro vývoj větších, několika souborových projektů
  • Možnost přidání neoficiálních pluginů a desek
  • Podpora Arduina, Pythonu a JavaScript
  • Nový manažér desek, knihoven a nový sériový monitor
  • Integrace Git
  • Automatické doplňování
  • Výběr ze tří možných barevných provedení IDE (Arduino Light, Light, Dark)

Momentálně je nejaktuálnější dostupná verze ke stažení v0.0.4-alpha.preview na stránce github.com[20], na kterou se jde dostat přes oficiální stránky Arduina Pro.

Tým vývojářů

editovat

Jádro vývojářského týmu Arduina tvoří Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis a Nicholas Zambetti.

Galerie

editovat

Reference

editovat
  1. Hernando Barragán. About Wiring [online]. [cit. 2011-07-05]. Dostupné online. (anglicky) 
  2. [Shiffman]. Interview with Casey Reas and Ben Fry [online]. [cit. 2011-07-05]. Dostupné online. (anglicky) 
  3. CUARTIELLES, David. Öppnade hårdvaran och skapade Arduino. [s.l.]: [s.n.], 2010-02-17. Dostupné online. S. 10. 
  4. LAHART, Justin. Taking an Open-Source Approach to Hardware. [s.l.]: [s.n.], 2009-12-27. Dostupné online. 
  5. Prix Ars Electronica 2006. www.aec.at [online]. [cit. 19-01-2008]. Dostupné v archivu pořízeném dne 06-12-2006. 
  6. ARS Electronica. Prix Ars Electronica 2006 [online]. [cit. 2011-07-05]. Dostupné v archivu pořízeném dne 2009-05-28. (německy) 
  7. Arduino UNO Pinout (Diagram)and board components. www.sabelectronic.com [online]. [cit. 2021-07-12]. Dostupné online. 
  8. Arduino.cc. Breakfast at Arduino [online]. [cit. 2011-09-17]. Dostupné online. (anglicky) 
  9. Richard Chirgwin. Arduino to add ARM board this year [online]. 2011-09-20 [cit. 2011-10-31]. Dostupné online. (anglicky) 
  10. a b Vlastimil Slinták. Novinky v Arduino světě [online]. 2011-09-26 [cit. 2011-10-31]. Dostupné online. 
  11. Arduino návody [online]. 31. 1. 2017. Dostupné online. 
  12. VODA, ZBYŠEK. ARDUINO A WIFI SHIELD [online]. 22.8.2015. Dostupné online. 
  13. Motor shield [online]. 27. 9. 2016. Dostupné online. 
  14. Arduino GPS shield [online]. Dostupné online. 
  15. Arduino GPS shield [online]. Dostupné v archivu pořízeném dne 2017-03-01. 
  16. Arduino - Software. www.arduino.cc [online]. [cit. 2020-02-01]. Dostupné online. 
  17. arduino/arduino-pro-ide. GitHub [online]. [cit. 2020-02-01]. Dostupné online. (anglicky) 
  18. Arduino Pro. www.arduino.cc [online]. [cit. 2020-02-01]. Dostupné v archivu pořízeném z originálu dne 2020-02-01. 
  19. RANGER, About the Author Salman Faris Seeed; MAKER, Passionate; ENTHUSIAST, Technology. Introducing new Arduino Pro IDE with advanced features [online]. [cit. 2020-02-01]. Dostupné online. (anglicky) 
  20. Releases · arduino/arduino-pro-ide. GitHub [online]. [cit. 2022-02-13]. Dostupné online. (anglicky) 

Související články

editovat

Externí odkazy

editovat

Česky

Slovensky

Anglicky