načítání...
nákupní košík
Košík

je prázdný
a
b

E-kniha: Arduino - Matúš Selecký

Arduino

Elektronická kniha: Arduino
Autor:

Hledáte ucelený zdroj informací k Arduinu? Nebaví vás spojovat informace z různých zdrojů? Chcete rychle začít pracovat na vlastních projektech využívajících tuto populární ... (celý popis)
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  199
+
-
6,6
bo za nákup

ukázka z knihy ukázka

Titul je dostupný ve formě:
elektronická forma tištěná forma

hodnoceni - 71.2%hodnoceni - 71.2%hodnoceni - 71.2%hodnoceni - 71.2%hodnoceni - 71.2% 90%   celkové hodnocení
1 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Computer press
Dostupné formáty
ke stažení:
PDF
Upozornění: většina e-knih je zabezpečena proti tisku
Médium: e-book
Počet stran: 344
Rozměr: 23 cm
Úprava: tran : ilustrace
Vydání: 1. vydání
Spolupracovali: překlad Martin Herodek
Jazyk: česky
ADOBE DRM: bez
ISBN: 978-80-251-4840-2
Ukázka: » zobrazit ukázku
Popis / resumé

Úvod do problematiky embedded zařízení. Ovládání Arduina (jednodeskového počítače založeného na mikrokontrolerech ATmega od firmy Atmel) z operačního systému Windows a Linux.

Popis nakladatele

Hledáte ucelený zdroj informací k Arduinu? Nebaví vás spojovat informace z různých zdrojů? Chcete rychle začít pracovat na vlastních projektech využívajících tuto populární platformu? S uživatelskou příručkou se rychle naučíte základy i pokročilé techniky, které následně využijete při tvorbě rozsáhlejších řešení.

Zkušený autor vás provede vším důležitým, co budete u vlastních projektů s Arduinem potřebovat, bez zbytečné teorie. Seznámíte se s možnostmi, jak Arduino programovat, naučíte se program odladit a nahrát do zařízení, propojit desku s rozšiřujícími moduly a propojit s periferiemi, nezapomnělo se ani na aktuální trendy, jakým je například internet věcí. Veškeré postupy jsou demonstrovány na praktických příkladech, které si můžete hned vyzkoušet.

Publikace se mimo jiné věnuje těmto tématům:
- Propojení Arduina s počítačem
- Tvorba kódu a jeho nahrání do zařízení
- Ladění a odolnost vůči chybám
- Rozšíření funkčnosti pomocí modulů
- Šetření energií, zvyšování stability zařízení
- Využití Arduina v nejrůznějších scénářích
- Spolupráce desky s periferiemi
- Arduino a internet věcí

O autorovi:
Matúš Selecký působí v oblasti ICT od roku 2008, prošel činností z oblasti testování, správy zabezpečení sítí, optimalizace, automatizace a automatické verifikace systémů. Je absolventem několika kurzů z dílen společností Microsoft, Cisco, ECCouncil a CompTIA zaměřených na diagnostiku, správu a zabezpečení síťové infrastruktury. Je členem mezinárodní profesní organizace IEEE, konkrétně spolku IEEE Computer Society. Při řešení ve velké míře navrhuje, tvoří a využívá automatizované nástroje.

Předmětná hesla
Zařazeno v kategoriích
Matúš Selecký - další tituly autora:
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

Arduino

Vyšlo také v tištěné verzi

Objednat můžete na

www.computerpress.cz

www.albatrosmedia.cz

Matúš Selecký

Arduino – e-kniha

Copyright © Albatros Media a. s., 2016

Všechna práva vyhrazena.

Žádná část této publikace nesmí být rozšiřována

bez písemného souhlasu majitelů práv.


3

Matúš Selecký

Arduino

Uživatelská příručka

Computer Press

Brno

2016


4

Obsah

O autorovi 11

O knize 11

Co v knize najdete? 12

Typografické konvence 13

Doplňující informace 14

KAPITOLA 1

Seznamte se, Arduino 15

Motivace 15

Arduino 15

Historie Arduina 16

Shrnutí 18 Licenční podmínky Arduina 18 Iniciativa Open-source 18 Arduino – ano, nebo ne? 19

Proč ano... 19

Proč ne... 20

Shrnutí 21 Produktová řada 21 Alternativní řešení 23 Emulátor Arduina 23

CodeBlocks Arduino IDE 23

Simuino 24

Autodesk 123D circuits 24

VBB4Arduino 25

Shrnutí 26 Datasheety 26 Komunity a tutoriály 27

Účast v komunitách 30

Komunikace 31 Hacker 32

Základní předpoklady 32

Potřebné znalosti 34

Shrnutí 35 Hardware hacking a reverzní inženýrství 35

Sběr informací 36

Fyzická inspekce 36

Odkrytování zařízení 36

Ovládací mechanizmus 37

Identifikace součástek 38

Výměna komponent 38

Debuggování 38

Tvorba softwaru 39

Psaní poznámek 39

Shrnutí 39 Arduino a reverzní inženýrství 40

Extrakce zdrojového kódu z Arduina 40

Konverze souboru HEX do původního kódu 41 Vývoj řešení – technický pohled 41

1. Sběr požadavků 42

2. Architektura systému 43

3. Blokový diagram 43

4. Realizace zapojení 45

5. Test-driven development 45

6. Testování a ladění 47 Vývoj řešení – pohled byznysu 47

KAPITOLA 2

Software 49

Motivace 49

Vývojové prostředí (IDE) 50

Arduino Software IDE 50

Visual Studio Community 51

Atmel Studio 51

Arduino plugin – Visual Micro 52

