Obsah:
Platformy Arduino a Raspberry Pi jsou dva velmi oblíbené ekosystémy pro elektroniky po celém světě. Používají je jak amatéři a studenti, tak i profesionálové, kteří potřebují rychlou a pohodlnou platformu pro stavbu prototypů nebo testování určitých obvodů a/nebo softwarových konceptů.
Ukazuje se, že obě desky mohou pracovat… společně, v rámci jednoho projektu; navíc promyšlená koncepce umožňuje rozdělit daný systém na vysokoúrovňové funkcionality, podporované Raspberry Pi a nízkoúrovňové, zodpovědné za ovládání výkonných zařízení a čtení dat ze senzorů, které má na starosti deska Arduino. V tomto článku se na tyto typy řešení podíváme blíže.
Master-slave, hierarchický projekt s Arduino a Raspberry Pi
Hlavní otázkou, kterou je třeba zvážit, je konfigurace, v níž mají obě desky pracovat. Nejběžnějším řešením se zdá být hierarchická verze, často označovaná jako master-slave. Master, neboli podřízená deska, je zodpovědná za generování příkazů, kterými instruuje podřízenou desku, neboli slave, k provedení určitých operací. Může se jednat o čtení dat z analogového vstupu, jednoduchou komunikaci se senzorem pomocí SPI, I2C nebo jiného protokolu nebo o řízení součástky, např. aktivaci relé nebo nastavení rychlosti a směru motoru. V systémech master-slave je důležité pečlivě promyslet, která součástka (deska) je pro daný typ úlohy vhodnější.
Jako jednodeskový počítač s poměrně vysokým výpočetním výkonem zvládne Raspberry Pi i pokročilou grafiku, kvalitní záznam a přehrávání zvuku nebo snímání kamerou v reálném čase. Není však příliš vhodný pro vysokorychlostní operace, které vyžadují tzv. vysokou dostupnost, tj. práci v režimu reálného času. Jako příklad můžeme použít polohování motorů, které pohánějí např. robotické rameno: je obtížné si dovolit, aby řídicí jednotka takového ramene při provádění některých manipulací musela čekat, dokud systém neprovede jiné operace, a teprve poté načítala údaje ze snímače nebo koncových spínačů. Proto je pro nízkoúrovňové operace nejvhodnější deska Arduino, která dokáže podobné úlohy provádět velmi rychle, bez zbytečných prodlev, které jsou tak typické pro operační systémy vyšší úrovně.
Technické detaily aneb jak připojit Arduino k Raspberry Pi
Nejlepším způsobem připojení Arduino k minipočítači Raspberry Pi je použití sériového spojení UART. Umožňuje použití komunikace v režimu sériového portu, který je snadno podporován nativními ovladači obou platforem. Po hardwarové stránce je možné použít virtuální ovladače sériového portu, které jsou již přítomny v operačním systému Raspberry Pi a které komunikují se zařízením připojeným přes jeden z portů USB. Deska Arduino však podporuje vestavěný převodník UART ↔ USB jako … jednoduché asynchronní spojení. Tento přístup poskytuje velmi efektivní využití portů GPIO na jedné i druhé desce, protože nevyžaduje zapojení žádných dalších portů Raspberry – takže v podstatě celý 40pinový goldpin zůstává volný pro jiné účely. Na druhou stranu Arduino stejně využívá pouze 2 linky, které se fyzicky připojují k převodníku portů USB.
Software pro přenos Raspberry Pi ↔ Arduino
Fyzické propojení mezi oběma deskami jsme již provedli a také jsme zajistili napájení (pokud je to nutné, protože Arduino lze napájet z portu USB počítače Raspberry Pi, samozřejmě po ujištění, že takové připojení spolu s dalšími zařízeními připojenými k minipočítači nepřekračuje přípustnou zátěž jednoho portu RPi). Poslední důležitou otázkou pak zůstává software čipu – na výběr jsou dvě cesty. První z nich je použití hotové knihovny, což výrazně sníží nároky na programování – cestou druhou je naopak implementace vlastního protokolu, zahrnujícího jak vzory příkazů odesílaných z Raspberry Pi do Arduino, tak hodnoty nebo potvrzení vrácené přes Arduino.
Stojí za to zvážit použití první cesty, protože existuje knihovna Firmata speciálně pro tento účel, která je standardně implementována v prostředí Arduino IDE. Najdete ji v příkladech programování rozbalením nabídky Soubor → Příklady → Firmata a výběrem jednoho z tam prezentovaných skečů, například StandardFirmata. Kromě toho je k dispozici knihovna pro jazyk Python s názvem pyFirmata, která podporuje tento protokol (určený právě pro propojení zařízení založených na mikrokontroléru se softwarem nainstalovaným v počítači). Jedná se o další řešení určené k použití “off-the-shelf”, tj. bez nutnosti implementovat protokol na straně minipočítače.
Jak hodnotíte tento článek na blogu?
Klikněte na hvězdičku a ohodnoťte!
Průměrné hodnocení 4.7 / 5. Počet hlasů 7
Zatím nejsou žádné hlasy! Buďte první, kdo ohodnotí tento článek.
















