- Napsal(a) Jan A. Novák
- Zveřejněno v Konstrukce
- velikost písma zmenšit velikost písma zvětšit velikost písma
- Tisk
Arduino - platforma pro stavitele dronů (2)
Když nechcete drony jen kupovat, užívat (a ztrácet), ale sami je vymýšlet a stavět na míru svých potřeb, nebo jen tak pro radost z tvoření, nejspíš se vám bude hodit vývojová platforma Arduino. Ale nejen pro drony: je to také skvělý úvod do světa robotiky a programování, tedy do světa budoucnosti - a přitom i pro naprosté laiky. V minulém díle seriálu jsme si řekli, o co se vlastně jedná, dnes vám budu vyprávět, jak jsem začal já.
Na první pohled to vypadá jednoduše: koupíte si pár součástek, o kterých jsme mluvili v minulém dílu seriálu, k tomu nějakou tu příručku - a tahle fáze zasvěcení do Arduina opravdu není problém, protože kromě specializovaných e-shopů se dají tyhle věci sehnat i v každém lepším obchodě s elektronickými součástkami. Stejně tak příručky, které najdete jak v papírové, tak i v elektronické podobě, nejen anglicky, ale i česky. Jenže dál už to zas tak úplně jednoduché není.
Příručky a stavebnice
Sice jsem absolvoval průmyslovku s elektrotechnickým zaměřením, ale protože to bylo v časech hluboce předdigitálních, považuji se spíš za laika. Takže jsem si ze všeho nejdřív pořídil příručku jménem Průvodce světem Arduina (Voda, Z., HW Kitchen, nakl. Martin Stříž, Bučovice 2017 - dá se stáhnout i v elektronické podobě zdarma zde) a pustil se do čtení.
První část nazvaná Seznámení s Arduinem vypadala velmi slibně, hlavně díky popisu a přehledu hardwaru pro Arduino. V další části věnované programování jsem se ale brzy začal ztrácet. Ne že by tam bylo něco špatně, ale autoři nějak zapomněli na své předchozí tvrzení, že píší pro začátečníky. Nepochybuji o tom, že z hlediska machrů to bylo napsáno skvěle - jenže machři příručky pro začátečníky většinou nepotřebují.
Takže jsem to zkusil jinak. Na trhu je několik Arduino stavebnic (říká se tomu Starter Kit) jak pro začátečníky, tak pro mírně pokročilé. Jejich filosofie spočívá v tom, že v jedné krabici najdete všechno pro své první Arduino projekty, takže neplatí případná námitka, že samostatně byste stejné součástky koupili podstatně levněji. Protože když říkám všechno, tak tím myslím nejen vývojové desky (obvykle Arduino UNO), pár nejzákladnějších periferií (přinejmenším LED a nějaký ten spínač), nepájivé pole (věc, co vypadá jako bílá čokoláda se spoustou dírek, do nichž můžete elektronické prvky strkat a různě propojovat, aniž byste se museli obtěžovat pájením), USB kabel pro spojení s počítačem - ale hlavně s především příručku obsahující návod na oživení desky, sestavení projektů, napsání a nahrání programů, včetně kompletních zdrojových kódů. Čas, který koupí Starter Kitu ušetříte, je k nezaplacení.
Vybral jsem si The Ardiuno Kit (Skill Level: Beginner), který na rozdíl od jiných začátečnických kitů sice taky začíná od prakticky nulové úrovně znalostí, ale jde docela daleko, takže obsahuje i servomotory, displeje a další prvky pro na tak úplně začátečnické projekty. Příručka je v angličtině, což by mi nemělo vadit, protože jazyk celkem ovládám - ovšem brzy se ukázalo, že k programování Arduina si musím přece jen rozšířit slovní zásobu o specializované výrazy. A teď přišla vhod i kniha Průvodce světem Arduina, protože porovnání anglického s českým textem mezery rychle zaplnilo.
Naštěstí anglická příručka byla k začátečníkům mnohem vstřícnější, než zmíněná česká, takže jsem se hned po otevření krabice mohl pustit do nejjednoduššího projektu. Ještě předtím jsem ale na internetu našel jinou českou příručku k programovacímu jazyku Arduina (Wiring), která je uživatelsky docela vlídná; v podobě pdf. ji najdete ke stažení tady.
Kdybyste se mě zeptali, kterou z těch knih si pro začátek pořídit, pak vás asi překvapím odpovědí: všechny tři (a možná i to je málo). Programování je dost jiný způsob myšlení, než jaký používáme v běžném životě a k jeho vysvětlování každý autor přistupuje trochu jinak. Někdy k pochopení stačí jeden pohled, ale někdy teprve víc pohledů podstatu problému objasní, což platí zejména v případech když jsme se během programování dostali do obtíží nebo na něčem nejasném zasekli.
Roboti pro každého
Arduino se programuje v jazyce Wiring, který tu podrobně popisovat nebudu, protože to celkem dostatečně dělají zmíněné příručky. Ale už jsme tu narazili na problém spočívající v tom, že je obvykle píší zkušení uživatelé, kteří na své začátky zapomněli, takže opomíjejí věci, které jim připadají trapně samozřejmé - ale začátečník se na nich může zaseknout.
Ze všeho nejdřív asi tedy nebude na škodu se podívat trochu hlouběji na to, v čem vlastně filosofie Arduina spočívá. Stojí na poměrně jednoduchých a hlavně levných deskách, které jsou v podstatě jednočipovými počítači. Mají jednak USB rozhraní pro připojení k počítači (a k napájení), ale hlavně velké množství pinů, které můžou fungovat jako vstupy nebo výstupy pro data z/do nejrůznějších periferií - od LED a spínačů až po různá čidla a motory. A protože jsme dronařský web, tak nesmíme zapomenout ani na to, že k těm periferiím pro Arduino patří i akcelerometry, magnetometry, přijímače GPS signálu, detektory překážek (ultrazvukové, infra i optické) nebo kamery (včetně kamerových senzorů pohybu).
Takže pokud budete vědět, jak to spojit a naprogramovat, můžete postavit dron, nebo jakéhokoliv robota. Stejně dobře jako propojit a naprogramovat spotřebiče v bytě, zařídit automatické ovládání prostředí ve skleníku nebo akváriu... robotizovat prakticky cokoliv, na co si vzpomenete. Přičemž to programování je základ všeho.
Abyste mohli programovat Arduino, musíte mít v počítači něco, čemu se říká IDE (Integrated Development Environment). Dá se to stáhnout z adres http://arduino.org nebo http://arduino.cc. Použil jsem druhou z nich a zatím nemám důvod ke stížnostem. Najdete tam dost užitečných věcí, včetně rad, co dělat, když se vám něco nedaří (teď nemyslím v lásce, nebo investování, ale v programování Arduina). Hlavně tam ale je něco jako pracovní plocha, na kterou zapisujete svůj program.
Slíbil jsem že jazykem Wiring se tu zabývat nebudu - a taky nebudu, ale několik obecných poznámek si neodpustím. Každý program pro Arduino má dvě základní části. První se jmenuje void setupu a v podstatě slouží k tomu, aby čip věděl, co má udělat po spuštění. Kromě jiného se tu obvykle také určí, který pin desky bude vstup a který výstup. Druhá část se jmenuje void loop a čipu ukládá, co má na výstupech dělat se vstupními daty. Tyto úkony se pak opakují až do vypnutí desky - proto loop.
Takže to by pro dnešek mohlo stačit - a v příštím díle seriálu budu vyprávět, jak konkrétně jsem (krok za krokem) zrealizoval několik prvních nejjednodušších Arduino projektů. Protože už Albert Einstein řekl, že nejlepší výchova je osobním příkladem - nelze-li jinak, alespoň odstrašujícím.
Jan A. Novák
NÁSLEDUJÍCÍ DÍL SERIÁLU
Jan A. Novák
Publicista a fotograf, který se od dětství snaží fotit to, co většina běžných lidí nemůže vidět. Drony ho tedy nemohly minout.
Internetová stránka: www.novakoviny.eu