CodeBender 53

PlatformIO IDE 54

Shrnutí 54 Arduino IDE 55

Instalace vývojového prostředí 55

Prostředí Arduino IDE 61 První spuštění 67 Zpracování a běh kódu 69

Soubory zdrojového kódu 69

Kompilace kódu 70

Nahrání kódu 72

Běh kódu 74

Shrnutí 74 Konvence kódu 74

Názvosloví 75

Komentáře 76

Formátování 77

Programování 78

Shrnutí 78 Standardy programování 78

Kategorie: Jazyk 79

Kategorie: Předvídatelné spuštění 79

Kategorie: Defenzivní programování 81

Kategorie: Čistota kódu 81

Shrnutí 82 Pseudokód 82

Jazyk pseudokódu 82

Rozdělení pseudokódu 83

Struktura pseudokódu 83

Klíčová slova 84

Shrnutí 84 Programovací vzory 84

Imperativní programování 84

Objektově orientované programování 86

Funkcionální programování 89

Jiné typy programovacích vzorů 93

Shrnutí 94 Program (skica, sketch) 94

Globální definice 94

První program 95

Shrnutí 96 Verifikace a nahrání kódu 96 Datové typy 97

Konverze datového typu 100

Shrnutí 101 Proměnné 101 Kvalifikace proměnné 102

Volatile 102

Const 103 Vstupy a výstupy 103

pinMode() 103

digitalWrite() 105

digitalRead() 106

analogReference() 106

analogRead() 106

analogWrite() 107

analogReadResolution(), analogWriteResolution() 108

tone() 108

noTone() 108

shiftOut(),shiftIn() 108

pulseIn() 109

Serial.println() 109 Funkce 110 Testy 111

Podmínka if 111

Podmínka if...else 112 Cykly 112

Cyklus for 113

Cyklus while 114

Cyklus do...while 115

Shrnutí 116 Matematické operace 117 Ukazatel (Pointer) 120

Shrnutí 122 Pole 122 Paměť 124

Shrnutí 126 Regulární výrazy 127

Shrnutí 129 Řídicí příkazy 129 Knihovny 130

Vlastní knihovna 131

Shrnutí 134 Grafika 134

OpenFrameworks 135

Processing 135

PureData 139

Shrnutí 140 Optimalizace kódu 141

Datový typ 141

Globální a lokální proměnné 142

Spojení smyček 142

Využití cyklů 143

IF-ELSE vs. SWITCH-CASE 143

Shrnutí 145 Tipy a triky 145

1. Začít v malém a postupně rozšiřovat 145

2. Měnit jen jednu věc současně 145

3. Včasná příprava na ladění 145

4. Testování nového kódu 146

5. Rozumět upravovanému kódu 146

6. Experimentování 146

7. Zaseknutí v problému 146

8. Zmenšení programu 146

9. Zkrácený zápis funkcí 146 Hardwarové tipy 147 Diagnostika a ladění 149

Logování 149

Debuggování 150 Testy embedded zařízení 152

Arduino a unit testy 153

Test přihlašování 154

Test komunikace Arduino – PC 155

KAPITOLA 3

Hardware 157

Motivace 157

Sběrnice SPI 157

Základní specifikace 157

Programování SPI 159

Shrnutí 160 Sběrnice I2C 160

Základní specifikace 160

Programování I2C 161

I2C a Arduino 161

I2C skener adres 162

Shrnutí 163 Vstupy a výstupy 163

DDRx registr 164

PORTx registr 164

PINx registr 165

I/O piny a Arduino 165

Shrnutí 166 Asynchronní I/O 166 Multitasking – RTOS 167

RTOS a Arduino 167

Semafory 168

Arduino a semafor 169

Shrnutí 171 Časovače – milis() 171

Delay() vs. Milis() 171

Shrnutí 173 Přerušení 173

ISR rutina 174

Volání a maskování přerušení 176

Proměnné Volatile 177

Shrnutí 178 Paměti mikrokontrolérů AVR 178

Progmem 179

F() makro 180

Shrnutí 181 Watchdog 181

Princip fungování 182

Doporučení pro návrh 182

Watchdog a Arduino 182

Softwarový restart 184

Shrnutí 184 Bootloader 184

Programátor 184

Manuální instalace bootloaderu 185

Paměťové registry 186 Šetření energie 188

Způsoby šetření energie 189

Shrnutí 193 Napájení 193

Neregulovaný zdroj 193

Regulovaný zdroj 194

Baterie 194

KAPITOLA 4

Periferie 197

Motivace 197

Bezpečnost práce 198

Základní zásady 198

Elektrostatické výboje (ESD) 200

Shrnutí 201 Zobrazovací jednotky 201

LCD displej 202

OLED displej 205

Shrnutí 206 Numerická klávesnice 207

Princip fungování 207

Klávesnice a Arduino 208

Shrnutí 209 Snímače 209

Rozdělení snímačů 209

Arduino a snímače 210

Shrnutí 211 Pohony 211

Regulace otáček 212

H-můstek 214

Shrnutí 215 RFID 216

Princip fungování 216

RFID a Arduino 217

Shrnutí 218 GPS modul 218

Formát dat 218

GPS a Arduino 221

Shrnutí 223 Gyroskop a akcelerometr 223

Arduino a gyroskop 223

Shrnutí 225 Ethernet 225

Ethernet a Arduino 225

Shrnutí 228 Wi-Fi 228

Princip fungování 228

Wi-Fi a Arduino 229

Shrnutí 231 Bluetooth 231

Princip fungování 231

Bluetooth a Arduino 232

Shrnutí 234 GSM komunikace 234

