Show Oft ist es so, dass sich Bastler mit Elektronik sehr gut auskennen, Programmieren aber noch ein Problem darstellt. Zahlreiche Tutorials bieten fertigen Quellcode, den man nur auf den Mikrocontroller laden muss. Man lernt durch try-and-error, versteht aber oft nicht, was in dem Programm geschieht. Möchte man dann ein umfangreicheres Projekt umsetzen, landet man auch mal in einer Sackgasse. Die folgenden Grundlagen sollen dazu dienen, den Zugang zum Programmieren etwas zu erleichtern. Ein eigenes Programm auf einen Arduino Mikrocontroller zu übertragen, kann auf verschiedene Art und Weise geschehen. In unseren Blogbeiträgen gibt es bereits eine Anleitung für die Installation und Verwendung der Entwicklungsumgebung PlatformIO. Wir richten das Hauptaugenmerk in dieser Beitragsserie auf die Arduino IDE, die sich gut für Einsteiger eignet. Was wird benötigt?• Computer (Windows, Linux, MacOS) Auf der Webseite Arduino.cc steht die Arduino IDE (Integrated Development Environment, deutsch:
Erste Schritte - InstallationZunächst sollte natürlich die Arduino IDE installiert werden. Dafür führt man am besten den Windows Installer aus und befolgt die Anweisungen des Installationsprogramms. Als Option steht auch eine portable Version zur Verfügung. Für Linux lädt man eine gepackte .tar.xz-Datei herunter und entpackt sie anschließend. Das kann aus dem Kontextmenü über die rechte Maustaste geschehen. Hier wählt man „Hier entpacken“. In dem Ordner, der dann angelegt wird, befindet sich eine Datei namens install.sh, die ebenfalls über die rechte Maustaste und den Befehl „Im Terminal ausführen“ gestartet wird. Es handelt sich dabei um ein shell script. Hat man bereits ein Terminalfenster geöffnet, wechselt man in den eben entpackten Ordner und startet als Alternative die Installation mit der Kommandozeile ./install.sh. Sollte es Probleme mit der Berechtigung geben,
Abbildung 1: Installation Arduino IDE - Treiber
Abbildung 2:Installation Arduino IDE - weitere Treiber War
die Installation erfolgreich, wird der Arduino Nano per Mini-USB Kabel an den Computer angeschlossen und die IDE gestartet. Die Startreihenfolge ist dabei unerheblich. Eventuell muss man im Programm unter dem Menüpunkt „Werkzeuge“ manuell den Port auswählen, schließt man den Arduino erst nach dem Programmstart an.
Abbildung 3: Arduino IDE - Portauswahl BibliothekenverwaltungEs stehen zahlreiche Bibliotheken zur Verfügung. Das bedeutet, dass fertige Programmfunktionen eingebunden und genutzt werden können. Die Arduino IDE bietet das auf verschiedenen Wegen an. Zum einen kann man im Menüpunkt „Werkzeuge“ unter „Bibliotheken verwalten…“ bzw. STRG+UMSCH+I aus dem Online Repository zahlreiche Bibliotheken zu installieren. Möchte man z.B. ein LCD-Display nutzen, kann man die LiquidChrystal Library installieren und hat so auf einfache Weise passende Funktionen zur Verfügung sowie Beispielcode, der anschließend über das Menü „Datei“ und anschließend „Beispiele“ erreichbar ist. In der Arduino IDE ist bereits eine solche Bibliothek installiert. Das erkennen wir auch in der Verwaltung.
Abbildung 4: Arduino IDE - Bibliothekverwalter Andere Onlinequellen kann man unter „Datei“ und dann „Voreinstellungen“ unter dem Punkt „Zusätzliche Boardverwalter-URLs“ einbinden. In unserem Beispiel die Bibliothek für den ESP8266, einem Arduino kompatiblen Mikrocontroller mit WLAN-Schnittstelle.
Abbildung 5: Arduino IDE - Voreinstellungen Hat man Bibliotheken aus einer anderen Quelle bezogen, kann man sie als ZIP-Datei auch direkt über das Menü „Sketch“, dann „Bibliothek einbinden“ und anschließend „.ZIP-Bibliothek hinzufügen…“ hinzuladen. Es ist auch möglich, Bibliotheken in den Sketchebooks-Ordner unter „libraries“ abzulegen. Nach einem Neustart der IDE sind diese dann verfügbar. Möchte man nun die Funktionen der Bibliotheken nutzen, kann man sie über das Menü „Sketch“ und dann „Bibliothek einbinden“ einfach auswählen. Hier ein kurzes Beispiel: Es wird dann eine Zeile hinzugefügt die z.B. lautet:
#include ist eine Präprozessordirektive und bindet an dieser Stelle die Headerdatei für die zuvor installierte LCD-Bibliothek ein. Durch diese Datei werden dem Compiler Klassen, Funktionen und Variablen bekannt gemacht, die in der Bibliothek verwendet werden. Diese können nun genutzt werden. Tipp: Ist der Pfad zur Bibliothek bekannt, werden eckige Klammern verwendet. Sollten Fehler auftreten, kann es sein, dass der Pfad zur Bibliothek nicht gefunden wird. Dann kann man ihn mit angeben und muss dann aber statt der eckigen Klammern doppelte Anführungszeichen verwenden. Als Beispiel kann man nun ein Objekt vom Typ LiquidCrystal erzeugen und ihm einen Namen, sowie die digitalen Pins geben. Die Zeile sieht dann ungefähr so aus:
Es ist nun möglich, mit lcd.begin(16, 2); das Display zu initialisieren (16, 2 steht für 16 Spalten und 2 Zeilen. Für größere oder kleinere Displays muss man diese Werte ändern) und anschließend mit lcd.print("hello, world!"); Text darauf auszugeben. Es sind noch einige andere Funktionen in dieser Klasse verfügbar. Es soll nur verdeutlicht werden, wie man fertige Programmmodule einbinden kann. Das erste Programm - SketchesDie Arduino IDE speichert Programme als sogenannte Sketches. Es wird dafür ein Ordner „Sketchbooks“ angelegt. Dort werden auch Hardwareinformationen und Bibliotheken gespeichert, die man manuell der IDE hinzufügt. Man kann selbstverständlich auch eigene Speicherorte wählen. Sketches werden als .ino-Datei abgelegt.
In den Voreinstellungen kann man den Ort des Sketchbooks und weitere Optionen wählen. Wir wollen nun das erste Programm auf den Arduino Nano laden und ihn damit testen. Zuerst überprüfen wir, ob der Arduino Nano als Zielgerät ordnungsgemäß eingestellt ist. Dafür wählen wir das Menü Werkzeuge. Dort Findet man die Einstellungen für Board, Prozessor und Port. standardmäßig ist hier der Nano eingestellt. Wie bereits vorher erwähnt, kann es vorkommen, dass man den Port noch einmal manuell einstellen muss.
Abbildung 6: Arduino IDE - Boardauswahl Es werden zahlreiche Beispielprogramme mitgeliefert. Sie beinhalten unter anderem das Blink-Programm. In Programmierkreisen wird für erste Tests oft „Hello World!“ benutzt. Blink ist das hello world für LEDs.
Abbildung 7: Arduino IDE - Beispiele Öffnen wir die Beispieldatei, können wir sie entweder zuerst kompilieren oder direkt hochladen. Das Kompilieren wird trotzdem automatisch ausgeführt. Man spart sich hier den ersten Schritt. Kompilieren nennt man den Vorgang, der das Programm in Maschinencode umwandelt, der vom Mikroprozessor ausgeführt werden kann. Mit STRG+R auf der Tastatur, aus dem Menü Sketch -> Überprüfen/Kompilieren, oder mit dem Häkchen-Button im Programm wird das Kompilieren gestartet. So geht's weiter: Welche Programmiersprache benutzt man bei Arduino?Die Elemente der Arduino (C++) Programmiersprache.
Was bedeutet == Arduino?Beschreibung. Vergleicht die linke Variable mit dem Wert oder der Variablen rechts vom Operator. Gibt true zurück, wenn die beiden Operanden gleich sind.
Ist Arduino C oder C++?Arduino-Boards werden oft in C programmiert. Es ist nur wenig bekannt, dass für die Arduino-Programmierung auch zahlreiche Sprachelemente von C++ zur Verfügung stehen. So können Arduino-Programme auch mit Klassen und Vererbung geschrieben werden und die Vorteile der objektorientierten Programmierung nutzen.
Wie oft kann ein Arduino programmiert werden?Der Hersteller garantiert 10000 Überschreiben des Flash-Speichers wobei auch noch beim 10000 mal die Daten 100 Jahre halten müssen. Um 10000 Updates zu erreichen mußt Du Dich schon mächtig anstrengen.
|