Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Das Arduino Framework und die dazugehörige IDE (Entwicklungsumgebung) helfen Programmieranfängern beim Einstieg in die Welt von Physical Computing. Dabei bietet die Umgebung einen einfache Editor, eine Möglichkeit den Code zu kompilieren und auf ein Arduino Gerät zu laden, sowie Entwicklungsbibliotheken in das Projekt einzubinden. Doch diese Hilfen, welche den Einstieg vereinfachen, können in einem grösseren Projekt hinderlich sein. Sobald man mehr als fünf Tabs in der Arduino IDE offen hat, wird es unübersichtlich und man sollte sich überlegen, auf eine professionellere Umgebung zu wechseln.

Image RemovedImage Added

PlatformIO ist eine alternative zur Arduino Umgebung. Dabei ist wichtig zu wissen, dass PlatformIO nur die Umgebung von Arduino ersetzt. Das bedeutet, dass das Projekt management, entwickeln, hochladen und testen verändert wird, der Funktionsumfang vom Arduino Core Framework aber immer noch der gleiche ist.

...

Hier folgt nun eine kurze Einführung in die verschiedenen Komponenten von PlatformIO. Dabei wird das Kommandozeilen Programm von PlatformIO verwendet, da dies die Basis für alle Entwicklungsumgebungen bietet. Für weitere Informationen kann man die ausführliche Dokumentation von PlatformIO konsultieren.

https://docs.platformio.org/en/latest/

Initialisierung

tbd

Hallo Welt

tbd

Konfiguration

tbd

Bibliotheken

tbdUm ein neues Projekt zu erstellen, muss man einen neuen Ordner erstellen und darin ein PIO Projekt initialisieren. Dies bewerkstelligt man mit dem Befehl pio init gefolgt von den projektspezifischen Parametern. Um ein neues Projekt für ein Arduino UNO zu erstellen, verwenden wir folgenden Befehl:

pio init --board uno

Falls man auch gleich die Unterstützung für eine IDE initialisieren will, kann man den --ide Parameter hinzufügen und angeben, welche IDE initialisiert werden soll.

pio init --board uno --ide clion

PlatformIO erstellt dann eine Ordnerstruktur für das neue Projekt, sowie eine Konfigurationsdatei.

  • CMakeLists.txt
  • CMakeListsPrivate.txt
  • include
  • lib
  • platformio.ini
  • src
  • test

Hallo Welt

Im src Ordner kann man nun eine neue Datei erstellen mit dem Namen main.cpp, welche unseren Einstieg für das Arduino Framework beinhaltet:

#include "Arduino.h"

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.println("Hello world");
    delay(100);
}

Grundsätzlich ist das die gleiche Struktur, wie in der Arduino IDE. Da wir uns aber nun in einem C++ Kontext befinden, müssen wir angeben, dass wir die Arduino spezifischen Befehle einbinden wollen. Um das Projekt nun zu kompilieren und auf ein Arduino zu laden können wir folgenden Befehl im Hauptordner unseres Projektes ausführen:

pio run --target upload

Konfiguration

Die Datei platform.ini ist die zentrale Konfigurationsdatei des Projektes. In dieser ist beschrieben, für welche Platform das Projekt entwickelt wird, welche Abhängigkeiten benötigt werden und wie der Code kompiliert werden muss. Hier besteht auch die Möglichkeit, Parameter zu definieren, welche beim kompilieren in den Code eingefügt werden. Das kann wichtig sein um z.B. ein WLAN Passwort zu setzen.

Bibliotheken

Einer der grössten Vorteile von PlatformIO ist der Bibliotheksmanager. Mit diesem ist es möglich, die Abhängigkeiten eines Projektes zu definieren und diese auch gleich herunterzuladen, falls sie nicht vorhanden sind. Damit kann man für jedes Projekt die jeweiligen Abhängigkeiten installieren und ist nicht an eine einzige Version gebunden, wie in der Arduino IDE. Alle Bibliotheken welche von PlatformIO angeboten werden, kann man auch durch ihre Webseite finden.

https://platformio.org/lib

Um nun eine Bibliothek zu installieren, benötigt man den eindeutigen Namen oder die ID der Bibliothek. Beides kann über die Webseite gefunden werden. Will man eine bestimmte Version der Bibliothek herunterladen, kann man die Versionsnummer nachfolgend mit einem @ angeben. Die Installation selbst erfolgt über die Kommandozeile oder kann direkt im platform.ini eingetragen werden.

pio lib install "Adafruit MSA301"

Um die Versionsnummer zu fixieren, installiert man die Bibliothek wie folgt:

pio lib install "Adafruit MSA301@1.0.1"

Wenn nun jemand das Projekt herunterlädt und mit PlatformIO kompiliert, werden die benötigten Abhängigkeiten automatisch heruntergeladen und im Projekt installiert.

Im Falle, dass eine Bibliothek nicht im PIO Bibliotheksmanager vorhanden ist, kann man diese einfach in den lib Ordner legen (das gleiche Prinzip wie der Arduino Library Ordner).