Princip fungování 234

GSM a Arduino 236

Shrnutí 238 Spínání síťového napětí 238

Technický popis 239

Síťové napětí a Arduino 239

Shrnutí 242 Real-time clock (RTC) 242

RTC a Arduino 242

Shrnutí 243 Arduino callback 243

Princip fungování 243

Callback a Arduino 244

Shrnutí 245 Záznam dat 245

SD karta a Arduino 245

Databáze a Arduino 247

Shrnutí 248 Arduino Cluster 248

Princip fungování 249

Shrnutí 251 Arduino a Raspberry Pi 251 Arduino a server 254 Arduino a PowerShell 255

USB a Arduino 256

TCP a PowerShell 258

Notifikace v oznamovací oblasti 260

Shrnutí 261 Arduino a Bash 261

TCP komunikace 261

Shrnutí 262 Arduino a Python 263

Shrnutí 265 Arduino a Android/Apple iOS/Windows Mobile 265

Android 265

Apple iOS 267

Windows Mobile 268

Shrnutí 269 Arduino a SSH 269

Shrnutí 270 Vlastní moduly 271

Návrh a kreslení schémat 271

Realizace DPS 276

Shrnutí 278

KAPITOLA 5

Internet of Things 279

Motivace 279

Internet of Things 279

Message Oriented Middleware (MOM) 281

Komunikační protokoly 283

STOMP 284

AMQP 284

MQTT 284

CoAP 286

ZeroMQ 287

REST 289

Shrnutí 292 Broker server 292

Apollo 292

Rabbit MQ 295

Mosquitto 298

Shrnutí 299

Přílohy 301

Otázky na pracovním pohovoru 301

Rezervovaná slova a znaky 303

Datové typy 305

Základní tabulka ASCII znaků 305

Řecká abeceda 306

Vzorce 307

Schematické značky 308

Zapojení trojúhelník-hvězda 308

Označení rezistorů 309

Síťové adaptéry 309

Volt-ampérové charakteristiky 310

Napěťové úrovně integrovaných obvodů 311

Veličiny a jednotky 312

Převod jednotek 312

Přepočet frekvence 312

Matematika 313

Slovník 319

Bibliografie 327

Rejstřík 333


11

O autorovi

V oblasti ICT působím od roku 2008. Ve své profesní praxi jsem se věnoval mnoha činnostem

z oblasti testování, správy zabezpečení sítí, optimalizace, automatizace a automatické verifikace

systémů. Při řešení ve velké míře navrhuji, tvořím a využívám automatizované nástroje, které

mi pomáhají efektivně řešit vzniklé situace a požadavky.

Před dvěma roky jsem u jednoho projektu realizovaného ve volném čase přišel do stykus Ar

duinem. Poznal jsem výzvy a úskalí vývoje embedded zařízení a získané znalosti a zkušenosti

se snažím komplexně sumarizovat v této knize.

O knize

Pokrok moderních technologií snižuje cenu a zvyšuje dostupnost elektronických prvků,tech

nických prostředků a zařízení pro běžné lidi. V době internetu a snadné dostupnosti informací

je možné získávat znalosti téměř kdykoliv a kdekoliv. Toto všechno dává možnost i kreativním

lidem a nadšencům tvořit produkty a služby, které zlepšují každodenní život. V některýchpří

padech se nápady mění v nové podnikatelské plány.

Arduino je jednou z  takovýchto technologií. Řešení pochází z  dílny italských inženýrů. Už

i v našich zemích (Česká a Slovenská republika) existuje několik knih, článků, blogů, portálů

a webových stránek popisujících tuto technologii.

Na trhu však chybí literatura, která by amatérům (lidem, kteří se touto oblastí neživí)proble

matiku vývoje a výroby elektronických zařízení přiblížila komplexním a čtivým způsobem.

Právě tato kniha chce poskytnout takzvaný celkový přehled o problematice, v angličtinětak

zvaný „big picture“.

Technická literatura je už v době svého psaní poměrně neaktuální, jelikož proces tvorbykni

hy trvá přibližně rok. U zařízení typu Arduino je životní cyklus desek a rozšiřujících modulů

poměrně krátký. Navíc po vydání knihy jsou obsažené informace za rok či dva už neaktuální

a v podstatě i nezajímavé a zbytečné.

Vzhledem k dostupnosti informací na internetu je poměrně jednoduché najít, co člověkpotře

buje. Stačí do webového prohlížeče zadat klíčové slovo a za sekundu jsou k dispozici miliony

výsledků. Pro Arduino se vrátí 26 milionů výsledků, a to vytváří další problém.

Tím je právě tato jednoduchá a rychlá dostupnost velkého množství informací, která začíná

být v  dnešní době více na škodu než k  užitku. V  době internetu převažuje kvantita obsahu


12

O knize

nad kvalitou. Dalším z problémů je fragmentace informací. Kniha se proto snaží poskytnout

řešení ve formě sdružení relevantních informací na jednom místě.

Z těchto důvodů je koncept knihy postaven jinak než většina běžných zdrojů informacík Ar

duinu. Na první pohled by se mohlo zdát, že pokud kniha obsahuje informace z každé oblasti,

je to o všem a zároveň o ničem. Důvodem, proč obsah knihy vytváří takový pocit, je široký

rozsah obsažených témat a oblastí. Témata a jejich rozsah byly zvoleny ve snaze poskytnout

úvod do vývoje embedded zařízení.

Pokud si čtenář detailně nastuduje jazyk C/C++ a technologii programování mikroprocesorů

AVR od společnosti Atmel, zvládl v podstatě celé Arduino. S drobnými obměnami je schopen

