Arduino: s jednočipem na internet

1. 7. 2010
Doba čtení: 5 minut

Sdílet

Zajímá vás Internet věcí? Chcete si zkusit vlastníma rukama sestavit a naprogramovat zařízení, které bude připojené na internet? Zajímají vás jednočipové počítače a nebojíte se vzít do ruky drát? Právě pro vás je určen nový seriál, v němž si pohrajeme s kitem Arduino a připojíme jej na internet.

Na rovinu přiznáváme, že pojem internet věcí (Internet of Things, viz též článek na Lupě) považujeme za jeden z nejpodivnějších a nejvíc zavádějících hype termínů poslední doby. Ale jak už to s podobnými termíny chodí: lepší nemáme! Takže se jej podržíme i my.

V seriálu, který nese název „Na internet s Arduinem“, se seznámíme, jak už název napovídá, s vývojovým kitem Arduino, a naučíme se připojit jej k internetu, ať už v roli serveru, nebo jako klientské zařízení. Získáme tak nezbytné základy pro vyvíjení vlastních Internet Things, tedy věcí, které dokáží komunikovat přes internet s člověkem nebo s dalšími věcmi.

Není to nijak náročné a pro úplný začátek nám postačí dvě destičky, pár drátů (já používám „rozmotané“ UTP – pozn.aut.) a nepájivé kontaktní pole (klidně to nejmenší), které seženete v každé prodejně pro elektrokutily, leckdy i pro modeláře. Pokud ne, použijte některý z e-shopů, pravděpodobně vždy uspějete u firem GME, TME a PSElectronic. A když už budete na nákupu, vhoďte si do košíku pár LED, tlačítko, termistor, fotoodpor – v úvodních lekcích si s nimi pohrajeme.

Arduino

Arduino a Ethernet Shield
Foto: Autor

Arduino

Kit Arduino není třeba čtenářům Roota představovat – už před časem jsme o tomto kitu psali v článku Vývojový kit pro hrátky s hardware. Všechny podstatné informace o tomto kitu jsou shrnuty v odkazovaném článku, takže si jeho schopnosti představíme jen stručně.

Arduino (verze Duemilanove) je vývojový kit, navržený italskými vývojáři, který obsahuje jednočipový počítač (jednočip, též mikrokontrolér – MCU) ATMega328. Tento MCU vyrábí společnost Atmel z Norska a jedná se o procesor s architekturou AVR (osmibitový RISC, harvardská architektura). ATMega328 obsahuje 32kB FLASH (paměť pro program), 2kB statické RAM pro data, 1kB EEPROM pro ukládání nonvolatilních dat (tato paměť není při vypnutí napájení smazána) a osmikanálový desetibitový A/D převodník. Dále obsahuje některé systémové periferie, jako jsou časovače či přerušovací subsystém. Tento MCU dokáže při taktu 20 MHz provádět až 20MIPS – většina instrukcí totiž trvá právě jeden takt hodin.

Arduino a Ethernet Shield
Foto: Autor

Arduino

V porovnání s několikasetmegahertzovými procesory ARM8, ARM9, které pohání dnešní routery, telefony (a možná i některé inteligentnější pračky), je výkon MCU v Arduinu téměř směšný, přesto však není na místě jej podceňovat. Uvědomme si, že jeho výkon je stále několikanásobkem výkonu starých osmibitových počítačů – a přitom s nimi šikovní programátoři dokázali neuvěřitelné věci. A stejně tak i s jednočipovými počítači lze dokázat velmi zajímavé věci. Dokonce by se dalo říct, že omezené možnosti podporují programátorské schopnosti, protože nutí programátory přemýšlet a hledat řešení, namísto pohodlného přístupu „nějak to naprogramujeme, a když to bude pomalé, koupíme rychlejší železo“.

Ethernet shield

Arduino a Ethernet Shield
Foto: Autor

Arduino a Ethernet Shield

