Arduino, čili mikrokontroléry pro každého
- January 17 2021
- Komerce
- 1378x Přečteno
Arduino – ideální volba pro začínající programátory
Pokud se chcete naučit programovat mikrokontroléry, je platforma Arduino skvělou volbou. Podobně, pokud jste elektro nadšenci, máte nějaký nápad a chcete rychle vytvořit zařízení založené na mikrokontroléru a na standardních periferních zařízeních, jako jsou: alfanumerické, grafické displeje, LED, LCD s přidruženými tlačítky nebo bez nich, senzory, přenosové moduly, drivery motorů nebo elektroventilů a mnoho jiných. Platformu Arduino stojí za to také využít, pokud chcete vyrobit krátkou sérii zařízení, v nichž bude „srdcem“ mikrokontrolér, který nemusí nutně spolupracovat s rozšiřujícími moduly Arduino.Arduino – co je to?
Co je Arduino? Není to jen deska mikropočítače (nejčastěji když se řekne „Arduino” máme na mysli pouze ji), ale kompletní platforma založená na snadno použitelném hardwaru a softwaru. Důležité je, že se jedná o open source platformu, což znamená přístup k bezplatné, podrobné dokumentaci a programovým schématům a zdrojům. Zařízení vyrobené na základě platformy Arduino se obvykle skládá ze základní desky s mikrokontrolérem a připojeného k ní rozšiřujícího modulu, kterému se říká shield. Většina základních desek Arduino má USB rozhraní určené pro jejich programování pomocí PC. Na některých deskách jsou signály mikrokontroléru přiváděny do zásuvek, ke kterým jsou připojeny rozšiřující moduly, a na některých k pájecím bodům. Vzhledem k tomu, že takové desky jsou nabízeny jako miniaturní moduly, občas jsou hovorově označovány jako „mikrokontrolér Arduino“ nebo „mikropočítač Arduino“.Fot. 1. Rozšiřující modul s LED displejem a tlačítky. S jeho pomocí lze snadno vytvořit hodiny.
Programování v Arduino IDE
Syntaxe jazyka umožňujícího programování Arduino je podobná jako u jazyka C++ a stala se velmi oblíbená mezi programátory mikrokontrolérů. Silnou stránkou vývojového prostředí Arduino je dostupnost četných hotových knihoven usnadňujících tvorbu programu a nespočetného množství hotových aplikací vyvinutých uživateli této platformy z celého světa. Důležité je také, že vývojové prostředí je veřejně přístupné, bez ohledu na účel jeho použito. Obdobně samotná základová deska – pokud ji nechcete kupovat, můžete si ji vyrobit sami podle dostupné dokumentace.Stručná historie vzniku Arduino
Myšlenka Arduina se narodila v Itálii, v Ivrea Interaction Design Institute. Platforma Arduino měla být určena pro rychlé prototypování a výuku programování studenty, kteří se doposud nezabývali elektronikou a programováním. Autoři Arduino měli skvělý nápad, protože se Arduino osvědčilo nejen na univerzitě, ale i mimo ni. Pomáhalo totiž mnoha lidem ve výuce nebo rychlé realizaci nápadů. Poté, co platforma Arduino překročila hranice univerzity a byla přijata mnohem širším okruhem uživatelů, musela se přizpůsobit novým výzvám a uspokojit nové potřeby. Zároveň se nabídka základních desek výrazně diverzifikovala, zahrnovala totiž nejen jednoduché 8bitové jednotky, ale také rozsáhlejší, určené pro použití v zařízeních IoT, přenosných zařízeních, 3D tiskárnách a jiných, mnohem náročnějších aplikacích. Všechny desky Arduino jsou založeny na principech open source licence, která umožňuje uživatelům zhotovit je samostatně a přizpůsobit konkrétním potřebám. Také software je typu open source a je vyvíjen díky práci uživatelů po celém světě.Proč právě Arduino
Ještě před několika lety měl každý výrobce vyhodnocovacích desek nebo mikrokontrolérů svůj vlastní standard konektorů. Nyní se většina z nich přizpůsobuje neformálnímu „standardu“ zavedenému společností Arduino. Hlavním důvodem je zcela jistě, kromě oblíbenosti samotného Arduino, dostupnost velkého množství modulů rozšíření (tzv. shield – zde). Pokud výstupy nabízené vyhodnocovací desky jsou v souladu s výstupy Arduina, má uživatel možnost volně využít obrovskou nabídku modulů rozšíření pro Arduino, což umožňuje snadné, levné a rychlé získání očekávané funkčnosti prototypu. Přináší to také výhody pro výrobce vyhodnocovací desky, protože se může zaměřit na aplikaci samotného mikrokontroléru, který obklopí pouze minimální sadou spolupracujících komponentů, což umožňuje snížit její konečnou cenu.Fot. 2. Modul rozšíření s GSM modemem. Lze jej použit k vytvoření upozornění s oznámením.
Díky snadnému použití, dostupnosti a s ohledem na různé potřeby uživatelů, můžeme mezi projekty realizovanými pomocí Arduino najít řešení mnoha problémů a realizovat téměř jakékoli zařízení. Mohou být použity přímo nebo použity jako referenční projekt. Software pro tvoření aplikací (Arduino IDE) je velmi snadno použitelný pro začátečníky, ale zároveň je flexibilní a poskytuje mnoho možností pro pokročilé uživatele. Může být spuštěn pod kontrolou operačních systémů Mac OS, Windows a Linux. Díky tomu je k dispozici uživatelům s různými hardwarovými preferencemi a různými finančními možnostmi. Spočítat všechny aplikace Arduino není možné, protože je stejně populární u profesionálů, jak i u amatérů. Učitelé a studenti používají Arduino ke zhotovení levných měřicích přístrojů, a to nejen elektrických veličin, ale také určených pro použití při chemických a fyzikálních experimentech. Ve školách po celém světě se používá k výuce programování a robotiky. Projektanti a architekti používají Arduino k vytváření prototypů interaktivních budov, hudebníci a umělci vytvářejí jeho pomocí interaktivní umělecké instalace a experimentují s novými typy hudebních nástrojů. Pro mnoho osob je platforma Arduino klíčovým nástrojem pro učení se novým dovednostem. Může ji použít každý: děti, amatéři, umělci, programátoři, konstruktéři zařízení a mnoho dalších osob. Každý si může vytvořit nějaké zařízení podle pokynů k sestavení krok za krokem nebo sdílet nápady online s ostatními členy komunity Arduino.
Které Arduino si vybrat
Pro zhotovení prototypu nebo zařízení postaveného na platformě Arduino, obvykle potřebujeme základní desku vybavenou vhodným pro naše potřeby typem mikrokontroléru, modulem rozšíření – rozšíření shield, software Arduino IDE, USB kabel, napájecí zdroj a PC. V současné době obsahuje ekosystém různé typy Arduino, s různými mikrokontroléry a obrovským počtem rozšiřujících modulů. Vzorové moduly jsou zobrazeny na fotografiích 1... 3. V závislosti na typu jsou desky Arduino vybaveny konektory – zásuvkami pro goldpiny nebo pájecími body, které lze použít nejen pro připojení desky, ale také pro její připevnění na plošném spoji zařízení embedded, pokud mikropočítač Arduino funguje jako centrální jednotka. Každá má v paměti mikrokontroléru uložený bootloader, který je určen k programování procesoru „in-circuit“ (bez odpájení ze systému) pomocí jednoduchého výběru možností z nabídky prostředí Arduino IDE.Fot. 3. Modul rozšíření s rozhraním Ethernet. Může být užitečný v zařízeních inteligentní domácnosti
Aktuální seznam základních desek Arduino je uveden v tabulce. Většina z nich používá mikrokontroléry s jádrem AVR, ale najdeme mezi nimi také procesor firmy Intel a SAM21 s jádrem ARM Cortex-M0+. Zde stojí za zmínku, že v tabulce nejsou žádné desky vybavené procesory firmy Espressif Systems (například populární ESP8266), které je možné také naprogramovat pomocí Arduino IDE. Při výběru desky pro konkrétní použití je třeba se řídit možnostmi namontovaného na ní mikrokontroléru. Jednotlivé jednotky se liší velikostí dostupné paměti, rychlostí jádra a vybavenosti funkčními bloky, jako jsou: rozhraní, časovače, PWM generátory atd. Je také třeba věnovat pozornost výstupům desky, protože některé z nich nemají konektory, ale jsou určeny pro pájení.
Typ desky Arduino | Typ procesoru | IO / napájecí napětí [V] | Taktovací frekvence CPU [MHz] | Analogové vstupy / výstupy | Digitální vstupy \ výstupy / počet PWM | EEPROM [kB] | SRAM [kB] | Flash [kB] | USB | UART |
---|---|---|---|---|---|---|---|---|---|---|
LilyPad USB | ATmega32U4 | 3,3/3,8…5 | 8 | 4/0 | 9/4 | 1 | 2,5 | 32 | - | Micro |
Mega 2560 | ATmega2560 | 5/7…12 | 16 | 16/0 | 54/15 | 4 | 8 | 256 | Typ B | 4 |
Micro | ATmega32U4 | 5/7…12 | 16 | 12/0 | 20/7 | 1 | 2,5 | 32 | Micro | 1 |
MKR1000 | SAMD21 Cortex-M0+ | 3,3/5 | 48 | 7/1 | 8/4 | - | 32 | 256 | Micro | 1 |
Uno | ATmega328P | 5/7…12 | 16 | 6/0 | 14/6 | 1 | 2 | 32 | Typ B | 1 |
Zero | ATSAMD21G18 | 3,3/7…12 | 48 | 6/1 | 14/10 | - | 32 | 256 | 2×Micro | 2 |
Due | ATSAM3X8E | 3,3/7…12 | 84 | 12/2 | 54/12 | - | 96 | 512 | 2×Micro | 4 |
Leonardo | ATmega32U4 | 5/7…12 | 16 | 12/0 | 20/7 | 1 | 2,5 | 32 | Micro | 1 |
Nano | ATmega168; ATmega328P | 5/7…9 | 16 | 8/0 | 14/6 | 0.512; 1 | 1; 2 | 16; 32 | Mini | 1 |
MKRZero | SAMD21 (Cortex-M0+) | 3,3 | 48 | 7 (ADC 8/10/12 bit)/1 (DAC 10 bit) | 22/12 | - | 32 kB | 256 kB | Ano | 1 |
Yun Rev 2 | ATmega32U4; Atheros AR9331 | 5; 3,3V | 16; 400 | 12/0 | 20 | 1 | 2,5; 64 MB DDR2 | 32; 16 MB | Ano | 1 |
Uno WiFi Rev2 | ATmega4808; Rádiový modul u-blox NINA-W102 | 5/7…12 | 16 | 6/0 | 14 | 0,256 | 6 | 48 | Ano | 1 |
Nano 33 IoT | SAMD21 (Cortex-M0+) | 3,3/3,6…21 | 48 | 8/1 | 14 | - | 32 | 256 | Ano | 1 |
Nano 33 BLE | nRF52840 | 3,3/3,6…21 | 64 | 8/0 | 14 | - | 256 | 1MB | Ano | 1 |
Nano 33 BLE Sense | nRF52840 | 3,3/3,6…21 | 64 | 8/0 | 14 | - | 256 | 1MB | Ano | 1 |
MKR1000 WiFi | SAMD21 (Cortex-M0+) | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR1010 WiFi | SAMD21 (Cortex-M0+) | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR Vidor 4000 | SAMD21 (Cortex-M0+); FPGA Intel Cyclone 10CL016 | 3,3/5 | 48; 48…200 | 7/1; -/- | 8; 22 | - | 32; 8MB SDRAM | 256; 2MB | Ano | 1; 7 |
MKR Fox 1200 | SAMD21 (Cortex-M0+); Rádiový modul Microchip Smart RF ATA8520 | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR GSM 1400 | SAMD21 (Cortex-M0+); Rádiový modul u-blox SARA-U201 | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR NB 1500 | SAMD21 (Cortex-M0+); Rádiový modul u-blox SARA-R410M-02B | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR WAN 1310 | SAMD21 (Cortex-M0+); Rádiový modul CMWX1ZZABZ | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
MKR WAN 1300 (LoRA Connectivity) | SAMD21 (Cortex-M0+); Rádiový modul CMWX1ZZABZ | 3,3/5 | 48 | 7/1 | 8 | - | 32 | 256 | Ano | 1 |
Portenta H7 | STM32H747XI (Cortex-M7+M4); Rádiový modul Murata 1DX WiFi a Bluetooth 5.1 | 3,3/5 | 480 | 7/2 | 15/8 | - | 1MB | 2MB | Ano | 4 |
Arduino Nano, Arduino Uno a jiné
Cenově dostupné desky a bezplatné vývojové prostředí Arduino jsou velmi dobrou alternativou k mnoha vyhodnocovacím platformám dostupným v obchodě a nabízeným např. výrobci mikrokontrolérů. Dostupnost dokumentace a otevřené zdroje umožňují samostatnou úpravu platformy a její přizpůsobení vlastním potřebám. Hotové desky Arduino jsou dostupné za přijatelnou cenu. Dobrým výchozím bodem pro začátečníky je Arduino Uno. Bylo vybaveno typickým USB konektorem, s jehož pomocí lze propojit desku s počítačem a snadno přenášet software jediným kliknutím. Mikrokontrolér ATmega328, jenž je namontovaný na desce, má dostatek paměti a hardwaru pro realizaci mnoha kontrolních a řídicích aplikací. Taktovací frekvence jádra činí 16 MHz, což poskytuje strojový cyklus s dobou trvání 62,5 ns a jádro AVR použité v mikrokontroléru provádí většinu pokynů v jednom strojovém cyklu. Postupným získáváním zkušeností a praxe můžete volit i jiné varianty jako jsou např. Arduino Due, Mega 2560 a jiné. Rozhodně stojí za to věnovat pozornost zejména modelu Arduino Nano, což je miniaturizovaná verze větších systémů, která neobsahuje např. stabilizátor napětí a plnohodnotný port USB. Arduino Nano je však vybaveno stejným, 8bitovým procesorem, stejně jako deska Uno, avšak v působivě zmenšené velikosti. V případě řady Nano je rozměr PCB 18 mm krát 45 mm! Důležité je, že navzdory změně hardwaru stále používáte stejné vývojové prostředí. Mikrokontrolér je obvykle programován pomocí rozhraní USB. Pro správnou spolupráci rozhraní USB Arduino s používaným operačním systémem, je nutný vhodný ovladač, který bude nainstalován operačním systémem po připojení desky a přihlášení startovacího softwaru mikrokontroléru, takzvaného bootloaderu. Původně bylo Arduino IDE napsáno pro Windows, proto je většina bootloaderů dostupná pro Windows, a jen některé z nich jsou přizpůsobeny pro jiné operační systémy. Při práci na počítači vybaveném MacOS nebo Linuxem určité stojí za to před rozhodnutím o koupi základní desky Arduino zkontrolovat, zda je kompatibilní se systémem, který používáte.Fot. 4. Arduino Uno R3 doporučujeme pro začátečníky. Nakonec stojí za zmínku webové stránky uživatelů Arduino, které jsou dostupné na adrese https://www.arduino.cc/. Najdete zde aktuální verze programů, mnoho aplikací, uživatelské fórum a znalostní bázi. Jsou zde také dostupná schémata a elektrické parametry desek Arduino, popisy a specifikace parametrů, včetně popisu Arduino Uno R3 (foto 4), které je doporučováno pro začátečníky. V naší nabídce naleznete mnoho rozšiřujících modulů a spousta příkladů aplikací je k dispozici na jiných webových stránkách. Můžete je nalézt pomocí vyhledávačů nebo diskusních skupin věnovaných programování a elektronice. Originální článek najdete na tme.eu