Eine Entwicklerin beim Entwickeln: meine ersten Schritte mit dem Intel Galileo Board

Ich gehöre zu den glücklichen Menschen, denen es gelungen ist, vor einigen Monat ein Intel® Galileo-Mainboard zu ergattern. Das Intel Galileo-Mainboard ist für Arduino* zertifiziert und basiert auf der Intel® Quark-Technik.
Anfangs war ich ziemlich verwirrt, aber inzwischen bin ich geradezu süchtig danach. Ich finde es ungemein entspannend, aus verschiedensten Dingen etwas zusammenzubauen und zum Laufen zu bringen. Das Ganze erinnert mich an meine Kindheit, in der ich die Stereoanlage, den Mixer, meine Sprechpuppe und andere Dinge zerlegt hatte, um herauszufinden, was sich im Inneren verbirgt und wie alles funktioniert.
Am besten gefällt mir, dass man praktisch sofort für seine Bemühungen belohnt wird, indem etwas blinkt oder sich bewegt. Wenn Sie mehr über meine ersten Schritte auf dieser Entdeckungsreise erfahren möchten, dann lesen Sie weiter.

A Maker in the Making

Was werde ich bauen?

Als Erstes muss die Intel Galileo Arduino-SW heruntergeladen werden. In dieser vorbereiteten Version der Arduino-Entwicklungsumgebung ist das für das Intel Galileo-Mainboard benötigte Image bereits installiert. Zur Verfügung stehen Versionen für Windows*, Linux* und MacOS*. Der Leitfaden für Einsteiger erläutert, wie man das Board anschließt und die Firmware ermittelt und aktualisiert. Daher werde ich diese ersten Schritte hier nicht wiederholen. Es gibt unzählige Beispiele, aber das erste, das Sie ausprobieren sollten ist das Blink-Beispiel.

Blink Beispiel

So finden Sie das Blink-Beispiel.

Wenn Sie – so wie ich – auf diesem Gebiet ein Neuling sind, stellt sich als Nächstes wohl die folgende logische Frage: Wunderbar, aber wie bringe ich das Ganze wieder zum Stoppen? Kurz gesagt: Gar nicht. Zumindest nicht programmiertechnisch. Sie können natürlich den Stecker ziehen. (Aber trennen Sie zuerst die USB-Verbindung!!! Ich weiß zwar nicht warum, aber laut Dokumentation ist dieser Schritt notwendig. :)) Arduino geht jedoch folgendermaßen vor: Es überträgt den Sketch (die Bezeichnung, die Arduino für ein Programm verwendet), der in der Entwicklungsumgebung erstellt wurde, zu dem Linux-System, das auf dem Board läuft, das wiederum den Sketch in einer Schleife immer und immer wieder aufruft. Neugierig? Dann schauen Sie sich in der IDE den dunklen Bereich am Ende an; dort sehen Sie das Protokoll der gerade durchgeführten Schritte:

Hochladen des Sketch-Protokolls

Der etwas elegantere Weg, den Prozess anzuhalten, besteht also darin, das ursprüngliche Skript, das nichts tut, zum Board hochzuladen; in der Folge hört das Board auf zu blinken und startet eine Schleife, in der sich nichts tut.

Der Sketch, der nichts tut

Okay, mein Intel Galileo-Board ist angeschlossen, die Firmware ist aktualisiert und ich habe meinen ersten Sketch erfolgreich ausgeführt! Wie Sie sehen können, hat ein Sketch zwei Hauptteile: setup() und loop(). Wie der Name schon sagt, werden im setup()-Teil die Steuerelemente eingerichtet, und im loop()-Teil wird festgelegt, was das Board tun soll. Die Steuerelemente verknüpfen normalerweise Ihre Variable mit der entsprechenden Pin, die mit der Steuerung der Komponente verbunden ist; und der loop()-Teil wird etwas aus diesem Steuerelement auslesen und/oder hineinschreiben. In unserem Blink-Beispiel legt der Sketch den Pin als 13 fest und initialisiert anschließend den digitalen Pin während des Setups als Ausgabe:

/*
Blink
Lässt eine Schleife ablaufen, in der eine LED eine Sekunde lang ein- und anschließend eine Sekunde lang ausgeschaltet bleibt.
 Dieses Beispiel finden Sie im Public-Domain-Bereich.
 */

 // Fast alle Arduino-Boards sind an Pin 13 mit einer LED ausgestattet.
 // Namen vergeben:
 int led = 13;

 // Wenn Sie die Reset-Taste drücken, wird die Setup-Routine ausgeführt:
 void setup() {
 // Die digitale Pin wird als Ausgang initialisiert.
 pinMode(led, OUTPUT);
 }