Příčin, které mohou za to, že se Arduino stalo hitem mezi zájemci o jednočipy, je hned několik. Zaprvé je to otevřená architektura, takže si každý může postavit kompatibilní zařízení, upravit si zapojení, změnit či přidat vybavení, takže vznikla spousta více či méně kompatibilních klonů (které jen nesmí používat název Arduino, takže se můžeme setkat s desítkami různých desek a zařízení, které mají ve jménu jen onen základ „-duino“).

Zadruhé je k Arduinu dodávané poměrně přívětivé IDE, které je napsané v Javě a funguje na všech operačních systémech. Samosebou s otevřeným kódem. No a třetí věc, která je u Arduina téměř „killer feature“, je schopnost připojovat k Arduinům doplňkové desky, zvané shieldy, které se připojí na sběrnici Arduina a nabízí nějakou rozšiřující funkci. Motor Shield umožňí ovládání stejnosměrného motoru a XBee zase promění Arduino na ZigBee zařízení schopné bezdrátové komunikace. Takových shieldů lze připojit víc najednou.

Pro náš záměr, tedy vytváření věcí připojených k internetu, zvolíme Ethernet Shield. Jak už název napovídá, obsahuje Ethernet řadič, ale nečekejte 3COM ani Realtek nebo CS8900, známé ze síťových karet – základem je WIZnet W5100 čip, jehož nespornou výhodou pro tento druh aplikací je integrace IP stacku pro UDP i TCP a podporuje až čtyři otevřené sockety. Na procesor pak zbývá jen to zábavné. Pomocí čtyř signálů předává Arduino síťovému řadiči pokyny a čte jeho odpovědi.

A proč to dělat?

Ještě než se pustíme do práce, musíme si odpovědět na jednu otázku: Proč? Jaký má smysl hrát si se zařízením za zhruba 2000 Kč a postavit z něj věc, která dělá něco, co zvládne stořádkový program na tom nejpomalejším počítači, který seženete „za pivo“? Jaký smysl má stavět si digitální teploměr, co vám ukáže teplotu v místnosti přes web, když si můžete to samé zařídit s levným počítačem, nebo dokonce koupit hotové? Pokud si kladete takové otázky a nenacházíte na ně odpověď, tak tento seriál nebude pro vás. Tento seriál je pro lidi, co v podobné činnosti nehledají přímý praktický význam, ale spíš příležitost naučit se něco nového, pohrát si se zajímavým zařízením nebo si prostě jen tak zablbnout. Tedy pro hravé lidi s fantazií – a těch je, jak doufáme, mezi čtenáři Roota dostatek.

Arduino a Ethernet Shield
Foto: Autor

Arduino a Ethernet Shield

Protože nás to baví!

V tuto chvíli tedy nastal nejlepší čas na nákup potřebného vybavení. Zakrátko se opět na těchto stránkách sejdeme a povíme si, jak Arduino k počítači připojit (USB kabelem), jak spustit IDE a jak spustit první HELLO WORLD program. Takže doporučuji zájemcům, kteří si budou chtít naše zapojení a praktické příklady rovnou vyzkoušet, aby se obrátili na prodejce Arduin, kterých je, podle posledních informací, v ČR několik, např. Czechduino (který se specializuje výhradně na Arduino a věci s ním spojené) nebo Snail Instruments. Oba obchody mají v nabídce Arduino Duemilanove i Ethernet Shield, doporučujeme zakoupit obojí najednou, vyjde vás to na 1600–2000 Kč podle obchodu (a dnešních cen).

bitcoin_skoleni

Příště si nedočkavě zapojíme Arduino k počítači, stáhneme si IDE, zkusíme si rozblikat světýlko a ukážeme si, v jakém jazyce se Arduino vlastně programuje. A pokud bude zájem, rozdáme si i domácí úkoly!

Doufáme, že se vám bude seriál líbit a uvítáme připomínky i dobré nápady, co bychom mohli zkusit s Arduinem udělat…

Děkujeme provozovateli obchodu Czechduino za laskavé zapůjčení Arduina a Ethernet Shieldu pro účely testování a psaní tohoto článku.

Autor článku

Martin Malý je autorem serveru Bloguje, mikroblogu Teidu či služby pro zkracování odkazů Jdem.cz. Vedl také magazín Zdroják.