Arduino YUN – rozpoznanie bojem

Arduino YUN jest połączeniem Arduino Leonardo (ATmega32u4) z jednoukładowym komputerem Atheros AR9331 (występuje on w niektórych routerach TP Linka i Linksysa). Tak znaczy to, że YUN ma na pokładzie od razu Ethernet i WiFi.

Arduino YUN

Złącza

Arduino YUN ma nastepujące złącza – Ethernet (RJ-45), USB-A (host), USB-B micro (client), karta microSD, gniazdo U.FL dla antenty WiFi, miejsce na przylutowanie modułu PoE (jak do Ethernet Shielda lub Arduino Ethernet). Zauważyliście – nie ma złącza zasilania – zasilany z gniazda micro USB lub przez Vin. W tym drugim przypadku sami musimy zadbać by było to stabilizowane 5V.

Złącza Arduino YUN
Złącza Arduino YUN
Arduino YUN - spód
Arduino YUN – spód

 

 

Pierwsze koty za płoty…

Na pokładzie jest ATmega32u4 czyli niby jak Arduino Leonardo, jednak… Na razie na sucho przeglądając http://arduino.cc/en/Guide/ArduinoYun nie trudno zobaczyć kilka interesujących faktów. Po pierwsze, można korzystać z niego jak z Leonardo – podłączamy do komputera przez kabel micro USB, odpalamy IDE (ale wersję 1.5.x), programujemy,  wgrywamy tak jak zawsze. Ale to jest nudne (choć działa, właśnie zmodyfikowanego Blinka wgrałem), więc pójdźmy dalej.

 

Niech stanie się WiFi

Jeżeli YUN jeszcze nie był konfigurowany to na linuxowej części YUN (działa na niej odmiana OpenWRT) jest uruchomiony access-point o identyfikatorze sieci Arduino YUN-MAC_ADRES (warto MAC adres sobie zapisać). Jest sieć bez hasła, więc podłączamy się do niej. Nasz komputer dostaje adres przez DHCP, adres YUN to zawsze 192.168.240.1, ale nie musimy tego pamiętać, bo z dzierżawą DHCP dostajemy ładny wpis arduino.local – taki adres wpisujemy w przeglądarkę.

W pole na hasło wpisujemy arduino i oto jest:

Arduino YUN - po pierwszym zalogowaniu

Jeżeli klikniemy w CONFIGURE to przeniesiemy się do prostego okna konfiguracyjnego. Tam wybieramy nazwę dla swojego Arduino, nowe hasło (bo przecież nikt nie zostawi domyślnego, prawda?) i co najważniejsze sieć WiFi do której ma się nasze Yun podłączyć. Po restarcie pozostaje się podłączyć do tej samej sieci. Jeżeli nazwa naszego arduino YUN (którą przed chwilą skonfigurowaliśmy) jest unikatowa w naszej sieci, możemy się do niego dostać przez nasza_nazwa.local. Jeżeli nie, to trzeba sprawdzić na routerze jaki IP dostało nasze Arduino (szukać listy komputerów w DHCP i tam znaleźć MAC naszego YUN) i można się podłączyć. Działa? No to następny krok.

Restartujemy IDE i w menu Tools/Port powinno być nie tylko /dev/ttyACM0 (Arduino Yun) ale również Arduino IP ADRES (Arduino Yun). Wybieramy ten port z adresem IP i upload! Pojawia się dialog którego wcześniej nie spotkaliśmy:

Hasło do upload

Wpisujemy hasło, które nadaliśmy naszemu Arduino i szkic załadowany! Dla pewności możesz podłączyć YUN do drugiego komputera, by być pewnym, że Arduino IDE Cię nie oszukuje nie wgrywa kodu ukradkiem przez USB :) Trwa to trochę dłużej niż przez USB, ale jeżeli nasze Arduino znajdzie się w trudno dostępnym miejscu… cóż, wygoda niesamowita.

WiFi to mało – RESTful API do Arduino

Teraz kilka słów o mostku czyli Bridge. Jest to połączenie między AR9331 a ATmega32u4, czyli biblioteka która pozwala przez interfejs REST komunikować się bezpośrednio z ATmega32u4. Skorzystajmy z przykładu: http://arduino.cc/en/Tutorial/Bridge wgrywamy ten szkic na nasze Arduino i od teraz mamy gotowy interfejs by zmieniać stan portów cyfrowych przez zapytania HTTP.

Na szybko napiszmy prosty skrypt, podłączmy diodę do portu 12 (bo po co korzystać z gotowej na 13 :) ) i testujmy. Skrypt to:

curl http://arduino.local/arduino/mode/12/output
curl http://arduino.local/arduino/digital/12/1
sleep 2
curl http://arduino.local/arduino/digital/12/0
sleep 2
curl http://arduino.local/arduino/digital/12/1
sleep 2
curl http://arduino.local/arduino/digital/12/0
sleep 2
curl http://arduino.local/arduino/digital/12/1
sleep 2
curl http://arduino.local/arduino/digital/12/0
sleep 2
curl http://arduino.local/arduino/digital/12/1
sleep 2
curl http://arduino.local/arduino/digital/12/0
sleep 2

Innymi słowy Blink, czyli miganie diodą, ale przez sieć i WiFi.

Spójrzcie na ten filmik, w tle widać jak wykonuje się skrypt a na pierwszym planie YUN blinkuje naszą diodą.

Podsumowanie – na gorąco

Na pierwszy rzut oka – Arduino YUN to fantastyczna platforma. Bezproblemowy dostęp do Arduino przez sieć, to jest to czego dotąd brakowało. W zastosowaniach tego typu, pewnie będzie się lepiej sprawdzać niż Raspberry Pi. Ale potestujemy jeszcze to się przekonamy.