Während die Schleife – loop() – läuft, wird die Spannungsversorgung ein- („High“) bzw. ausgeschaltet („Low“), um die LED zum Blinken zu bringen. Dazwischen wird jeweils eine Pause festgelegt.

// Die Loop-Routine wird bis in alle Ewigkeit immer und immer wieder ausgeführt:
 void loop() {
 digitalWrite(led, HIGH); // schaltet die LED ein (HIGH bezeichnet die Spannungsversorgung)
 delay(1000); // eine Sekunde pausieren
 digitalWrite(led, LOW); // schaltet die LED aus, indem die Spannungsversorgung auf LOW gesetzt wird
 delay(1000); // eine Sekunde pausieren
 }

Was geschieht als Nächstes? Jetzt kommt unsere Vorstellungskraft ins Spiel. Wenn Ihnen bereits ein Projekt vorschwebt, beginnen Sie damit, die Komponenten anzuschließen. Das Board ist zwar für viele Verwendungszwecke vorbereitet, aber ohne zusätzliche Komponenten oder Add-ons kann es nicht viel mehr tun als blinken. Dieses Video erläutert die Ausstattung des Boards, etwa die Chipsätze und Controller. Zudem stehen umfassende Unterlagen zur Verfügung sowie ein technisches Datenblatt, das zeigt, womit das Board bestückt ist. Aber da es sich vorwiegend um Controller handelt, musste ich mir einige Komponenten besorgen, mit denen ich spielen konnte. Meine erste Wahl fiel auf einen Flügelmotor, und nachdem mir klar wurde, wie ich ihn richtig anzustecken hatte, konnte ich das Sweep-Beispiel von Arduino ausführen:

Dieses Video wurde heute gedreht, nachdem ich mir am Wochenende in einem Baumarkt geeignete Überbrückungskabel besorgt hatte. Wie ich schon zu Beginn sagte, ist das Ganze für mich neu; und ich weiß noch nicht, was genau ich tun werde (obwohl ich schon einige Ideen habe) und was ich brauchen werde. Bislang teste ich die Basics. Bei meinen ersten Tests mit den Flügelmotoren erwies sich die Tatsache, dass ich nur Drähte hatte, als nicht besonders praktisch, aber immerhin funktionierte es. Die Arbeit mit dem Bewegungssensor überzeugte mich davon, dass ich geeignetes Werkzeug brauchte. Jetzt habe ich Drahtbrücken, Krokodilklemmen (insbesondere für leitfähige Materialien), einige LEDs, eine Steckplatine und ein antistatisches Band. Den Bewegungssensor, eine LCD-Anzeige und leitfähige Materialien hatte ich bereits vorab besorgt. Aber heute fand ich heraus, dass ich für die Arbeit mit den LEDs auch Widerstände benötigen würde... wie schon gesagt, ich bin ein Neuling auf diesem Gebiet! Immerhin hat ein Kollege auf meiner Facebook*-Pinnwand bereits eine Erklärung gepostet:

Vielleicht brauche ich mehr als nur Widerstände...

Meiner Meinung nach ist der Einstieg superleicht. Die Dokumentation ist hervorragend, es gibt zahlreiche Beispiele und ich werde ein immer größerer Fan von Adafruit* (wobei ich nicht unerwähnt lassen will, dass die Firma einer Frau gehört, Limor Fried). Jede Komponente ist mit Anleitungen zur Funktionsweise verlinkt, was für Neulinge wie mich ungeheuer hilfreich ist.

Limor Fried, Eigentümerin von Adafruit, ausgezeichnet als Unternehmer des Jahres 2012

Wie schon zuvor erwähnt, wird die Arduino-Entwicklungsumgebung einen Sketch hochladen, der im Linux-System in einer Endlosschleife abläuft. Nun, hier ist also ein Linux-System… und jetzt wird es interessant :-), denn meine nächste Schritte werden folgendermaßen aussehen: 1) Widerstände kaufen und die LEDs zum Laufen bringen und 2) mehr darüber herausfinden, wie sich das Betriebssystem hacken lässt. Mir ist bereits bekannt, dass Yocto* eine Möglichkeit bietet, die bereits in Verwendung ist. Ich werde Sie auf dem Laufenden halten! ;-)

Dieser Beitrag ist eine Übersetzung des Artikels A Maker in the Making, der zuerst auf der privaten Webseite der Intel Mitarbeiterin Sulamita Garcia veröffentlicht wurde: http://sulamita.net/2014/01/20/a-maker-in-the-making-my-first-steps-with-intel-galileo/

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.