Arduino Yún: Formfaktor des Uno, aber Linux-Server plus Arduino Leonardo plus Wifi plus Ethernet...

Yúhú! Der Arduino Yún ist da!

Send to Kindle

Mein betreuender Redakteur Markus Stäuble war so nett, zwei Arduino Yún (“Yún” ist chinesisch für “Wolke”, was den Einsatzzweck gut umreisst) zu besorgen, damit ich mit der Arbeit am Buchprojekt endlich richtig loslegen kann. Der Yún ist leider derzeit überall in Deutschland ausverkauft, Franzis listet ihn daher nicht. Wir gehen jedoch davon aus, dass er spätestens in der Vorweihnachtszeit in Stückzahlen verfügbar sein wird.

Besonderheiten des Yún

Die Hardwaredetails möchte ich an dieser Stelle nur grob umreissen, für Details sei auf den Eintrag in der Arduino-Board-Datenbank verwiesen. Der Yún sind eigentlich zwei Computer: Ein Atmel Atmega32u4 Microcontroller und ein MIPS basierter Atheros AR9331. Auf dem Atmega laufen weiterhin die von Arduino bekannten Sketches, auf dem Atheros MIPS ein Linux, konkret das auf OpenWRT aufbauende “Linino”. Beide kommunizieren über eine serielle Schnittstelle miteinander – dadurch ist es möglich, Sketches direkt von der Linux-Seite zum Microcontroller zu schieben. Um diese Funktionalität zu nutzen, muss die Arduino-Entwicklungsumgebung in Version 1.5.4 installiert sein – darunter lässt sich mit dem Yún wenig anfangen.

Arduino Uno und Yún (rechts) - gleicher Formfaktor, allerdings benötigen einige Shields einen Abstandshalter

Arduino Uno und Yún (rechts) – gleicher Formfaktor, allerdings benötigen einige Shields einen Abstandshalter

Der erste Boot

Yún benutzt einen Micro-USB-Stecker zur Stromversorgung. Ich habe einen gerade am Schreibtisch verfügbaren Samsung Ladestecker für den ersten Boot benutzt. Unmittelbar nach dem Start spannt Yún ein WLAN mit WPS-Absicherung und dem Netzwerknamen “Arduino Yun-Mac-Adresse” auf. Verwenden Sie Notebook, PC oder Smartphone um mit diesem zu verbinden oder verbinden Sie einen PC via Ethernetschnittstelle mit dem Yún. Nun können Sie unter http://arduino.local/ oder http://192.168.240.1/ das Webfrontend des Yún aufrufen und sich mit dem Passwort “arduino” einlogen. Dort vergeben Sie ein Passwort und konfigurieren den Yún am besten als (DHCP-) Client im WLAN oder Ethernet. Danach ist der Arduino erst einmal unauffindbar, aufschlussreich ist daher ein Blick in die Logs von DHCP-Server oder DSL-Router.

Nach dem ersten Boot spannt Yún ein eigenes WLAN auf...

Nach dem ersten Boot spannt Yún ein eigenes WLAN auf…

Login ist unter 192.168.240.1 möglich, das Passwort lautet "arduino"

Login ist unter 192.168.240.1 möglich, das Passwort lautet “arduino”

Screenshot_2013-10-29-14-26-24

Nun können Sie den Yún in Ihr vorhandenes WLAN einbinden

Im Log der Fritz!Box gefunden: Am besten,  Sie vergeben eine fixe MAC-IP-Zuordnung

Im Log der Fritz!Box gefunden: Am besten, Sie vergeben eine fixe MAC-IP-Zuordnung

