Schnellstart Arduino Leonardo

Jeder der sich, auch wenn vielleicht nur oberflächlich, mit der Mikrokontroller -Programmierung befasst, wird einem Schlagwort nicht mehr ausweichen können: Arduino. Die Frage ob der Hype um dieses System wirklich berechtigt ist steht natürlich im Raum. Für ausgefuchste Programmierer ist dies vielleicht nicht mehr als ein lustiges Spielzeug. Für den Ottonormal-Menschen aber eine Möglichkeit auch große Projekte auf schnellem Wege zu realisieren. Man kann sicher Tage damit verbringen die vielen ausgefallenen und spannenden Projekte im Internet zu erforschen und kommt auch nicht drum herum sich selbst so seine Gedanken zu machen. Deshalb soll es an dieser Stelle mal einen kleinen Einstieg für diejenigen unter Ihnen geben, die sich noch nicht so intensiv mit der Mikrocontroller Programmierung befasst haben.

Der Leonardo weist dabei noch eine herausragende Besonderheit auf.  Im Gegensatz zu den gängigen Arduino-Boards hat unser Arduino nämlich keinen externen FTDI-Chip, der früher benötigt wurde um über den USB-Anschluss eine Serielle Schnittstelle zu simulieren. Dadurch spart man zum einen eine Menge Hardware, zum anderen wird die Palette von Möglichkeiten dadurch enorm erweitert. Es ist z.B. ein leichtes mit dem Board eine USB-Tastatur zu simulieren. Beispiele dazu werden sogar per Software mitgeliefert. Aber jetzt erst mal die Basics.

Die Hardware

Für meinen ersten Test habe ich den erwähnten Arduino Leonardo benutzt. Es handelt sich um ein kleines, schickes Board mit microUSB-Anschluss.

mLeonardo

Bei dem Controller selbst handelt es sich um einen ATmega32u4. Wen’s interessiert: Flash 32 Kb, 44 Pins, 16 MHz, CPU: 8-bit AVR, 13 externe Interrupts, USB on board!  Es gibt 7 PWM-Kanäle, 12 ADCs und insgesamt 20 Input/Output Pins, also genug Anschlüsse für alle erdenklichen Projekte.

Bevor wir uns aber völlig in der Ideenwelt verlieren schnell noch die Anleitung zur Installation der benötigten Software am Beispiel eines Win7 PCs.

Die Software

Die Software-Installation ist denkbar unkompliziert. Die aktuelle Version findet man unter:http://www.arduino.cc/en/Main/software. Es handelt sich dabei um einen Zip-Ordner, den man an beliebiger Stelle entpackt. In dem entpackten Ordner findet man eine Exe. Ich empfehle direkt eine Verknüpfung auf dem Desktop zu erstellen. Am leichtesten geht das mit: Rechtsklick – SendenAn – Desktop (Verknüpfung erstellen). Das Programm zu starten würde jetzt aber noch nicht viel bringen, denn wir müssen erst die Treiber des Boards installieren.

Als ich mein Board per USB mit dem PC verbunden habe, hat mein Rechner versucht den Treiber selber zu finden und zu Installieren. Das ist allerdings gescheitert. Also musste ich unter Start-Systemsteuerung-System-Gerätemanager das Board suchen und dort auf „Treiber Aktualisieren“ klicken. Daraufhin konnte ich unter „auf dem Rechner nach Treibersoftware suchen“ eine Quelle angeben. Diese Quelle ist der Order in dem ich vorher das Arduino- Zip entpackt habe, genauer gesagt dessen Unterorder Drivers. Nach einer Warnung, dass der Treiber aus einer unbekannten Quelle stammt (die ich aber ignoriere), installiert sich der Treiber und das Board wird im Geräte-Manger unter Anschlüsse angezeigt. Hinter dem Board steht noch eine COM-Nummer. Diese sollte man sich merken.

ArduinoSc1

Nachdem die Installation hoffentlich reibungslos über die Bühne gegangen ist, kann man nun das Programm starten.

ArduinoSc2

Oben in der Leiste muss man unter Tools zuerst einmal das Board und den seriellen Port auswählen. Der serielle Port entspricht der COM-Nummer, die man sich gerade gemerkt hat, bei mir COM6.

Jetzt kommt der spannende Moment in dem ich mein erstes Programm uploade.  Am einfachsten ist immer ein Blinker. Besonders einfach geht das, indem ich unter Datei – Beispiele – 01.Basics – Blink auswähle. Es öffnet sich ein neues Fenster mit einem der zahlreichen und hilfreichen Beispiele. In diesem Fall der gewünschte Blinker. Mit dem Klick auf den Haken wird das Programm überprüft. Fehler würden im unteren Fenster rot mit Fehlermeldung angezeigt. Wenn alles OK ist steht dort „Kompilierung Abgeschlossen“.  Mit dem Pfeil nach rechts, neben dem Haken kann man das Programm nun auf unseren Controller „Uploaden“. Unten wird ein Ladebalken und danach hoffentlich eine Erfolgsmeldung angezeigt.

In meinem Fall gab es hier beim ersten Versuch eine Fehlermeldung. Ich musste den Arduino abziehen und das Programm neu starten. Ich glaube aber nicht, dass das der Regelfall ist.

Das Programm ist nun auf dem Controller und man sieht auch schon das Ergebnis. Die LED mit der Beschriftung „L“ auf dem Board blinkt nämlich. Das liegt daran, dass die im Programm angegebene LED13 (Erste Zeile #define LED 13) dieser LED entspricht. Alternativ kann man auch eine LED zwischen dem Port 13 und GND anschließen (Ja, es funktioniert ohne Vorwiderstand, nur die Polung muss man beachten).

Leonardo2

Das war mein erstes Programm. Ich habe es zwar nicht selbst geschrieben, aber ein Erfolg ist es trotzdem. Man kann nun an dem Programm ein wenig rumbasteln um die Arduino-Entwicklungsumgebung besser zu verstehen.

Was den gerade den Leonardo als erste Wahl Boards auszeichnet, sind die herausragenden Möglichkeiten, die aus dem Controller eigenen USB ergeben. So ist es z.B. ohne Schwierigkeiten möglich das Board als HID zu benutzen (Human Interface Device, Sammelbegriff für Tastatur, Maus u.A.). Unter den Beispielen findet man unter 09.USB – Keyboard  das Programm KeyboardMessage. Mit diesem Programm ist es recht leicht möglich Texte an den PC zu schicken, und so z.B. einen Editor zu füllen. Dazu kann man entweder einen Taster an den Pin 2 Anschließen, oder die Entsprechenden IF-Abfragen rausnehmen. Der zweite weg ist dabei der extreme Quick and Dirty Way, den bei mir war es danach nicht mehr so leicht möglich ein anderes Programm reinzuladen, da der Controller Permanent Texte in meine Programmierumgebung gehauen haut und deswegen ein Kompilieren unmöglich war. Die Lösung war dabei, die Reset Taste gedrückt zu halten, den Controller Anschließen und erst kurz vor dem Programmieren wieder loszulasse.