Arduino
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.
Charakteristika
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
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
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
Hardware
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
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
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
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
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
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
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
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
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
Vývojové prostředí Arduina ukazující jednoduchý program na blikání LED. | |
Vývojář | Arduino Software |
---|---|
První vydání | 2003 |
Aktuální verze | 1.8.10 (13. září 2019) |
Operační systém | Multiplatformní (Java) |
Platforma | AVR |
Vyvíjeno v | Wiring |
Typ softwaru | Vývojové prostředí |
Licence | LGPL nebo GPL |
Web | www.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
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
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ářů
Jádro vývojářského týmu Arduina tvoří Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis a Nicholas Zambetti.
Galerie
- Arduino Diecimila – spodní strana
- Deska FreeDuina v1.16
- Deska Arduela
Odkazy
Reference
- ↑ Hernando Barragán. About Wiring [online]. [cit. 2011-07-05]. Dostupné online. (anglicky)
- ↑ [Shiffman]. Interview with Casey Reas and Ben Fry [online]. [cit. 2011-07-05]. Dostupné online. (anglicky)
- ↑ CUARTIELLES, David. Öppnade hårdvaran och skapade Arduino. [s.l.]: [s.n.], 2010-02-17. Dostupné online. S. 10.
- ↑ LAHART, Justin. Taking an Open-Source Approach to Hardware. [s.l.]: [s.n.], 2009-12-27. Dostupné online.
- ↑ Prix Ars Electronica 2006. www.aec.at [online]. [cit. 19-01-2008]. Dostupné v archivu pořízeném dne 06-12-2006.
- ↑ ARS Electronica. Prix Ars Electronica 2006 [online]. [cit. 2011-07-05]. Dostupné v archivu pořízeném dne 2009-05-28. (německy)
- ↑ Arduino UNO Pinout (Diagram)and board components. www.sabelectronic.com [online]. [cit. 2021-07-12]. Dostupné online.
- ↑ Arduino.cc. Breakfast at Arduino [online]. [cit. 2011-09-17]. Dostupné online. (anglicky)
- ↑ Richard Chirgwin. Arduino to add ARM board this year [online]. 2011-09-20 [cit. 2011-10-31]. Dostupné online. (anglicky)
- ↑ a b Vlastimil Slinták. Novinky v Arduino světě [online]. 2011-09-26 [cit. 2011-10-31]. Dostupné online.
- ↑ Arduino návody [online]. 31. 1. 2017. Dostupné online.
- ↑ VODA, ZBYŠEK. ARDUINO A WIFI SHIELD [online]. 22.8.2015. Dostupné online.
- ↑ Motor shield [online]. 27. 9. 2016. Dostupné online.
- ↑ Arduino GPS shield [online]. Dostupné online.
- ↑ Arduino GPS shield [online]. Dostupné v archivu pořízeném dne 2017-03-01.
- ↑ Arduino - Software. www.arduino.cc [online]. [cit. 2020-02-01]. Dostupné online.
- ↑ arduino/arduino-pro-ide. GitHub [online]. [cit. 2020-02-01]. Dostupné online. (anglicky)
- ↑ Arduino Pro. www.arduino.cc [online]. [cit. 2020-02-01]. Dostupné v archivu pořízeném z originálu dne 2020-02-01.
- ↑ 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)
- ↑ Releases · arduino/arduino-pro-ide. GitHub [online]. [cit. 2022-02-13]. Dostupné online. (anglicky)
Související články
- Programování Arduino Uno
- Raspberry Pi
- Intel Galileo
Externí odkazy
- Obrázky, zvuky či videa k tématu Arduino na Wikimedia Commons
Česky
- Dvoudílné články „Jednočipy pod Linuxem“ a „Sériová komunikace pod Linuxem“ na AbcLinuxu.cz
- Články o Arduinu na Arduino.cz
- Články o Arduino na Root.cz
- Články o Arduino na uArt.cz
- Arduino Diecimila: Začněte s mikroprocesory Archivováno 9. 2. 2008 na Wayback Machine. – seznámení s Arduinem
- Arduino Diecimila: Seznámení se software a ovladači Archivováno 9. 2. 2008 na Wayback Machine.
Slovensky
- www.arduinoposlovensky.sk – webové stránky venované programovaniu Arduina
- diskusia, rady a nápady na tému Arduino Archivováno 3. 12. 2018 na Wayback Machine.
- www.arduinoslovakia.eu
- www.elektrolab.eu - výber článkov
Anglicky
- Oficiální stránka Arduina: http://www.arduino.cc/
- Oficiální Arduino Wiki Playground
- Článek magazínu Make o Arduinu
- Projekt „Wiring“: http://wiring.org.co/
- Fotky Arduina na Flickru: http://www.flickr.com/photos/tags/arduino/
- Znalostní báze: http://arquivo.pt/wayback/20160523223701/http://www.freeduino.org/
- Projekt Freeduino: Alternativní Arduino-kompatibilní projekt
- První krůčky s Arduinem – Víkendový Podcast
Média použitá na této stránce
Autor:
- Arduino-uno-perspective.jpg: Creative Tools
- derivative work: JotaCartas (talk)
A Arduino Uno board.
Autor: Bubuss, Licence: CC BY 3.0
Arduelo Libero - volně dostupný český klon projektu Arduino Diecimila
Autor: 1wPhipps, Licence: CC BY-SA 3.0
this is the arduino set up with the motor shield
Arduino Diecimila board - back view
Autor: https://www.sparkfun.com/products/13750, Licence: CC BY 2.0
Arduino GPS shield
Autor: Osamu Iwasaki, Licence: CC BY-SA 2.0
A flexible Lilypad Arduino sewn in textiles with 20 LEDs which fade in and out at random.
Autor: Harvie, Licence: GPL
Screenshot of Arduino integrated development environment v0011 (Alpha).
Arduino IDE showing simple program to blink LED ready to upload to the Arduino board.
Arduino Diecimila Board - front view