Nett auch der Button “WLAN-RST”: Nach fünf Sekunden resettet er die Netzwerkeinstellungen, hält man ihn 30 Sekunden gedrückt, wird die gesamte Linux-Seite in den Auslieferungszustand zurückversetzt. Bereits bei der Erstkonfiguration des Yún wird deutlich, wieviel Arbeit der Yún dem Arduino-Bastler abnehmen möchte. Anstatt sich lange durch eine Linux-Konfiguration hangeln zu müssen und einen Webserver selbst aufzusetzen, ist es im Prinzip sofort möglich, an Arduino-Sketches zu arbeiten und diese hochzuladen – die Linux-Seite des Yún ist dabei zunächst nicht viel mehr als ein Hilfsmittel.

Kommunikation zwischen MIPS und Microcontroller

Bindet man den Header “Process.h” ein, erhält die Arduino-Seite weitreichenden Zugriff auf die Linux-Seite. So können mittels Process.runShellCommand auf Arduino-Seite Shellscripte oder Programme der Linux-Seite getriggert werden und deren Ausgabe auf Arduino-Seite weiterverarbeitet werden (in der Hausautomation benötigen wir dies, um eingehende Funkpakete und Sensordaten zu verarbeiten). Andersherum ist es mittels YunServer und YunClient möglich, direkt per Webserver (ohne eigene Scripte auf Linux-Seite) Events auf Arduino-Seite zu triggern. Daneben existiert mit Mailbox die Möglichkeit, gemeinsam genutzte Variablen zu definieren – die sogar mittels REST-Interface direkt ausgelesen werden können. FileIO gibt Arduino Zugriff auf das Dateisystem der µSD-Karte auf Linux-Seite – zum Beispiel um persistente Konfigurationen als INI-Datei auf Linux-Seite zu schreiben und auf Arduino-Seite auszulesen. Eine Übersicht, über Yún spezifische Funktionen liefert die Dokumentation YunBridgeLibrary – besonders ans Herz gelegt seien Ihnen die Beispiele Bridge und YunWifiStatus.

Ein Yún im aktuellen Netz kann direkt per Arduino-IDE mit Sketches versorgt werden

Ein Yún im aktuellen Netz kann direkt per Arduino-IDE mit Sketches versorgt werden

Das Internet der Dinge

Der Yún bringt bereits API-Zugriff für Temboo. Dieser Dienst arbeitet als eine Art normalisierender Proxy für Dienste wie Yahoo, Paypal, Flickr, Twitter, Yahoo Weather und viele weitere. Ein Account pro Email-Adresse ist kostenlos, so dass es sich lohnt, Temboo mal auszuprobieren. Das berühmte Beispiel der twitternden Zimmerpflanze, welches ein Grund für den Arduino Boom war, ist damit noch schneller und noch leichter verständlich erledigt, als bei der Kombination aus Ethernet Shield und Arduino Uno/Duemilanove. Zudem beherrscht die aktuelle Kombination HTTPS, was nicht möglich ist, wenn der Microcontroller HTTP-Zugriffe selbst erledigt.

Ein erstes Fazit

Mit rund 65 Euro ist der Yún eine perfomantere Alternative zu Uno plus Ethernetshield. Die Bridge-Library versteckt sehr viel der Komplexität des Yún und seiner Janusköpfigkeit. Stattdessen folgt er konsequent der Arduino-Philosophie, schnelle Erfolge zu vermitteln, auch wenn der Anwender nicht jedes Register des Microcontrollers kennt. Das gelingt sehr gut, für erste Erfolge müssen nicht einmal Python- oder Shellscripte erstellt werden – Temperatursensoren auszulesen oder Funksteckdosen über eine umgemodelte Fernsteuerung via Web anzusteuern gelingt so mit einfachen Sketches und weniger als einer Stunde Arbeit. Andererseits bedeuten die Yún spezifischen APIs einen gewissen Verlust an Kompatibilität: Weder Sketches noch CGI-Scripte für Yún werden kompatibel mit Alternativlösungen wie der Kombination aus Raspberry Pi und per I2C angebundenem Arduino sein – für mich als Autor eine gewaltige Herausforderung.