realizovat jakýkoliv program. Tuto knihu nebude potřebovat. Dovolím si však tvrdit, že potom

bude mít na Arduino jiný pohled a zjistí, že ho v mnoha věcech deska či Arduino IDE omezují.

Schopnost programování mikroprocesorů ale nepostačuje. Mikroprocesor sám o soběnedoká

že poskytovat tak rozsáhlou funkcionalitu, jaká se požaduje například při realizaci domácího

alarmu nebo amatérské meteorologické stanice.

Když se člověk postupně ponoří do problematiky, napadnou ho otázky: Jak řeší takovýtopro

blém profesionálové v praxi? Co všechno by mělo mít kvalitní softwarové a hardwarovéřeše

ní? Jak se propojují zařízení s reálným světem? Jak nejlépe zabezpečit interakci s uživatelem?

Jaké jsou moderní trendy v oblasti? Je možné hobby řešení transformovat na komerční řešení?

A mnoho jiných otázek.

Tato kniha by měla být pro nezasvěcené prvním úvodem do problematiky embedded zařízení

a ukázat další nasměrování na odpovídající zdroje informací. Čtenář by měl v knize najíti vy

světlení, proč jsou jednotlivé oblasti důležité a jak spolu souvisí. To, zda byly záměr a ambice

knihy splněny, zůstává na čtenáři.

Co v knize najdete?

V knize se dozvíte například: Jaká pravidla při tvorbě embedded kódu označují za důležitá

experti z NASA. Jak připojit Arduino do počítačové sítě bez ethernet modulu. Co potřebujete

k ovládání Arduina z operačního systému Windows a Linux. Jak na emebedded systémech

šetřit energii. Jakým způsobem je možné zajistit automatickou detekci a obnovu z chybových

stavů. Jak začlenit Arduino do infrastruktury IoT s komunikačním modelemPublisher-Sub

scriber. Prozkoumáte rovněž mnoho jiných zajímavých oblastí souvisejících s vývojemem

bedded zařízení a Arduina.

Kniha je rozdělena do pěti kapitol a doplněna souborem příloh.

1. kapitola se věnuje seznámení s Arduinem. Seznámíte se s příběhem, který obsahujezkla

mání, kopírování nápadů a interní spory mezi zakladateli projektu. Po úvodu následujekrát

ké zamyšlení nad vhodností a nevhodností Arduina pro projekty. V textu jsou dále zmíněny

oblasti, které uvedou čtenáře do problematiky elektronických zařízení, jejich vývoje, analýzy,

vylepšování či úprav v  domácím prostředí. Rozšiřujícími částmi jsou témata o  hackerech,

hardwaru hackingu či reverzním inženýrství.


13

O knize

2. kapitola se zaměřuje na softwarovou část Arduina. Vysvětluje programovací jazyk,přístuy a  principy. Kapitola obsahuje informace, které odhalují zajímavé nástroje k  nasazení při

řešení. Za zmínku stojí například ukázka regulárních výrazů pro pokročilou práci s textem či

malá ochutnávka audiovizuálních frameworků pro tvorbu interaktivních rozhraní. Část textu

se věnuje principům, tipům a trikům, jak tvořit a ladit zdrojový kód.

3. kapitola se věnuje hardwaru Arduina. Mezi popisovanými oblastmi jsou sběrnice, registry,

operační paměť, časovače, vstupy/výstupy a jejich efektivní využívání při programování.Mezi zajímavé části patří sekce věnovaná šetření energií či principům zvýšení stability zařízení

a odolnosti vůči chybám.

4. kapitola nabízí seznámení s principy propojení Arduina a externích modulů. Moduly se

označují jako shieldy a rozšiřují funkcionalitu Arduina o nové technologie jako GSM, GPS

či RFID. V kapitole se nezapomnělo ani na principy připojení Arduina k síti bez technologie

ethernet, na Wi-Fi, Bluetooth či propojení s mobilními telefony.

5. kapitola se zaměřuje na krátký úvod do Internet of Things, což je oblast, která v posledních

letech razantně získává na popularitě. V textu najdete popsaný komunikační modelPublisher-Subscriber, který se dá snadno vytvořit a otestovat v domácích podmínkách.

Přílohy – knihu uzavírá soubor příloh, který má fungovat jako kolekce užitečných informací.

Na seznamu se nachází například tabulky elektrotechnických značek a výpočtů čimatematické vzorce. Bonusovou přílohou je ukázka otázek používaných na pohovorech na pozice typu

vývojář embedded zařízení.

Typografické konvence

V knize se používá kvůli lepší přehlednosti formátování textu podle následujícíchtypografických konvencí.

Informace související s popisovanou problematikou, které by mohly být zajímavé či důležité,

jsou v textu rozděleny do tří kategorií: Tip, Poznámka a Upozornění. Všechny typy jsouzvýrazněny tímto způsobem:

Poznámka: U aritmetických operací je potřeba dávat pozor na používané datové typy. Jejich

nesprávným používáním se mohou výsledky zkreslit, což má nežádoucí vliv na běh programu.

