In diesem Beitrag möchte ich dir zeigen, wie du den M5StickC für die Programmierung in der Arduino IDE vorbereitest und einen ersten Sketch hochladen kannst.

Den M5StickC habe ich bisher in der Software UIFlow mit BlockUI programmiert und schon einige kleine bis große Projekte damit umgesetzt.
- M5StickC – Ein ESP32 Zwerg mit nützlichen onboard Funktionen in einem coolen Gehäuse
- eine digitale Wasserwaage mit dem M5StickC
- Ausgeben der Temperaturwerte des DS18B20 Sensors auf dem M5StickC
- M5StickC mit Temperatur & Luftfeuchtigkeit & Luftdruck Sensor (ENV HAT)
Bezug des M5StickC
Den M5StickC bekommst du zzt. in zwei Versionen, zum einen die alte Version (helles, oranges Gehäuse) und die neue Version den M5StickC Plus (dunkles, oranges Gehäuse).
Auf die Unterschiede zwischen den beiden Mikrocontroller gehe ich in einem separaten Beispiel ein.
In diesem Beitrag verwende ich die alte Version, aber für die kommenden Projekte trotzdem völlig ausreichend ist.
Shop | M5StickC | M5StickC Plus |
---|---|---|
ebay.de | 14,09 €* | 32,34 €* |
aliexpress.com | 48,81 € | 24,93 € |
amazon.de | 48,79 €* | – |
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Einrichten der Arduino IDE für den M5StickC
Damit du den benötigten Boardtreiber installieren kannst, musst du zunächst die URL hinzufügen, unter welcher dieser Treiber gefunden werden kann.
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
Unter den „Voreinstellungen“ welche du unter „Datei“ > „Voreinstellungen“ öffnen kannst, wählst du zunächst die Schaltfläche hinter dem Eingabefeld (1), in dem neuen Dialog „Zusätzliche Boardverwalter-URLs“ tragen wir nun die oben gezeigte URL ein (2) und bestätigen dieses mit der Schaltfläche „OK“ (3) im Abschluss wird der Dialog „Voreinstellungen“ ebenfalls über die Schaltfläche „OK“ (4) geschlossen.
Nun müssen / können wir den Boardtreiber für den M5StickC installieren. Dazu öffnen wir den Boardverwalter über „Werkzeuge“ > „Board: xyz“ > „Boardverwalter…“. Und suchen nach M5Stack, danach klicken wir auf die Schaltfläche „Installieren“.
Wenn die Installation abgeschlossen ist, dann wird dieses durch den kurzen Text „INSTALLED“ (3) angezeigt und wir können den Dialog über die Schaltfläche „Schließen“ (4) verlassen.
Nun müssen wir noch unseren M5StickC unter „Werkzeuge“ > „Board: xyz“ > „M5Stack Arduino“ auswählen.
Einbinden der M5StickC Bibliothek
Für die Programmierung der Sensoren / Aktoren am M5StickC gibt es für die Arduino IDE eine spezielle Bibliothek, welche über den Bibliotheksverwalter installiert werden kann.
Den Bibliotheksverwalter findest du über Das Hauptmenü „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten…“.
In dem nun geöffneten Dialog suchen wir zunächst nach „M5StickC“ (1) und wählen aus der Liste den Eintrag „“ aus und betätigen die Schaltfläche „Installieren“ (2)
Zusätzlich müssen wir noch bestätigen, dass die benötigten Abhängigkeiten installiert werden. Diese Abhängigkeiten (Dependencies) enthalten unter anderem die Bibliotheken für die Sensoren und Aktoren am M5StickC.
Beispiele
Auf dem offiziellen GitHub Repository m5stack / M5StickC findest du einige Beispiele zum M5StickC, hier möchte ich dir jetzt gerne zwei kleine Beispiele zeigen, womit wir unsere Einrichtung der Arduino IDE überprüfen können.
„Hello World!“
Starten wir zunächst mit einem recht einfachen Beispiel, der Ausgabe von „Hello World!“ auf der seriellen Schnittstelle.
void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World!"); delay(450); }
Taster programmieren
Der M5StickC verfügt über zwei Taster welche wir frei programmieren können. In der nachfolgenden Grafik mit „Taster A“ & „Taster B“ bezeichnet.
Diese beiden Taster wollen wir als Erstes nutzen, um einen einfachen Zähler auf dem Display hoch und hinunter zuzählen.
#include <Bounce2.h> #include <M5StickC.h> //Taster A, mit der Auschrift "M5" am GPIO 37 angeschlossen #define btnA G37 //Taster B, am GPIO 39 angeschlossen #define btnB G39 //Pause in Millisekunden zwischen zwei Signalen const int PAUSE = 50; //initialisieren der Bounce Objekte für die Taster Bounce btnAbounce = Bounce(btnA, PAUSE); Bounce btnBbounce = Bounce(btnB, PAUSE); //der Zähler welcher manipuliert werden soll int counter = 0; void setup() { //Taster als Eingang über den internen Pullup Widerstand pinMode(btnA, INPUT_PULLUP); pinMode(btnB, INPUT_PULLUP); //für das LCD Display M5.begin(); //Bildschirm in Schwarz M5.Lcd.fillScreen(BLACK); //um 90° drehen M5.Lcd.setRotation(1); } void loop() { //aktualisieren des Tasters btnAbounce.update(); btnBbounce.update(); //Wenn der Taster A betätigt wird dann... if (btnAbounce.rose()) { //Zähler um eins erhöhen ++counter; //Ausgabe des Wertes des Zählers displayCounter(); } //Wenn der Taster B wird wird dann... if (btnBbounce.rose()) { //Zähler um eins verringern --counter; //Ausgabe des Werstes des Zählers displayCounter(); } } //Ausgeben des Wertes des Zählers //auf dem LCD Display des M5StickC void displayCounter() { //Display löschen und Schwarz einfärben M5.Lcd.fillScreen(BLACK); //Positionieren des Textes an den Koordinaten M5.Lcd.setCursor(20, 40); //Schriftfarbe weiß M5.Lcd.setTextColor(WHITE); //Schriftgröße 3 M5.Lcd.setTextSize(3); //den Integer Wert in ein String umwandeln String text = String(counter, DEC); //Umwandeln des Strings in ein char* und ausgeben auf dem LCD Display M5.Lcd.printf(text.c_str()); }
Wenn wir nun die Taste A (auf dem Mikrocontroller mit „M5“ beschriftet) betätigen so wird die Zahl erhöht, wenn wir jedoch die Taste B oberhalb des Gehäuses betätigen so wird der Zähler um eins verringert.