Abbildung1: Das Intel Galileo Board Gen 2 - Quelle: winsupersite.com

Mit den Galileo Boards hat der Prozessorhersteller Intel eine Entwickler- und Prototyping-Plattform vorgestellt, die die Vorzüge eines Linux Computers mit denen der weit verbreiteten Arduino Boards verbindet. Das Galileo Board, das mit einem 400 MHz Intel Quark x86 Prozessor angetrieben wird, emuliert dabei einen Arduino, dessen Benutzerfreundlichkeit und Erweiterungsmöglichkeiten haben ihn in kürzester Zeit zu einer der weltweit beliebtesten und weitesten verbreitetsten Hardware-Plattform gemacht hat. Sie wird von Makern, Schülern sowie Studierenden verwendet, erfreut sich aber auch bei Künstlern großer Beliebtheit. Zum Start dieser Serie über das Intel Galileo Gen 2 widmen wir uns den technischen Details der zweiten Board-Generation, einem Vergleich beider Generationen und erläutern, welche Vorteile die Galileo Boards gegenüber einem Arduino Uno R3 mit sich bringen. 

Abbildung 2: Die Vorderseite des Intel Galileo Board Gen 2 im Detail - Quelle: arduino.cc 

Mit der Veröffentlichung der ersten Version des Intel Galileo Boards im Oktober 2013 wagte der Prozessorhersteller Intel den Einstieg in die Welt der Entwicklerboards und stellte mit dem x86-kompatiblen Arduino Board gleich eine Weltneuheit vor. Das Board verknüpft einen Linux-Computer samt x86 Prozessorkern mit einem Arduino. Die Rechengeschwindigkeit der Intel CPU, der mit 400 MHz rechnet, ist im Vergleich zu den im Arduino Uno R3 verwendeten AVR Mikrocontrollers, der lediglich mit 16 MHz taktet, gigantisch. Doch trotz der Tatsache, dass das Board zum Veröffentlichungszeitpunkt die mit abstand leistungsstärkste Arduino Hardware war, konnte es die Fachpresse nicht überzeugen - oftmals wurden der zu gering ausgefallener interner Flash-Speicher, der fehlende Bildschirmanschluss, die im Vergleich viel langsame I/O Geschwindigkeiten der Arduino-kompatiblen Pins und die Stromversorgung über eine Klinkenbuchse, die den meisten Nutzern als Kopfhörerbuchse bekannt ist, bemängelt. Auch die Vielzahl der Nutzer wussten in unzähligen Blog- und Foren-Posts wenig gutes über Intels' erste Gehversuche in der Welt der Prototypingboards zu berichten.

Mit der Veröffentlichung des Intel Galileo Board Gen 2, so der offizielle Name der zweiten und aktuellen Version des Intel Galileo Boards, haben sich die Intel-Ingenieure einigen Kritiken angenommen und Details verbessert. Durch das immer stärker aufkommende Internet of Things, kurz IoT, bewirbt Intel die Galileo Boards auch als Plattform zur Entwicklung von IoT-Lösungen.

Merkmale der Intel Galileo Boards

Entwicklungsplattformen wie den Raspberry Pi, dem auf EEWeb Deutschland ebenfalls eine Artikel-Serie gewidmet ist, gibt es wie Sand am Meer - nahezu jeder Hersteller von Mikroprozessoren und -controllern möchte mit Hilfe dieser Boards Maker, Studierende und Hobbyisten dazu bewegen, Projekte mit der eigenen Hardware umzusetzen. Um in diesem Markt Fuss fassen zu können, hat sich Intel mit der in diesen Kreisen überaus beliebten und bekannten Arduino Plattform zusammen getan und mit den Intel Galileo Boards Arduino-zertifizierte Geräte auf den Markt gebracht. Durch diese Zertifizierung sind die Hardware, die Software sowie die GPIO Pins kompatibel zu den meisten Shields, die auch mit dem Arduino Uno R3 genutzt werden können. Eine genaue Übersicht, welche Shields mit welcher Galileo Generation zusammen arbeiten, steht auf der Homepage von Intel zum Download bereit. Weiter ist es mit den Intel Bords möglich, die Arduino Referenz API zu benutzen und Software für den Arduino, die auch Sketche genannt wird, mit Hilfe der Arduino IDE zu entwerfen und auf das Galileo Board zu übertragen und auszuführen. Der große Vorteil des Galileo- gegenüber des Arduino-Boards ist jedoch, dass auf ersterem ein Intel Quark Prozessor mit x86 Architektur mit erheblich höherer Leistung rechnet. Standardmäßig läuft ein vollwertiges Linux auf dem Board, dass mit Hilfe von Software die Funktionalität der Arduino-Plattform emuliert. Dieser Emulator ist notwendig, da das Herz eines Arduino ein Atmen AVR Mikrocontroller ist, der nicht mit der CPU des Galileo Boards kompatibel ist - dieser rechnet mit einem Intel x86 Quark Mikroprozessor Prozessors. Im Vergleich zur Arduino Plattform eröffnet die zusätzliche Rechenleistung und das Linux-Betriebssystem ganz neue Möglichkeiten, die in späteren Teilen dieser Serie behandelt werden. Die Boards sind, wie die Arduino Platinen, Open Source und Open Hardware. Weitere Informationen zu der Arduino Plattform erhalten Sie auch auf EEWeb Germany!

