Arduino® » Praktický mikrokontrolér pro individuální spínací a řídicí úlohy
Aktualizováno: 29. 2. 2024 | Doba potřebná k přečtení: 12 minut
Od srpna 2021 je společnost Conrad Electronic oficiálním distribučním partnerem pro Arduino®. Díky tomu máme nyní ty nejlepší předpoklady pro optimální a nepřetržitou disponibilitu zboží:
To znamená, že odebíráme aktuální sortiment, nejnovější produkty, stejně jako zajímavé informace přímo z první ruky. Profitovat z toho mohou všichni, kteří Arduino již úspěšně používají, ale také ti, kdo chtějí Arduino používat v budoucnu.
Společnost Arduino byla původně založena jako snadno přístupná platforma pro začátečníky, nadšence pro elektroniku, umělce, designéry a další neodborníky. Díky rozhodnutí, že bude poskytovat hardware a software jako open source, se tyto produkty velmi rychle rozšířily a získaly si příznivce také mezi specialisty a experty.
Uživatelská přívětivost integrovaného vývojového prostředí (IDE) a možnost rychlého prototypování jsou obzvláště atraktivní pro odborníky z různých oborů, kteří musejí rychle vytvářet prototypy a testovat nápady. Kromě toho je platforma enormně flexibilní a rozšiřitelná díky velkému počtu dostupných senzorů a aktuátorů.
Název Arduino jste tedy pravděpodobně již slyšeli – ačkoli možná ne každý ví, co přesně se za ním skrývá. Pokud se k tomu přidají ještě pojmy jako mikrokontrolér, projekt, platforma, sketches, shields a senzory, mohou vzniknout další nejasnosti. Z tohoto důvodu chceme jednoduše a názorně vysvětlit, co je to mikrokontrolér Arduino, a ukázat, jaké rozmanité možnosti se při používání nabízejí. A to nejlepší na tom je, že je všechno mnohem méně složité, než by se na první pohled mohlo znát.
Zjednodušeně řečeno je Arduino systém, který dokáže vzájemně propojit a ovládat různé elektronické součástky jako senzory, aktuátory a moduly. Programování desky Arduino určuje, jak bude zařízení reagovat na určité vstupní signály (Inputs) a které akce (Outputs) bude provádět.
Takovým vstupním signálem může být například senzor, stlačení tlačítka nebo zpráva na síti Twitter – akcí by pak – podle naprogramování – mohla být například aktivace motoru, zapnutí LED nebo zveřejnění nějaké informace na internetu. Tento přístup umožňuje realizaci rozmanitých projektů a automatizaci – od jednoduchého spínání LED až po komplexní řízení strojů.
Příkladem takové funkce by mohl být automat na kávu, kde určité procesy probíhají v závislosti na hodnotách senzorů: Před zobrazením nabídky pro výběr musí čtečka karet nebo senzor v mincovníku udělit povolení. Požadovanou kávu s mlékem pak lze zvolit, jestliže senzor v zásobníku kávových zrn a senzor v nádrži na mléko potvrdí, že tyto zásobníky nejsou prázdné.
To, co v principu zní docela jednoduše, ve skutečnosti také jednoduché je. Pro realizaci je zapotřebí pouze mikrokontrolér Arduino a trocha technického know-how pro naprogramování požadovaných funkcí. Přitom je spektrum technických požadavků extrémně široké – počínaje uživatelsky přívětivou platformou pro začátečníky až po výkonnou sadu nástrojů pro zkušené kutily a inženýry, kteří chtějí realizovat komplexní projekty v oblasti elektroniky.
Zajímavost:
Název „Arduino“ pochází ze jména italského krále a pozdějšího národního hrdiny Amedea Avogadra. Po něm totiž byl pojmenován také jeden bar ve městě Ivrea na severu Itálie, v němž se zakladatelé projektu Arduino (Massimo Banzi a David Cuartielles) pravidelně setkávali: „Bar di Re Arduino“ (Bar krále Arduina). Traduje se, že název zvolili během jednoho setkání v tomto baru – i proto, že je snadno vyslovitelný a jedinečný.
Arduino se v zásadě skládá ze dvou komponentů: Z hardwaru a softwaru (Arduino-IDE), které jsou vyvíjeny jako systémy open source, takže si uživatelé mohou obojí individuálně přizpůsobit svým potřebám.
Hardware
Hardware se skládá z takzvaných Arduino boards, které obsahují mikrokontroléry. Mikrokontrolér je v podstatě malý počítač na jednom čipu, který se používá k řízení různých elektronických součástek. Nejznámější Arduino board je Arduino Uno, ale existuje celá řada jiných modelů s různými funkcemi.
Software
Softwarová stránka zahrnuje Arduino Integrated Development Environment (IDE), programovací prostředí, které uživatelům umožňuje psát kód pro jejich projekty – tedy individuální spínací nebo řídicí programy (sketches) – a nahrávat je na Arduino board. Programování se provádí ve zjednodušené verzi programovacího jazyka C++.
Nicméně neexistuje jen jedna určitá deska nebo jeden určitý kontrolér. Arduino mnohem více znamená kompletní rodinu produktů, resp. značku. Na příkladu Arduino Uno, asi nejznámější desce Arduino, vám zde trochu přiblížíme její konstrukci:
Nejdůležitější součásti Arduino boardu:
1. USB zásuvka
Do této zásuvky se zapojuje USB kabel, jímž se do Arduina přenášejí individuální řídicí programy.
2. Tlačítko RESET
Tímto tlačítkem lze Arduino ručně vyresetovat, pokud v důsledku poruchy nedokáže nadále samočinně fungovat.
3. Rozhraní ICSP (USB Interface)
Díky rozhraní ICSP (In Circuit Serial Programming) je možné programovat logický obvod přímo v používaném systému.
4. Sběrnice I²C
V případě sběrnice I²C jsou data přes kabely SCL (Serial Clock) a SDA (Serial Data) přenášet ze zařízení Master k připojenému zařízení Slave.
5. Integrované LED
LED „L“ je interně připojená k pinu 13 a slouží k účelům testování.
6. Digitální vstupy/výstupy
Tyto I/O piny mohou být nakonfigurovány jako digitální vstupy nebo výstupy. Šest z nich pracuje v případě potřeby jako výstupy PWM s modulací délky pulzu.
7. Indikace LED
LED „RX“ a „TX“ opticky indikují přenos dat z PC do Arduino UNO.
8. LED provozního napětí
LED „ON“ signalizuje napájení mikrokontrolérové desky. Svítí, pokud je deska připojená k napájení.
9. Krystalový oscilátor (kontrolér)
Krystal zajišťuje, aby byl oscilátor v kontroléru stabilní a aby osciloval s konstantní frekvencí.
10. Rozhraní ICSP (kontrolér)
Prostřednictvím tohoto rozhraní lze v případě potřeby naprogramovat kontrolér. Protože je ale už naprogramovaný z výroby, zpravidla to není zapotřebí.
11. Mikrokontrolér
Mikrokontrolér je polovodičový čip, který zahrnuje procesor, periferii a paměť. Někdy se označuje také jako SoC (System-on-a-Chip).
12. Analogové vstupy
Pokud jsou jako vstupní hodnoty k dispozici analogová napětí např. ze senzorů, musí se použít těchto šest vstupů.
13. Napájecí piny
K těmto pinům lze přivádět napětí desky mikrokontroléru nebo snímat napětí 3,3 V nebo 5 V.
14. Usměrňovací dioda
Aby mohlo být na zdířce napájecího zdroje jak stejnosměrné napětí, tak i střídavé napětí, je k dispozici usměrňovací dioda.
15. Nabíjecí kondenzátory
Nabíjecí kondenzátory vyrovnávají napájecí napětí. Jeden kondenzátor je zapojený před 5V stabilizátorem napětí a jeden za ním.
16. Přípojka napájecího zdroje
Aby byla deska mikrokontroléru po naprogramování provozuschopná i bez připojení přes USB, musí být schopná napájení přes externí síťový zdroj.
17. Stabilizátor napětí
Stabilizátor napětí vytváří z napětí napájecího zdroje, které by se mělo pohybovat mezi 7 a 12 V (AC nebo DC), stabilní napětí 5 V.
18. Krystalový oscilátor (USB kontrolér)
Krystal zajišťuje, aby byl oscilátor v USB kontroléru stabilní a aby osciloval s konstantní frekvencí.
19. USB rozhraní
USB rozhraní převádí signály, které přicházejí přes USB port, do formátu, který vyhovuje kontroléru.
Kontrolér s různými vstupy a výstupy je v zásadě k dispozici u každé desky Arduino. Podle toho, který kontrolér se používá, existuje větší nebo menší počet výstupů a vstupů, resp. možností připojení. Navíc jsou desky Arduino zkonstruované tak, aby mohly být přes zásuvky (Header) připojeny ještě doplňkové desky (shields). Tím vzniká stohovatelný systém, který lze sestavit bez velkých nákladů na kabeláž.
Informace: Vstupy a výstupy u desek Arduino
Senzory nebo jiné zdroje informací (vstupy) poskytují data desce Arduino a na jejich základě pak může deska ovládat aktuátory nebo jiné komponenty (výstupy), a provádět tak určité akce.
Přitom lze rozlišovat mezi digitálními a analogovými vstupy, přičemž hlavní rozdíl spočívá v druhu přenášených nebo zpracovávaných informací:
- Digitální vstupy a výstupy přijímají, resp. vytvářejí pouze dva stavy: HIGH (1) nebo LOW (0) – jednoduše řečeno, jsou buď zapnuté, nebo vypnuté. >> Digitálním vstupem je například infračervený senzor, který odešle digitální signály na desku Arduino, jakmile detekuje překážku. Odpovídajícím výstupem by mohla být LED, která se zapne nebo vypne, aby vizuálně indikovala, že infračervený senzor detekoval překážku. Alternativně by bylo možné použít bzučák, který spustí akustický alarm.
- Analogové vstupy a výstupy naproti tomu přijímají, resp. vytvářejí plynulý rozsah hodnot. >> Analogovým vstupem je například světelné čidlo, které odešle analogové hodnoty na desku Arduino v závislosti na jasu okolního prostředí. Odpovídajícím výstupem by mohla být LED, která svítí podle jasu v okolí jasněji nebo méně jasně.
Asi nejoblíbenější platformou Arduino jak u začátečníků, tak u zkušených uživatelů je deska Arduino Uno. Snadno se obsluhuje a díky přehlednému obsazení pinů a přístupné struktuře se ideálně hodí pro začátečníky. Díky dostatečnému počtu digitálních a analogových pinů má extrémně všestranné použití pro širokou paletu projektů – od jednoduchých LED obvodů až po komplexní projekty se senzory, motory a bezdrátovou komunikací.
Vedle Arduino Uno ale existují ještě mnohé další desky mikrokontroléru od firmy Arduino. Stejně rozmanitá jako různé scénáře použití je u desek mikrokontrolérů Arduino také rozmanitost produktů. Pro lepší představu jsme některé aktuální a oblíbené desky shrnuli do tabulky:
Přehledová tabulka nejoblíbenějších desek Arduino
Übersichtstabelle der beliebtesten Arduino-Boards
Mikrokontrolér | CPU | Analogové vstupy | Digitální vstupy/výstupy | Flash paměť | Provozní napětí | Rozměr(L x B) |
|
---|---|---|---|---|---|---|---|
Arduino Zero | ATSAMD21G18 | 32-bitové | 6 | 20 (z toho 10 PWM) | 256 kB | 3,3 V | 68,6 x 53,4 mm |
Arduino Uno R3 | ATmega328P | 8-bitové | 6 | 14 (z toho 6 PWM) | 32 kB | 5 V | 68,6 x 53,4 mm |
Arduino Due | ATmelSAM3X8E | 32-bitové | 12 | 54 (z toho 12 PWM) | 512 kB | 3,3 V | 101,5 x 53,3 mm |
Arduino Mega 2560 | ATmega2560 | 8-bitové | 16 | 54 (z toho 15 PWM) | 256 kB | 5 V | 101,5 x 53,3 mm |
Arduino Leonardo | ATmega32u4 | 8-bitové | 12 | 20 (z toho 7 PWM) | 32 kB | 5 V | 68,6 x 53,4 mm |
Arduino Micro | ATmega32u4 | 8-bitové | 12 | 20 (z toho 7 PWM) | 32 kB | 5 V | 48,3 x 17,8 mm |
Arduino Nano | ATmega328 | 8-bitové | 8 | 22 (z toho 6 PWM) | 32 kB | 5 V | 45 x 18 mm |
U jednotlivých typů existují navíc ještě různé verze, které se liší svou konstrukcí, resp. vybavením. Existuje tak například Arduino Uno v provedení SMD nebo s WiFi modulem. Ale také u verzí Micro a Nano existují různé exempláře s odlišnými technickými údaji.
Námi doporučované produkty
Arduino MKR
Společnost Arduino vyvinula na základě desky Arduino MKR vlastní řadu, speciálně určenou pro výrobce: má kompaktní konstrukci, je energeticky efektivní, disponuje specifickými funkcemi a je flexibilně a všestranně použitelná pro celou řadu aplikací.
Kromě všestranných spínacích a řídicích úloh spočívá těžiště Arduino MKR v komunikačních možnostech desek a doplňkových desek.
Ty sahají od SigFox pro aplikace IoT a WiFi pro bezdrátové připojení k síti až po využití sítě GSM.
Arduino PRO
Arduino Pro představuje výkonný systém, který je dimenzovaný pro komplexní průmyslové aplikace, robotiku a inteligentní řízení strojů.
Srdce této řady tvoří řada Portenta pro náročné projekty IoT, jako jsou algoritmy AI nebo Machine Learning. Podobně náročné a výkonné jsou také další desky, například univerzální model Portenta X8 (aplikace v reálném čase a současně vysoce výkonné procesy na jádrech Linux) nebo Portenta H7 s dvoujádrovým procesorem, který dokáže zpracovávat komplexní úlohy v reálném čase.
Ve spojení s cloudem Arduino IoT je bez problému možné centrální řízení.
Arduino Education
V podobě modelu Arduino® Education vyvinula společnost Arduino výukový koncept, který je přizpůsobený speciálně potřebám škol a vzdělávacích zařízení. Zahrnuje speciální hardwarové sady pro učitele a žáky, výukové materiály, projektové návody a učební plány, stejně jako certifikační programy a další vzdělávání učitelů.
Arduino Education má za úkol podpořit pedagogy při předávání znalostí v oblastech programování, elektroniky, elektrotechniky a mechatroniky: Různé projekty umožňují rychlé a snadné seznámení s programováním desek Arduino, což právě u začátečníků usnadňuje vývoj elektronických prototypů a realizaci kreativních nápadů.
Pro programování desek Arduino je zapotřebí software Arduino IDE. Ten má hned několik výhod: Za prvé se díky jednoduše uspořádanému uživatelskému rozhraní hodí zejména pro začátečníky. Kromě toho je nezávislý na platformě, poskytuje množství zdrojů (knihovny, ukázkové kódy, fóra) a tím, že podporuje velké množství desek Arduino, je obzvláště flexibilní – což zvyšuje jeho atraktivitu také pro zkušené vývojáře, kteří chtějí realizovat komplexnější projekty. Software je k dispozici ke stažení na oficiální internetové stránce Arduino pro Windows, iOS nebo Linux. Alternativně je k dostání také rozsáhlá odborná literatura.
Příklad sketche: Běžící světlo s 10 LED
Abychom vám ukázali, jak jednoduše lze projekt zrealizovat, a abychom vám přiblížili funkce softwaru Arduino Desktop IDE, vytvoříme si nyní krátký a jednoduchý program pro Arduino (sketch). Cílem je vytvořit běžící světlo s 10 LED s automatickým spuštěním. Díky automatickému spuštění není nutné zapojovat některý ze vstupů.
1. Konstrukce testovacího zapojení
Předtím, než přikročíme k programování, musíme mít sestavený hardware. Pro naše pokusy nám poslouží Arduino Mega 2560. Fungovala by ale i každá jiná deska. Pro řízení 10 LED použijeme digitální vstupy/výstupy 2–11.
Pro fyzické sestavení obvodu se jako ideální osvědčila malá deska. Protože LED nejsou dimenzované pro provozní napětí 5 V, musíme ke každé LED zapojit do série ještě odpor 220 Ω, abychom omezili proud a s ním také napětí pro LED. Přitom nehraje roli, zda je odpor namontovaný před LED, nebo za ní.
Musíme dávat pozor jen na to, aby byla anoda LED spojená s digitálním vstupem/výstupem desky. Společné připojení ke kostře se připojí na přípojku GND desky. Tímto je sestavení testovacího zapojení dokončené.
Protože napájení probíhá přes USB port, nemusíme k našemu testovacímu zapojení připojovat síťový adaptér.
2. Vytvoření řídicího programu
Nastavení softwaru
Po nainstalování softwaru je potřeba pod bodem menu Nástroje nastavit stávající desku a používané rozhraní.
V menu Soubor lze v adresáři Příklady nalézt několik sketchů, které je možné v případě potřeby vyvolat a hned přenést na desku Arduino.
V našem příkladu si ale naopak ukážeme, jak si můžeme krátký program vytvořit sami.
Příkazy a vysvětlivky k nim najdeme na stránce Arduino.
Definice výstupů
Na prvním řádku se definuje, kolik LED má být řízeno a které fyzické přípojky (piny) se mají pro řízení LED použít.
V našem případě budou zapojeny přípojky 2–11.
Následující část sestává ze dvou klíčových funkcí, které se označují jako setup a loop.
Část „setup“ se načte a provede pouze jednou, při spuštění.
Naproti tomu následující část „loop“ se provádí v neustále se opakující smyčce.
Setup
V části sketche, označené jako „setup“, musí být definováno, že piny 2 až 11 mají fungovat jako výstupní piny a že tedy má být 10 LED (očíslovaným 0–9) poskytnuto napětí.
K tomu lze použít příkazy:
pinMode (LEDPins[0],Output); pro 1. LED
pinMode (LEDPins[1],Output); pro 2. LED
·
·
pinMode (LEDPins[9],Output); pro 10. LED
Protože je tento postup příliš těžkopádný, byla vytvořena smyčka, ve které byla definována proměnná „i“ pro index s počátečním číslem „nula“ a podmínkou přerušení menší než 10. Hodnota „i++“ zajišťuje, aby se v každé smyčce hodnota „i“ zvýšila o jednu. Potom je pro přiřazení deseti pinů v kódu zapotřebí už jen jeden řádek:
pinMode (LEDPins[i],Output);
Loop
Také v části „loop“ se využívá smyčka, aby se zadání nemuselo provádět zvlášť pro každou jednotlivou LED.
Příkazy
digital Write (LEDPins[i],HIGH);
delay(100)
se v závislosti na předtím definované smyčce postupně zapíná 10 LED vždy na 100 ms. Prostřednictvím změny hodnoty Delay (zpoždění) lze definovat dobu svícení LED, a tím také rychlost běžícího světla.
Vypnutí LED se provádí příkazy:
digital Write (LEDPins[i],LOW);
delay(0)
Při hodnotě zpoždění „0“ se okamžitě zapne následující LED, jakmile ta předchozí zhasne. Je ale možné zadat i libovolnou hodnotu pro fázi svícení.
Protože má běžící světlo pracovat oběma směry, je potřeba v následujícím kroku obrátit pořadí rozsvěcování. Protože se při změně směru vnější LED nemá aktivovat dvakrát, zahrnuje smyčka potřebná pro zpětný chod pouze LED piny 8 (i=8) až 1 (i>0) a zapíná LED v obráceném pořadí (i--).
Řízení LED s dobami zpoždění probíhá podle stejného schématu jako při chodu po směru.
3. Přenos řídicího programu na Arduino
Na závěr lze sketch přenést na desku Arduino pomocí kulatého tlačítka a šipky směřující doprava. Během přenosu blikají obě LED RX a TX na desce a následně začne pracovat běžící text.
Pokud je ve sketchi chyba, zobrazí se už při pokusu o přenos. Protože se smyčka „loop“ stále opakuje, běží běžící světlo tak dlouho, dokud neodpojíte napájecí zdroj desky Arduino.
V našem rádci Arduino – vytváření funkcí a programování je 10kanálové běžící světlo ještě dále rozšířené a jsou tam vysvětlené nejrůznější funkce.
Na našem jednoduchém příkladu programu jsme se pokusili poodhalit neuvěřitelný potenciál programovatelných mikrokontrolérů. Aby vyhověly neomezené šíři aplikací, existují desky Arduino v nejrůznějších provedeních, s celou řadou možností připojení. Zásuvné doplňkové modely (shields) se senzory nebo pro řízení motorů, resp. ethernet shield rozšiřují funkce jednoduše a rychle. Bez náročné kabeláže tak vzniká stohovatelná vývojářská deska, resp. kompaktní řízení. Tím hardware splňuje všechny předpoklady pro vývojové prostředí, které je orientované na cíl, a přesto flexibilní.
Projekty pro začátečníky
Desky Arduino jsou ideální pro seznámení s elektronikou a programováním. Speciální sady pro začátečníky umožňují jednoduché vytváření okruhů a programování kódu. Software je přitom vytvořený tak jednoduše a flexibilně, že nejsou zapotřebí žádné rozsáhlé předchozí znalosti.
Na internetu lze navíc najít bezpočet nápadů na projekty s deskami Arduino. Komunita Arduino, která čítá více než 28 milionů členů, dokáže navíc pomoci se speciálními dotazy k softwaru Arduino, deskám a senzorům.
Výuková platforma
Díky své uživatelské přívětivosti a velké komunitě vývojářů slouží Arduino často jako platforma pro vzdělávací projekty, které usnadňují výuku elektroniky a programování. Proto už řada škol nabízí kurzy programování.
Výukový koncept Arduino Education z vlastní dílny se zaměřuje speciálně na školy, vysoké školy a vzdělávací organizace a vedle didaktického materiálu poskytuje také různé nápady na projekty.
Robotika
Také odpovědní pracovníci ve firmách už rozpoznali potenciál a často používají desky Arduino pro implementaci řízení robotů, založených na mikrokontrolérech.
Díky tomu, že jsou flexibilně programovatelné, lze jednoduše integrovat senzory a aktuátory pro řízení pohybů, pro snímání okolí a jiné funkce. Projekty v oblasti robotiky přitom zahrnují jak jednoduché, tak i velmi komplexní autonomní systémy.
Hudba a umění
S pomocí desek Arduino lze vyvíjet jednoduché hudební nástroje nebo do stávajících nástrojů integrovat elektronické komponenty, vytvářet zvukové efekty nebo zvukové instalace, čímž vznikají nové hudební zážitky.
Také umělci využívají desky pro kinetické sochy a další kreativní projekty, pro interaktivní umělecké instalace, u kterých se používají senzory a aktuátory, které reagují na podněty z prostředí.
Internet věcí (Internet of Things, IoT)
Desky Arduino lze kombinovat s různými senzory (pro teplotu, vlhkost, světlo a pohyb) a komunikačními moduly a vytvářet projekty IoT. Umožňují záznam dat z fyzického světa a přenos přes internet.
Nositelná elektronika (Wearables)
Díky své kompaktní velikosti se desky Arduino hodí také pro projekty nositelné elektroniky. Je možné je integrovat do oděvu, šperků nebo jiných přenosných zařízení a vytvářet tak personalizovaná nositelná zařízení, která reagují na pohyb, tlak nebo teplotu.