Obzvlášť problémové jsou operace dělení. Zdrojový kód, který lze aplikovat na Arduino, je formátován takto: int led = 9; // nastavení pinu LED int brightness = 0; int fadeAmount = 5; void setup() { // nastavení komunikace pinMode(led, OUTPUT); } O knize void loop() { analogWrite(led, brightness); } Doplňující informace V knize se využívá princip, který se v zahraniční literatuře označuje jako „rule of thumb“. Jde o příklady a principy, které se používají k vysvětlení či úvodu do problematiky. Tyto příklady a principy nejsou vytvořeny, aby byly striktně přesné a aplikovatelné na každou situacireálného světa. Jejich účelem je jednodušší vysvětlení a pochopení textu. Na základě zkušeností z praxe se v knize používá značné množství anglických pojmů, které se nepřekládají. Hlavním důvodem je zachování významu slov v kontextu probíranéproblematiky. Dalším důvodem je možnost vyhledávání doplňujících informací v zahraničníliteratuře, přičemž zpětný překlad do angličtiny by nemusel být jednoduchý. Pro pobavení následuje příklad z praxe s nevhodným překladem: Během testování softwaru byl vznesen požadavek na ověření přítomnosti stopovacích koláčků. Tento požadavek zní poměrně vtipně, když nikde v okolí nejsou na stole žádné koláčky. Při hlubší analýze otázky je zřejmé, že má jít o ověřování tracking cookies ve webovém prohlížeči, které se používají ke sledování uživatelů. Dalším příkladem nevhodného překladu je v oblasti síťových komunikací přepínač CISCO. Ne každý si dokáže představit, co toto zařízení dělá. Na druhou stranu, když se zmíníCISCO switch, většina lidí z oboru (dokonce i netechnických) si dokáže představit, o co se jedná, a diskuze může plynule pokračovat dále.

Upozornění: Při realizaci jednotlivých zapojení uvedených v knize je potřeba dodržovat zásady

bezpečnosti práce s elektronickými zařízeními. Vždy si důsledně zkontrolujte zapojení celéhoobvodu před jeho připojením k napětí.

KAPITOLA 1

Seznamte se,

Arduino

Talentovaný zasáhne cíl, který jiní zasáhnoutnedokáží. Génius zasáhne cíl, který jiní nevidí.

– Arthur Schopenhauer

Motivace

První kapitola se věnuje seznámení s Arduinem. Jeho příběh je zajímavý a turbulentní. Od

tématu diplomové práce k milionovému byznysu vede dlouhá cesta, která ukrývá tvrdoupráci, lidské osudy, úspěchy a zklamání. Zakladatelé žijí aktivním elektronickým sociálnímživotem, aktivně blogují a přispívají do komunit. Odtud se dá získat většina aktuálních informací.

Od úvodního seznámení se přechází dále k práci s Arduinem. Krátké zamyšlení jevěnováno otázkám, proč by si měl člověk pro svůj projekt vybrat právě Arduino, a naopak proč ne.

Odkud má získávat informace, podporu, návody, řešení problémů a inspiraci pro projekty.

Pro zajímavost jsou v kapitole zmíněny oblasti jako hardware hacking či reverzní inženýrství,

jelikož jde o oblasti úzce související s hobby projekty, snahou o vylepšení či úpravu existujících

zařízení. Závěr kapitoly se věnuje úvodu do problematiky vývoje řešení.

Arduino

Arduino je fenoménem posledních let. V období 2005–2013 se prodalo 700 000 oficiálníchzařízení Arduino. Na trhu Open-source Hardware market (OSHW), kde Arduino působí, se do

roku 2011 dostalo mezi TOP 13 společností. Získaný podíl trhu se odhaduje na 3–7 %. Roční

příjem se v roce 2013 pohyboval na úrovni jednoho milionu dolarů.

Arduino samo o sobě nepřináší na trh nic nového. Mikroprocesory, breadboard desky,propojení spínačů, LED diod, různých aktivních a pasivních součástek, to všechno tu bylo už dávno

předtím. Dokumentace k jednotlivým mikroprocesorům, schémata zapojení, programovací

V této kapitole se dozvíte o:

„ Historii Arduina

„ Výhodách a nevýhodách

Arduina

„ Iniciativě Open-source

„ Licenčních podmínkách

„ Arduino komunitách

a portálech

„ Hackingu a reverzním

inženýrství

„ Vývoji technického řešení

Kapitola 1 Seznamte se, Arduino

rozhraní nebo platformy jako BASIC Stamp 1 tu už byly o desítky let dříve. Arduino desky,

dokumentace API, knihovny, frameworky, IDE, to všechno se podobá starším řešením, která

existují již desítky let.

Čím je tedy Arduino výjimečné, že se mu tak daří? Platforma Arduino je založena na sociální

inovaci. Prostřednictvím silného marketingu se podařilo vytvořit komunitu lidí, kteří semohou prostřednictvím jednoduchého a srozumitelného vývojového prostředí dostatk programování mikroprocesorů bez nutnosti studovat složitou architekturu a logiku programování

celého systému. Došlo ke zjednodušení programování mikrokontrolérů prostřednictvím IDE,

které se stará o všechno na pozadí bez nutnosti zásahu uživatele.

Poznámka: Pro porovnání, například instalace bootloaderu na mikroprocesor (viz část věnovanou

bootloaderu) je poměrně komplikovaná a vyžaduje relativně složité a opatrné nastavování registrů.

Tvůrci Arduina se zaměřili na mladé studenty, designéry a lidi z netechnicky orientovaných

profesí, kteří mají minimální nebo žádné zkušenosti s programováním hardwaru. Arduino je

platforma, která umožnuje se za jeden večer od nulových zkušeností a znalostí dostatk blikajícím diodám ovládaným mikroprocesorem.

Historie Arduina

Příběh Arduina se začal psát v  roce 2003, kdy student Hernando Barragán pracoval na své

diplomové práci na fakultě Interaction Design Institute Ivrea (IDII) v Itálii. Cílem práce bylo

ulehčení práce umělcům a  designérům pracujícím s  elektronikou. Umělcům a  designérům

