Zápisník experimentátora
Hierarchy: Orange Pi
V předchozím článku o Orange Pi Zero jsme si ukázali ovládání GPIO pinů pomocí knihovny WiringOP. Na jednoduché činnosti vám tato knihovna poslouží dobře, ale při komplikovanějších projektech byste se potrápili, pokud byste všechno odladili. Pokud máte k dispozici Arduino, můžete jej připojit do USB portu a využívat jeho možnosti. Pro Arduino byly napsány knihovny pro každý integrovaný obvod, na který si vzpomenete. Zbývá vám proto pouze vyřešení jediného problému. Jak s Arduinem komunikovat.
Budeme potřebovat tyto komponenty:
Na obrázku vidíte v levém dolním rohu USB port. Do něj připojte libovolné Arduino. Arduino se automaticky objeví v seznamu sériových portů. Můžete si to ověřit příkazem ls /dev/ttyA*
. Pokud máte v Arduinu program, který komunikuje po sériovém portu, můžete si ověřit, zda Arduino něco posílá pomocí příkazu cat /dev/ttyACM0
. Pokud máte vše dobře zapojeno, měli byste vidět totéž, co je na následujícím obrázku.
Na další komunikaci s Arduinem budeme využívat Node.js. Všechny potřebné informace o využívání Node.js na Orange Pi Zero jsme si vysvětlili v předchozích článcích.
serialport
.Využijeme zdrojové kódy, které jsem napsal k předchozím článkům. Nejprve si z GitHub naklonujte adresár arduinoslovakia příkazem git clone https://github.com/roboulbricht/arduinoslovakia
.
Pak se přesuňte příkazem cd arduinoslovakia/node.js/arduinoserialtest2/node
ddo adresáře se zdrojovým kódem pro Node.js a nainstalujte balíčky příkazem npm install
. Pro ARM platformu sice balíčky nejsou připraveny, ale Orange Pi Zero si je zkompiluje přímo ze zdrojových textů balíčku serialport
.
Pak můžete otestovat seznam sériových portů příkazem node list.js
. Naše Arduino se objeví na portu /dev/ttyACM0
. Kromě tohoto portu vidíte i další tři porty, ale ty nás teď nezajímají. Tyto porty jsou vyvedeny na 26-kolíkovou lištu.
Nakonec příkazem node index.js
spusťte program, který vám nabídne na výběr sériový port a pak bude vypisovat na konzoli obsah, který odesílá Arduino.
Můžete si napsat vlastní program pro Arduino i Node.js, pomocí kterého budete Arduino ovládat. Můj příklad pro Node.js byl jen nevizuální, ale stejně dobře lze v Node.js napsat webserver, přes který budete ovládat Arduino a Orange Pi Zero přes svůj prohlížeč Internetu. Tento návod byl napsán pro Orange Pi Zero, ale stejně dobře bude fungovat na každém modelu Orange Pi.
Zdrojové kódy se nacházejí na serveru GitHub.
20.10.2017