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

je prázdný
a
b

E-kniha: Arduino - Matúš Selecký

Arduino
-6%
sleva

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í ...
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  199 Kč 187
+
-
6,2
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

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.

(uživatelská příručka)

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 5 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 6 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 7 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 8 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 9 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 10 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 styku s 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ů, technický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ých pří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í) problematiku 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ě takzvaný „big picture“. Technická literatura je už v době svého psaní poměrně neaktuální, jelikož proces tvorby knihy 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ěk potřebuje. 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ýto problém profesionálové v praxi? Co všechno by mělo mít kvalitní softwarové a hardwarové řešení? 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ít i vysvě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 modelem Publisher-Subscriber. Prozkoumáte rovněž mnoho jiných zajímavých oblastí souvisejících s vývojem embedded 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ý obsahuje zklamání, kopírování nápadů a interní spory mezi zakladateli projektu. Po úvodu následuje krátké 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řístupy 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í model Publisher-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ů či matematické 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ích typografický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 jsou zvý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); } 14 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 situaci reá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ého obvodu před jeho připojením k napětí. 15 KAPITOLA 1 Seznamte se, Arduino Talentovaný zasáhne cíl, který jiní zasáhnout nedokáží. 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á tvrdou prá - 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í je vě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ích zaří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í 16 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ří se mo - hou prostřednictvím jednoduchého a srozumitelného vývojového prostředí dostat k 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í dostat k blika - jí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 tak vě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ým editorem, 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 ale plat - forma 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. 18 Kapitola 1 Seznamte se, Arduino Poznámka: Bez ohledu na to, kdo vlastní práva pro komerční název, budou v knize nadále používány názvy Arduino, i když se bude jednat o produkty, služby nebo informace primárně od společ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řed použí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ý aspekt funkcionality. 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ích podmínek LGPL. „ Při využití diagramů desky k vytvoření nového komerčního produktu je nezbytné, aby zů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šechny podkla - dy 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 Attribution Share-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 Attribution Share - -Alike umožňuje: „ Sdílení: Umožňuje kopírovat a redistribuovat materiály na jakémkoliv médiu a 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í jednoduchosti pro - pojení s periferiemi a jednoduchém programovacím jazyku. Arduino Software IDE je programovací 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ým vzdě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řijdou o podporu. 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ášť pro samouky. 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 nejsou dostatečně odladěny ani optimalizovány. Bývají funkční pro určité verze IDE a revize shieldů. (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ě jako principů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ý. Cer - tifikace 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řipravit sé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é se kladou 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 hardware a 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ích aktu - á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) se testuje 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. Samotná 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ém ob - 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 nebo Mikroelektronika. 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 funk


       
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