Intels Einplatinen-Computer Galileo unter der Lupe

Werkzeuge  –  5 Kommentare

Galileo Galilei sorgte zu Lebzeiten für jede Menge Kopfschütteln: Seine damals radikalen Ideen zur Beschaffenheit der Welt fanden bei Gläubigen und Kirche anfangs nur wenig Zustimmung. Beim Betrachten von Intels Spross der Arduino-Familie geht es Beobachtern ähnlich: Wieso so – und wieso gerade jetzt?

Intels Galileo ist auf den ersten Blick weder Fisch noch Fleisch. Sein Quark-Prozessor entspricht einem mit 400 MHz arbeitenden Pentium I, der kein Hyperthreading beherrscht – als Ausgleich dafür bringt er den von seinem direkten Vorfahren bekannten F00F-Bug mit. Der verbaute Arbeitsspeicher ist 256 MByte groß, während der interne Flash-Speicher mit 8 MByte alles andere als geräumig ausfällt. Immerhin lässt sich weiterer Massenspeicher per MicroSD-Karte nachstecken, Medien mit bis zu 32 GByte Kapazität werden problemlos akzeptiert.

Update

Die Labor-Messwerte zum Artikel beziehen sich auf den Arduino Galileo erster Generation. Intel hat nach dem Erscheinen dieses Testberichts eine zweite Version angekündigt, die dank der "direkten" Anbindung der IO-Ports wesentlich schneller arbeiten dürfte.

Der gemischte Eindruck setzt sich bei den restlichen Spezifikationen fort. Während das Gerät einen Fast-Ethernet-Anschluss, einen USB-2.0-Host-Port und einen Slot für Mini-PCI-Express-Karten mitbringt, sucht man eine Möglichkeit zum Ansprechen von Bildschirmen vergeblich. Daraus folgt, dass der Galileo für Applikationen, die direkte Interaktion mit dem Benutzer voraussetzen, nur eingeschränkt geeignet ist.

Als Betriebssystem kommt eine von Intel um einen Interpreter für Sketch-Dateien erweiterte Version von Yocto Linux zum Einsatz. Die Distribution ist für Embedded-Geräte vorgesehen, die mit möglichst wenig Festwertspeicher auskommen sollen und somit nur wenige Standardprogramme brauchen. Auch das ist eine Einschränkung, die – wie weiter unten besprochen – zu empfindlichem Mehraufwand führt.

Zu guter Letzt gibt es die Möglichkeit, den Galileo mit den vom Arduino bekannten Shields zu erweitern. Intel verspricht, mit den meisten für den Uno R3 geeigneten Boards kompatibel zu sein – aufgrund des etwas eigentümlichen Aufbaus der IO-Engine ist das aber nicht immer der Fall.

Intel liefert den Galileo in einem blauen Karton aus, der nur drei Bestandteile hat: die Platine, ein Netzteil und ein mehrseitiges Dokument mit Sicherheitshinweisen. Im Deckel der Schachtel findet sich ein Diagramm, das den Anschluss an den PC illustriert. Das dazu notwendige MicroUSB-Kabel liefert Intel nicht mit – stattdessen bekommt man die von alten PDAs bekannten internationalen Stecker für das Netzteil.

Der erste Schritt zur Nutzung des Einplatinencomputers ist die Installation der zum Download bereitstehenden Arduino IDE. Intel muss aufgrund der Unterschiede im Bereich der Prozessorarchitektur einen eigenen Weg gehen, weshalb sich eine eventuell schon installierte Version der Arbeitsumgebung nicht zweckentfremden lässt.

Unter Windows müssen Anwender das heruntergeladene Archiv extrahieren. Es ist in das Stammlaufwerk (also C:\) zu entpacken, Unterordner werden nicht unterstützt. Nach der erfolgreichen Extraktion wird die Platine über das mitgelieferte Netzteil mit Energie versorgt – Intel weist in der Dokumentation an mehreren Stellen darauf hin, dass das USB-Kabel zu diesem Zeitpunkt auf keinen Fall angeschlossen sein darf. Einige Sekunden später wird die Verbindung zwischen Computer und Platine hergestellt. Das MicroUSB-Kabel muss auf jeden Fall in die mit Client beschriebene Buchse der Platine – der Galileo nimmt nur über diesen Stecker Befehle entgegen (s. Abb. 1).

Die korrekte Buchse liegt direkt neben dem Ethernet-Port (Abb. 1).

Windows beginnt daraufhin mit dem Abarbeiten des Hardwareinstallationsassistenten. Dieser wird in Ermangelung von Treibern scheitern, legt aber trotzdem einen Eintrag im Gerätemanager an. Normalerweise findet sich "Gadget Serial" in der Rubrik COM | LPT-Ports. Wenn er in der Rubrik Other liegt, muss man einen speziellen Treiber nachrüsten. Die Vorgehensweise dafür ist in einer PDF-Datei beschrieben.

Im nächsten Schritt wird der Eintrag rechts angeklickt, um den Einstellungsdialog zu öffnen. Danach muss man die Option zur Aktualisierung des Treibers wählen und die Verwendung der unter hardware | arduino | x86 | tools liegenden Datei linux-cdc-acm.inf anweisen.

Nach der erfolgreichen Installation des Treibers weist Windows dem Gerät eine Port-Nummer zu. Diese muss man notieren, da sie später in der Arduino IDE gebraucht wird. Auf manchen Systemen kommt man mit diesen Anweisungen nicht zu einem einsatzbereiten Galileo. Mehr Infos dazu, auch über häufige Stolpersteine, finden sich im oben erwähnten PDF.

Warnung

Die Arduino IDE hat mit den meisten Antivirenprogrammen mehr oder weniger gravierende Probleme. Es ist ratsam, den On-Access-Scanner während der Arbeit zu deaktivieren.

Intel arbeitet permanent an der Verbesserung der auf dem Galileo installierten Emulationssoftware. Deshalb sollte die erste Amtshandlung im Aktualisieren des Betriebssystems bestehen. Dazu ist die unter C:/Arduino liegende Datei Arduino.exe zu öffnen, die ihrerseits die auf Java basierende Arduino IDE anwirft. Im Menü Werkzeuge finden sich zwei Einstellungsmenüs, in denen man den passenden Board-Typ und den zu verwendenden COM-Port auswählt. Danach muss man auf Hilfe | Firmware Update klicken, um das Betriebssystem zu aktualisieren.

Nach dem Update des Betriebssystems sollte man das Funktionieren des Boards überprüfen. Dazu klickt man in der IDE auf Datei | Beispiele | Basics | Blink, woraufhin das folgende Sketch am Bildschirm erscheint:

// Pin 13 has an LED connected on most Arduino boards. 
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Blink ist eine Art Standard-Akzeptanztest für alle Arduinos. Die Spezifikation von Massimo Banzi, Miterfinder des Arduino, schreibt vor, dass der 13. Pin des GPIO-Ports mit einer Leuchtdiode verbunden sein muss. Die im Rahmen der Initialisierung des Sketches abgearbeitete Setup-Funktion weist den Pin dazu an, als Ausgabemedium zu fungieren. Die in loop() implementierte "eigentliche Schleife" hat sodann die Aufgabe, en Port abwechselnd ein- und auszuschalten. Durch Klicken des Hochladen-Buttons führt man das Sketch aus. Das Resultat der Mühen ist eine blinkende LED, die ihren Zustand einmal pro Sekunde ändert.