mělo být ulehčeno od technických aspektů programování mikroprocesorů a mohli se takvěnovat svému primárnímu cíli – designu a umění.

Mezi základní požadavky na vytvořenou platformu patřilo:

„ Jednoduché integrované vývojové prostředí (IDE) založené na jazyku Processing

(processing.org)

„ IDE funkční na systémech Microsoft Windows, Mac OS X a Linux, s jednoduchýmeditorem, určené k vytvoření softwarového programu

„ Jednoduchý programovací „jazyk“ nebo „framework“ pro mikroprocesory

„ Kompletní integrace nástrojů (transparentní pro uživatele)

„ Bootloader pro snadné nahrávání programů

„ Serial Monitor na kontrolu a odesílání dat z/do mikroprocesoru

„ Open-source software

„ Open-source hardware návrhy založené na mikroprocesorech Atmel

„ Komplexní online reference příkazů a knihoven, příklady, tutoriály, fóra a ukázky projektů

Poznámka: Části s open-source požadavky jsou důležité pro další pokračování příběhu Arduina.


Arduino

17

Diplomovou práci vedli Massimo Banzi a Casey Reas. Výstupem diplomové práce bylo zařízení

s označením Wiring, které Hernando vytvořil prostřednictvím několika prototypů s různými

verzemi mikroprocesoru.

Obrázek 1.1: Třetí prototyp zařízení Wiring

Hernando absolvoval v  roce 2004 studium s  vyznamenáním. V  průběhu let 2003–2005 se

dokonce finální verze zařízení Wiring prodávala přes internet do celého světa. Zde aleplatforma Wiring končí.

V roce 2005 se od komercializovaného projektu Wiring odpojili Massimo Banzi a David Mellis,

kteří založili vlastní projekt s názvem Arduino. Jako hlavní realizátoři projektu jsou uváděni

Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino a David Mellis. Hernando nebyl

součástí nového týmu, nebyl do něho ani přizván. Avšak jeho podklady posloužily k dalšímu

vývoji a komercializaci projektu Arduino.

Poznámka: Název Arduino vznikl podle místního baru, kde se zakladatelé projektu setkávali. Bar

nesl jméno podle italského hraběte, jenž se později stal italským králem. V letech 2008–2014 se kvůli interním sporům zakladatelů projekt Arduino rozdělil na dvě větve: Arduino SRL a Arduino LLC. Zakladatelé se rozdělili na dvě skupiny, které udržují projekt naživu (www.arduino.cc, který vlastní Arduino LLC, a www.arduino.org, který udržuje Arduino SRL). Vzhledem k  problémům s  registrací komerčního názvu Arduino (který drží v  Evropě společnost Arduino SRL) vznikl nový komerční název Genuino pro trh mimo USA, kterývlastní Arduino LLC, přičemž v USA se tento produkt označuje jako Arduino. Vždy se ale jedná o stejný projekt a produkt.

Kapitola 1 Seznamte se, Arduino

Poznámka: Bez ohledu na to, kdo vlastní práva pro komerční název, budou v knize nadálepoužívány názvy Arduino, i když se bude jednat o produkty, služby nebo informace primárně odspolečnosti Arduino LLC, ale využívané na území EU (mimo USA).

Shrnutí

Arduino je stále živý projekt, jeho pokračování je tedy otevřeným příběhem. Každopádně bude

sledování dalšího životního cyklu této velmi populární platformy zajímavé.

Licenční podmínky Arduina

K produktům značky Arduino se váží licenční podmínky, s nimiž je vhodné se předpoužíváním seznámit. Ve stručnosti najdete níže několik nejdůležitějších bodů, které byste měli znát:

„ Arduino není možné používat tam, kde bezpečnost představuje kritický aspektfunkcionality. To znamená, kde na funkcionalitě, stabilitě a bezpečnosti systému závisí lidské

životy či zdraví uživatelů. Typickým příkladem jsou zdravotnické, letecké, energetické či

vojenské systémy a zařízení. Je pravdou, že Arduino by se za žádných okolností nemělo

dostat do podobných aplikací, jelikož na systémy z  daných oblastí se kladou enormně

vysoké technické požadavky.

„ Zakoupením produktů Arduino na sebe uživatel bere zodpovědnost za dodržovánílegislativních, bezpečnostních a regulačních požadavků, které jsou aktuálně platné v dané

zemi používání.

„ Při integraci Arduina do komerčního řešení se nemusí zveřejnit design a logika řešení.

„ Využívání a modifikace jádra Arduina a knihoven vyžaduje zachování licenčníchpodmínek LGPL.

„ Při využití diagramů desky k vytvoření nového komerčního produktu je nezbytné, abyzůstaly zachovány současné licenční podmínky Creative Commons Attribution Share-Alike.

„ Úprava a komerční redistribuce Arduino IDE není možná.

Poznámka: Pro podrobnější vysvětlení či aktuální verzi podmínek je vhodné prostudovat originální

podmínky EULA, záruční podmínky a FAQ, kde bývají nejdůležitější otázky vysvětleny zjednodušeně.

Iniciativa Open-source

Open-source hardware (OSH) představuje podobnou ideologii jako open-source software

(OSS). U OSS se sdílí kód softwarového řešení. U OSH jsou volně dostupné všechnypodklady potřebné k designu a výrobě vlastního hardwaru. Jedná se například o mechanickévýkresy, schémata, kusovníky, vrstvy desek plošných spojů, zdrojový kód HDL či data o rozvržení

součástek.


Arduino – ano, nebo ne?

19

Jednou z myšlenek Arduina bylo, aby lidé mohli studovat a vylepšovat hardware a ten dále