Alle Artikel, die im Rahmen dieser Serie erscheinen werden, wurden mit dem Intel Galileo Board Gen 2 durchgeführt und getestet. Mit kleinen Modifikationen können jedoch einige der vorgestellten Beispiele auch mit dem Intel Galileo Board der ersten Generation ausprobiert werden.

Die Eckdaten der Intel Galileo Boards 

  • Intel Quark SoC X1000 32 Bit x86 Prozessor mit 400 MHz Taktfrequenz
  • 256 MByte DDR3 Arbeitsspeicher
  • Slot für Micro-SD Karten für eine Speichererweiterung bis zu 32 GB
  • Mini-PCI Express Slot
  • 100 MBit RJ45 Netzwerk Port
  • Echtzeituhr; Puffer mit Batterie möglich (Batterie und Batteriehalter nicht im Lieferumfang  enthalten)
  • SPI und I2C Bus
  • Ausführen von Arduino Sketches
  • Pin-kompatibel mit dem Arduino Uno R3
  • Open Hardware und Open Software
  • Nutzung der meisten Arduino Uno R3 kompatiblen Shields möglich; eine genaue Auflistung ist auf der Website von Intel einzusehen
  • Programmierung unter Windows, OS X und Linux mit der kostenlosen Arduino IDE
  • Installation der Betriebssysteme Linux und Microsoft Windows (spezielle IoT Version) auf den Galileo Boards möglich

Abbildung 3: Die Hardware des Intel Galileo Board Gen 2 - Quelle: arduino.cc; Ausschnitt

Erste vs. zweite Generation - Die Unterschiede

In die Entwicklung der zweiten Generation des Intel Galileo Boards, die wir Ihnen in dieser Artikel-Serie vorstellen werden, sind auch Verbesserungsvorschläge der Nutzer der ersten Board-Generation eingeflossen. Leider resultierten daraus solch gravierende Änderungen, dass es nicht möglich ist, alle in dieser Serie vorgestellten Beispiele auf dem Intel Galileo Board der ersten Generation auszuführen.

Woran erkenne ich, welche Board-Generation ich besitze?

Das äußere Erscheinungsbild der Boards hat sich auf den ersten Blick nur im geringen Maße geändert - beim genaueren Hinsehen fällt jedoch auf, dass die zweite Generation mit dem Aufdruck “GEN 2” versehen wurde - diese Information die die Generation anzeigt und in Abbildung 2 zu sehen ist, fehlt bei der ersten Version.

Abbildung 4: Ein Erkennungsmerkmal des Intel Galileo Gen 2: Der Aufdruck “GEN 2” – Quelle: Intel; Ausschnitt

Hardware unterschiede

Die deutlich größeren Unterschiede sind jedoch im technischen Bereich zu finden. Der UART-Anschluss, der bei der ersten Generation als Kopfhörerbuchse getarnt war und einige Kopfhörer zerstört und oftmals für Verwirrung gesorgt hat, wurde durch einen FTDI Header ersetzt. Außerdem wurde die Versorgungsspannung der zweiten Board-Generation angehoben - anstatt der zuvor verwendeten 5 Volt kann das Board nun zwischen 7 und 15 Volt versorgt werden. Diese Änderung bringt das Galileo Board einen Schritt näher an die Arduino Plattform, die ebenfalls mit 7-15 Volt betrieben werden muss. Die Änderung birgt jedoch auch gefahren - besonders Bastler, die beide Board-Generationen im Einsatz haben, sollten die Netzteile nicht verwechseln! 

