Abb. 9: Ausschnitt aus einer Intel-HEX Datei
Dieses Format versteht der Mikrocontroller, denn es ist seine Native Language oder Muttersprache.
Schritt 4
Der Bootloader überträgt die Intel-HEX-Datei über USB in den Flash-Speicher des Mikrocontroller-Boards. Der sogenannte Upload-Prozess, also die Übertragung zum Board, erfolgt mit dem Programm avrdude. Es ist Bestandteil der Arduino-Installation und befindet sich unter Arduino\hardware\tools\avr\bin.
Die Bibliothekenverwaltung
Die Entwicklungsumgebung stellt eine große Anzahl von Bibliotheken zur Verfügung, die bei der Installation auf deinen Computer mit installiert werden. Sie können für die unterschiedlichsten Anwendungszwecke genutzt werden. In regelmäßigen Abständen werden Verbesserungen, sogenannte Aktualisierungen, zur Verfügung gestellt. Wenn die Entwicklungsumgebung derartige Updates erkennt, erfolgt ein Hinweis:
Abb. 10: Ein Hinweis über vorhandene Bibliotheken-Updates
Nach einem Mausklick auf den angezeigten Link Bibliotheken öffnet sich ein neues Fenster, in dem die neuen Updates zur Auswahl angezeigt werden und die Liste der installierten Bibliotheken wird aktualisiert, was am unten angezeigten Fortschrittsbalken zu sehen ist:
Abb. 11: Eine Liste der zur Verfügung stehenden Updates
Um eine neue Bibliothek zu installieren, wird der entsprechende Eintrag mit der Maus überfahren und es erscheinen in der Regel zwei Hinweise. Zum einen werden die verfügbaren Versionen zur späteren Installation als Liste angeboten und zum anderen wird die Installieren-Schaltfläche eingeblendet:
Abb. 12: Die Installation einer neuen Bibliothek
Ist eine Bibliothek schon installiert, ist dies am grünen Schriftzug INSTALLED zu erkennen und ist dafür ein Update verfügbar, erscheint nach dem Überfahren mit der Maus die Update-Schaltfläche:
Abb. 13: Die Update-Schaltfläche erscheint
Die Bibliothekenverwaltung kann aber auch über den Menüpunkt Werkzeuge | Bibliotheken verwalten... erreicht werden, sodass sich das schon gezeigte Fenster öffnet.
Abb. 14: Der Aufruf der Bibliothekenverwaltung
Die Boardverwaltung
Die Arduino-Entwicklungsumgebung kann nicht nur Arduino-Boards programmieren und kontrollieren, sondern auch Boards von anderen Herstellern, wie zum Beispiel die sehr bekannten und beliebten ESP32 oder ESP8266. Um derartige Boards in die Entwicklungsumgebung zu integrieren, muss der Boardverwalter bemüht werden, der unter dem Menüpunkt Werkzeuge | Board | Boardverwalter... zu erreichen ist:
Abb. 15: Der Aufruf der Boardverwaltung
Möchte ich zum Beispiel die Unterstützung für das megaAVR-Board meiner Arduino-Entwicklungsumgebung hinzufügen, tippe ich rechts oben den Suchbegriff megaAVR ein und das entsprechende Installationspaket wird angezeigt. Es kann dann installiert werden:
Abb. 16: Das Hinzufügen eines neuen Boards
Diese Suche kann natürlich auch bei der Bibliothekenverwaltung angewendet werden. Vielleicht bist du am ESP32 und ESP8266 interessiert und hast ESP32 in das Suchfenster eingegeben. Doch leider liefert dieser Suchbegriff kein Ergebnis und die Liste bleibt leer. Keine Panik! Das hat folgenden Hintergrund: Zahlreiche Boards von Drittherstellern liefern Informationen und Installationsdateien auf einem hauseigenen Verzeichnis. Doch wie kannst du der Arduino-Entwicklungsumgebung diese Pfade mitteilen? Ganz einfach! Ruf über den Menüpunkt Datei | Voreinstellungen das entsprechende Dialogfenster auf. Das sieht dann wie folgt aus, wobei ich den benötigten Pfad zur ESP32-Unterstützung schon eingetragen und markiert habe:
Abb. 17: Die Arduino-Voreinstellungen
Der dort einzusetzende Pfad lautet für die ESP32-Unterstützung:
https://dl.espressif.com/dl/package_esp32_index.json
Für eine kombinierte beziehungsweise zusätzliche Unterstützung des ESP8266-Boards ist der folgende Eintrag dem ersten – getrennt durch ein Komma – hinzuzufügen:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Im Anschluss sind beide Boards zur Installation in die Arduino-Entwicklungsumgebung bereit. Es existiert eine Quelle an inoffiziellen Erweiterungen für sogenannte 3rd-Party-Boards, die unter der folgenden Adresse zu finden ist:
https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls
Dort sind sehr viele Boards aufgeführt, die mit der Arduino-IDE programmiert werden können. Kopiere die auf dieser Seite angebotenen Pfade in die Arduino-Voreinstellungen in der bereits gezeigten Zeile ein und schon kann es losgehen.
Der Sketch-Code in der Entwicklungsumgebung
Zwar kann ich hier keinen Grundkurs in C/C++-Programmierung geben, doch möchte ich ein paar grundlegende Dinge zu dieser Sprache sagen, die in der Arduino-Entwicklungsumgebung eingesetzt wird. Die Programmiersprache C/C++ ist case-sensitive, was bedeutet, dass zwischen Groß- und Kleinschreibung unterschieden wird. Es ist also genau darauf zu achten, wie die Befehle geschrieben werden. Sehen wir uns dazu den Befehl digitalWrite an. Er setzt sich aus zwei Wörtern (digital und Write) zusammen. In der Programmierung wird das Zusammensetzen von Wortbedeutungen mit der Großschreibung des ersten Buchstaben (bis auf das erste Wort) camel-casing genannt. Somit würde die folgende Codierung auf jeden Fall fehlschlagen:
digitalwrite
Derartige Fehler werden aber von der Arduino-Entwicklungsumgebung erkannt und optisch dargestellt. Ein Wort, das Bestandteil eines Befehlssatzes ist, wird in der Regel farblich hervorgehoben. Wird das Wort beziehungsweise der Befehl falsch geschrieben, erfolgt keine farbliche Abhebung vom Rest des Codes, der schwarz