sdílet s ostatními. Proto tvůrci zpřístupnili pod licencí Creative Commons AttributionShare-Alike (CCAS-A) všechny soubory vytvořené při vývoji Arduina.

Licence CCAS-A umožňuje fyzickým a právnickým osobám upravovat a vydávat hardware

na základě získaných podkladů za podmínky odkazování na původního tvůrce a zachování

licencování. V krátkosti by se dalo shrnout, že licence Creative Commons AttributionShare-Alike umožňuje:

„ Sdílení: Umožňuje kopírovat a redistribuovat materiály na jakémkoliv médiua v jakémkoliv formátu.

„ Úprava: Umožňuje míchat, měnit, upravit materiály za jakýmkoliv účelem včetně

komerčního.

„ Odkazování: Při tvorbě řešení je nezbytné odkázat se na použité licencování a  uvést

provedené změny.

„ Zachování: Při úpravě, změně nebo vybudování řešení je nutné zachovat původní

licencování.

„ Další omezení: Aplikováním právní legislativy nebo technických opatření nelze omezovat

ostatní vývojáře v tom, co jim umožňuje licence.

„ Odvolání: Licenční podmínky není možné odvolat. Plné znění licence CCAS-A  v3.0 najdete na portálu Creativecommons.org (https:// creativecommons.org/licenses/by-sa/3.0/legalcode). Hlavní konkurenční výhoda této platformy je postavena na ceně, relativní jednoduchostiproojení s periferiemi a jednoduchém programovacím jazyku. Arduino Software IDE jeprogramovací prostředí, v němž lze tvořit programový kód k ovládání Arduina. IDE je taktéždistribuováno pod licencí open-source. Konkrétně pro prostředí Java je IDE vydané pod licencí GPL a pro C/C++ pod licencí LGPL. Arduino – ano, nebo ne? Jako všechno na světe má i Arduino své výhody a nevýhody z hlediska používání a vhodnosti či nevhodnosti pro řešení. Proč ano... Několik důvodů, proč si pro hobby projekt vybrat právě Arduino:

„ Relativně nízká cena a dostupnost v porovnání s komerčními či průmyslovými řešeními

(například PLC systémy či mikroprocesorové desky typu AVRPLC16). U hobby projektů

ve většině případů rozhoduje cena.

„ Široká podpora komunity, kterou tvoří nadšenci, často i lidé z praxe s technickýmvzděláním a několikaletými profesními zkušenostmi.


20

Kapitola 1 Seznamte se, Arduino

„ Open-source projekt, volně dostupné IDE, schémata, diagramy.

„ Produkty, které využívají volně dostupné designové informace, se snaží přinést nové a lepší

řešení, jež by zaujalo elektronické nadšence. „ Dostupnost různých modulů a flexibilita umožňující vytvořit téměř jakékoliv řešení. „ Připojitelnost a  programovatelnost přes USB. Nevyžaduje programátor a  znalosti jeho

používání. „ Snadná dostupnost informací, návodů, schémat, zdrojových kódů. „ Relativně krátká doba vývoje funkčního řešení. Vhodné k  tvorbě prototypů či

proof-of-concept. „ Skvělá platforma k výuce na školách. „ Vhodný prostředek pro hackery, kteří rádi vylepšují a tvoří.

Proč ne...

I přes značnou popularitu Arduina existuje několik důvodů, proč tato platforma není vhodná

k výuce či komerčním aplikacím.

„ Z pohledu vývoje komerčních produktů, které se mají distribuovat, udržovat a servisovat,

není tato platforma příliš vhodná a to hlavně kvůli krátkému životnímu cyklu produktů.

S  příchodem nového modelu přijde stará deska za rok či dva o  podporu a dostupnost

na trhu. „ Podobná situace panuje i v případě shieldů, které přestanou být dostupné a přijdouo podoru. S  tím souvisí i  podpora knihoven a  ovladačů, které převážně vytváří komunita

nadšenců. „ Arduino neposkytuje právě nejlepší vstup do světa programování, obzvlášť prosamouky. Uživatel může získat chybné návyky a konvence tvorby kódu, které se budou později

přenášet i do dalšího kódu. Diskusní fóra, literatura či tutoriály příliš neřeší tento aspekt

práce, což se v konečném důsledku může projevit v nízké kvalitě výsledků. Získánísolidních základů vyžaduje kvalitní vedení zkušeným člověkem. „ Hotová řešení stažená z internetu často postrádají komentovaný kód, funkce nejsoudostatečně odladěny ani optimalizovány. Bývají funkční pro určité verze IDE a revizeshieldů. (Kód funkční na rev. 2 s největší pravděpodobností nebude fungovat na rev. 3). Po

zveřejnění se kód většinou už neupravuje ani neudržuje. „ Použitím kódu stylem Ctrl+C a Ctrl+V začátečník kódu neporozumí, stejně jakoprincipům jeho fungování. Nemá tedy žádoucí pedagogický efekt. „ Při vývoji komerčních IT/SW/HW projektů se využívá sofistikovaná správa verzía sledování pokroku či ladění chyb. Arduino IDE nabízí jen základní možnosti pro domácí

uživatele, což je vzhledem k ceně (zdarma) pochopitelné. Mnoho nadšenců, kteří to myslí

s programováním seriózně, využívá GitHub jako nástroj ke správě verzí. „ Komerční aplikace často vyžadují certifikaci ke splnění náročných požadavků. Obzvlášť

v životně důležitých aplikacích, jako jsou vojenské, letecké či medicínské přístroje, není

Produktová řada

21

Arduino ani jiný spotřebitelský produkt (Raspberry Pi, Parallella Board) použitelný.Certifikace je cenově a technicky náročný proces, který se u produktů s krátkým životním

cyklem nevyplatí.

„ Při masové produkci je jednoduché objednat mikroprocesory v tisících a připravitsériovou výrobu. Objednání Arduina v tisícových kusech není snadné ani levné.

„ Platforma (v současnosti) nenabízí například možnost nasazení šifrovacích protokolů či

jiných bezpečnostních mechanismů. Na bezpečnost se přitom v komerční praxi kladou

stále vyšší nároky.

„ Nevýhodou může být cena a dostupnost oficiálních modulů, které jsou často dražšía bývají rychle vyprodané. Alternativou jsou shieldy a moduly od jiných (například čínských)

výrobců či komunit. Problémem však bývá kompatibilita s jinými moduly či zařízeními,

ovladače či zdrojové kódy, které je často potřeba značně ladit a přizpůsobovat. Shrnutí Arduino je platforma vhodná pro umělce a designéry, kteří využívají elektroniku při svékreativní činnosti. Dále je velmi vhodná pro hobby projekty a nadšence z oblasti elektroniky,programátory, kteří si chtějí v domácích podmínkách a cenově rozumných relacích vytvořit svůj jednoduchý elektronický projekt. Platforma se hodí k rychlému prototypování a výrobě proof-of-concept řešení, která je možné následně použít k prezentačním účelům potenciálním investorům či zákazníkům. Nehodí se příliš k tvorbě konečných produktů, které se budou vyrábět sériově a distribuovat zákazníkům. Jako výuková pomůcka představuje Arduino velmi dobrý prostředek vzhledem ke své ceně, dostupnosti a relativní jednoduchosti programování. Výuka ale vyžaduje zkušeného učitele, který dokáže při vysvětlování propojit Arduino s reálným světem a požadavky, které sekladou na komerční řešení. Systémoví inženýři, kteří se zabývají vývojem embedded zařízení, nejsou velkými příznivci této platformy, jelikož celý systém přidává novou vrstvu mezi inženýra a hardwarea omezuje možnosti, jimiž je možné z hardwaru vytěžit maximum. Skeptické názory a náladu navíc podporuje i to, že Arduino z technického hlediska nepřináší nic nového. Produktová řada Arduino je komerční produkt určený pro koncového spotřebitele. Proto má i  velmi krátký životní cyklus. Od roku 2005 prošlo Arduino velmi rychlým vývojem, řadou revizí, nových verzí, různých vylepšení a obměněnými mikrokontroléry. V době psaní knihy bylo na trhu dostupných celkem 21 verzí Arduina. Při výběru vhodného modelu Arduina je rozhodujících několik faktorů, jako jsou například rozměry desky, počet připojitelných analogových a digitálních vstupně-výstupních pinů, velikost paměti, rychlost

22

Kapitola 1 Seznamte se, Arduino

mikroprocesoru či možnosti rozšíření o externí shieldy. Lepší přehled o konfiguracíchaktu

álně dostupných verzí Arduina získáte na stránkách projektu.

Jedním z bodů, které mohou ovlivnit výběr desky, je i velikost projektu a s tím související délka

vytvořeného kódu. Na diskuzním fóru (forum.arduino.cc) najdete několik desítek příspěvků,

kde začátečníci žádají o rady při výběru vhodné desky.

Obrázek 1.2: Arduino Mega

Rozšiřující moduly

Arduino nabízí značné možnosti rozšíření funkcionality o externí moduly. Moduly navržené

a označené logem Arduino se označují jako shieldy. Na trhu existuje mnoho shieldův podo

bě snímačů, konvertorů mezi komunikačními protokoly či rozhraními od různých výrobců

v odlišných cenových kategoriích. Mnoho modulů jiných značek (Sparkfun, Adafruit) setes

tuje a jsou oficiálně podporovány. Jejich prodej je často zprostředkován i z oficiálních stránek

projektu Arduino.

Tip: Před zakoupením jakéhokoliv externího modulu ověřte dostupnost řídicího programu.Sa

motná dostupnost však nezaručuje jeho funkcionalitu a kompatibilitu s používanou verzí Arduina.

Kde koupit Arduino

Arduino a jednotlivé externí moduly je možné zakoupit téměř v každém internetovémob

chodě zabývajícím se elektronikou či hobby oblastí. Při zadání slova Arduino do vyhledávače

se na prvních pozicích zobrazují obchody, kde můžete zakoupit všechno potřebné pro hobby

projekt. Otázkou zůstává už jen cena, skladové zásoby a doba dodání.

Alternativní řešení

23

Alternativní řešení

Na seriózní, ale i hobby vývoj embedded řešení se často z technického hlediska více hodízaří

zení od výrobců mikroprocesorů a elektronických součástek jako NXP, ARM, Atmel neboMi

kroelektronika. Produkty mají k dispozici velmi detailní a kvalitní dokumentaci, širokou škálu

nástrojů umožňující pokročilé programování, kompilaci a debuggování na profesionální úrovni.

Obrázek 1.3: Vývojová deska Mikroe PLC

Emulátor Arduina

S Arduinem se můžete seznámit i bez fyzické desky. Existuje několik virtuálních emulátorů

a simulátorů, které virtualizují část funkcionality. Vždy se jedná jen o emulaci funkcionality

reálné desky, což se projevuje v omezených možnostech v porovnání s reálnou deskou.

Při práci s virtualizovaným nástrojem navíc člověk přichází o fyzický kontakt s hardwarem.

V některých případech se ale možnost emulace hodí, obzvlášť při cestování, kde



       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2018 - ABZ ABZ knihy, a.s. TOPlist