Eine weitere erwähnenswerte Veränderung ist, dass zwölf I/O Pins “fully native” umgesetzt wurden. Die I/Os sind gegenüber der Softwareemulation, die in der ersten Generation verwendet wurde, schneller und stabiler. Anders ausgedrückt, sorgt diese Verbesserung dafür, dass die zweite Generation eine noch größere Anzahl an Arduino-Shields unterstützt. Diese Einschränkung verärgerte viele Nutzer der ersten Board-Generation, die ihrem Unmut in einschlägigen Foren und Blog-Posts Luft machten, was wiederum dazu führte, dass die Verkaufszahlen hinter den Erwartungen Intels’ blieben. Außerdem wurde die Auflösung der Pulsweitenmodulation, kurz PWM, auf 12-Bit erhöht.

Im Gegensatz zum Galileo Board der ersten Generation, an das USB-Geräte mit Micro-A-USB angebunden werden mussten, wurde bei der zweiten Generation ein normaler USB-A-Port verbaut. Der Anschluss von zusätzlicher Hardware wurde somit stark vereinfacht.

Für Nutzer, die ihr Galileo Board ohne Netzteil betreiben möchten, gibt es seit der neuen Board-Version die Möglichkeit, die Stromversorgung über Power-over-Ethernet zu realisieren. Wenn Sie dieses Feature nutzen möchten, müssen Sie das Power-over-Ethernet-Modul jedoch nachträglich nachgerüstet. 

Vorteile gegenüber dem Arduino Uno R3

Vergleicht man zwei Produkte, fällt der Blick oftmals zuerst auf die Preise - der Arduino Uno R3 kostet ca. 25 Euro und daher deutlich günstiger als das Intel Galileo Board, das mit ca. 75 Euro zu Buche schlägt. Betrachtet man jedoch, welche Möglichkeiten das Galileo Board dem ambitionierten Bastler bietet, ist das Galileo Board klar im Vorteil. Werden Funktionalitäten wie Speichern auf ein Speichermedium, eine Netzwerkanbindung mittels RJ45 Anschlusskabel oder ein USB Host benötigt, muss beim Arduino jeweils ein Shield angeschafft werden - bei den Intel Galileo Boards sind diese bereits fest auf dem Board verbaut. Hinzu kommt noch, dass das Galileo Board einen schnellen x86 Prozessor besitzt, der das Galileo zusammen mit einem Yocto Linux zu einem vollwertigen Computer macht, dessen Vorteile vor allem bei größeren Projekte wie Roboter oder Lösungen im Hausautomationsbereich zu tragen kommen. Möchten Sie eigene Linux-Skripte ausführen oder auf Bibliotheken wie OpenCV zurückgreifen? Dann sind Sie beim Intel Galileo Board genau richtig! Doch alles der Reihe nach.

Das Intel Galileo Board ist einem Arduino Uno R3 durch On-Board-Ausstattung überlegen. Neben der um ein vielfaches höheren Taktfrequenz des auf dem Galileo Board verbauten Intel Quark x86 Prozessor, ist vorallem hervorzuheben, dass das Board die Stärken eines Yocto Linux geschickt mit denen eines Arduino zu verknüpfen weiss. Diese Kombination ermöglicht es dem Entwickler beispielsweise, Daten aus dem Arduino Programm auf die SD-Karte zu schreiben, ohne dass hierfür ein Shield benötigt wird.

Das selbe gilt für Daten, die Sie mit dem Netzwerk oder dem Internet austauschen möchten; die Verbindung mit einem lokalen Netzwerk oder des Internets ist über den RJ45 Netzwerkanschluss direkt auf dem Board möglich. Erfordert Ihr Projekt, dass das Galileo Board kabellos mit einem Netzwerk kommuniziert? Im Einzelhandel sind mini-PCI-Express WLAN Karten erhältlich, die vom Yocto-Linux auf dem Galileo Board ohne manuelle Treiberinstallation unterstützten werden - montieren Sie die Karte im dafür vorgesehenen Schacht und schon geht es los! Welche Modelle genau unterstützt werden, können Sie entweder direkt auf der Internetseite von Intel herausfinden oder Sie vertrauen auf Postings in diversen Foren, die sich mit WLAN-Modulen auf dem Intel Galileo Boards beschäftigen.

Möchten Sie ein USB-Gerät wie beispielsweise eine Webcam anschließen? Auch der USB-Port ist bereits vorhanden und Sie können sofort damit loslegen, aufgenommene Bilder oder Videos auf der SD-Karte zu speichern oder über das Netzwerk zu versenden!

Benötigen Sie bei der Umsetzung Ihres Projektes eine zuverlässige Uhr, bei der die Zeit weiter läuft, auch wenn das Board einige Zeit stromlos ist? Mit der eingebauten Echtzeituhr, die sich bei Bedarf mit einer Knopfzelle ausstatten lässt, können Sie beispielsweise die mit Hilfe von Sensoren oder USB Geräten gesammelten Daten mit einem Zeitstempel versehen oder Skripte zu bestimmten Zeiten ausführen - wie Sie das von einem Computer gewohnt sind.

Für Linux-Entwickler bietet das auf dem Board installierte Yocto Linux die Möglichkeit, in einer bekannten Umgebung native Applikationen zu entwickeln oder bereits bestehende zu portieren, eigene Treiber für Peripheriegeräte zu implementieren oder zu installieren, die Linux Kernel Konfiguration zu verändern, einen eigenen Kernel zu kompilieren oder die POSIX Bibliotheken zu verwenden.

Mit dem Intel Development Kit for IoT (IoTDK) stellt Intel eine kostenlose Plattform bereit, die das Yocto Linux um Bibliotheken und Hilfsmittel wie OpenCV und Node.js erweitern.

Neben dem bereits vorinstallierten Yocto-Linux ist es einigen Bastlern gelungen, weiter Distributionen auf das Intel Galileo Board zu portieren. Seit Microsoft Windows Versionen für IoT Geräte vorgestellt hat, ist es sogar möglich, eine spezielle Version des Betriebssystems aus Redmond auf Ihrem Intel Galileo Board nutzen. Leider wird die aktuellste Version, Windows 10 IoT Core, nicht unterstützt.

Nachdem im letzten Abschnitt vorallem die Vorteile des Linux-Unterbaus hervorgehoben wurden, dürfen die Vorteile der Arduino Plattform, der bereits eine eigene Serie auf EEWeb Germany gewidmet ist, nicht in Vergessenheit geraten. Durch ein aufgeräumtes Benutzerinterface, eine einfach zu erlernende, aufgeräumte und gleichzeitig mächtige Programmiersprache sowie den Arduino Bibliotheken, die die Hardware abstrahieren und so das Programmieren vereinfachen, machen die Arduinos zu einer der beliebtesten Plattform für Bastler, Studierende und Künstler. Die wahre Stärke der Intel Galileo Boards entfaltet sich jedoch erst, wenn der Nutzer beide Teile zu kombinieren weis. Rechenintensive Aufgaben können in Linux ausgeführt werden, I/O-Operationen  mit der angeschlossener Peripherie werden direkt vom Linux Programm an eine Arduino Applikation kommuniziert. Oder möchten Sie lieber aus Ihrem Arduino Programm ein Shell oder Python Skript ausführen? Auch dies ist möglich!

Können Sie mit einigen dieser Begriffe nichts anfangen oder wissen Sie nicht, wie Sie die Vorteile von Linux und dem Arduino Ihres Intel Galileo Boards geschickt für Ihr Projekt nutzen können? Schauen Sie bald wieder bei EEWeb Germany vorbei! Im zweiten Teil der Serie werden wir die Installation der Arduino IDE auf den Betriebssystemen Linux, Windows und OS X detailliert erklären und wir werden Ihrem Board leben einhauchen, indem wir das Blinky-Beispiel laden und ausführen.

Von Markus Webert

Artikel Quellen:

avatar

Sie müssen sich anmelden um einen Kommentar zu veröffentlichen

avatar

Sie müssen sich anmelden um einen Kommentar zu veröffentlichen