M5StickC PLUS ist ein ESP32 mit 1 Zoll Display

Der M5StickC PLUS wird von ESP32-PICO-D4 Dual-Core-Prozessor angetrieben und hat somit Wi-Fi und Bluetooth mit an Board. Er ist ein Upgrade des ursprünglichen M5StickC nur mit einem größeren 1,14 Zoll LCD-Bildschirm (Auflösung von 135 * 240) und höherer Akkukapazität.
Dieses daumengroße Open-Source-IoT-Entwicklungsboard ermöglicht es „winzige“ Ideen zu verwirklichen und ist dabei auch noch Portabel da er mit einem 120 mAh Lithium-Polymer-Akku ausgestattet ist. Das Power Managment (PMU) wird geregelt mit dem AXP192 Chip.
Im kompakte Gehäuse sind für diverse Projekte auch noch folgende Hardware-Ressourcen untergebracht:

  • IMU MPU-6886: Ein 6-Achsen-Bewegungssensor (Gyroskop und Beschleunigungsmesser) GPIO 21,22
  • Mikrofon: SPM-1423 für Audioeingaben (GPIO 34,0)
  • RTC BM8563: Echtzeituhr für zeitkritische Anwendungen.
  • Infrarotsender: Für Fernsteuerungsanwendungen (GPIO 9)
  • Tasten: Zwei benutzerdefinierte Tasten und eine Powertaste
  • LED: Eine rote LED für Statusanzeigen (GPIO 10)
  • Summer: Für akustische Signale (GPIO 2)
  • einige extern erreichbare GPIO Pins
  • Anschluss für 4-polige Stecker mit dem von Seeed Studio entwickelten Grove Standard mit VCC, GND und zwei Datenleitungen (GPIO 32,33) z. B. für analoge, digitale, UART- oder I²C-Signale

Vorbereitung in der Entwicklungsumgebung Arduino IDE 2.x:

dann Board Library M5Stack installieren, danach M5StickCPlus

Einige Tutorials von m5-docs getestet.

Erster Test: Text auf Display:

#include <M5StickCPlus.h>

void setup() {
  M5.begin();
  M5.Lcd.setTextColor(RED, WHITE);
  M5.Lcd.println("Hallo, Prilchen!!");
}
void loop() {
}

Beispiel: QR Code

#include <M5StickCPlus.h>

void setup() {
    M5.begin();
    M5.Lcd.qrcode("https://prilchen.de", 0, 0,135);  
}

void loop() {
}

oder das ein Tasten Spiel Flappy:

Beispiel Bildschirmtest:

Beispiel WLAN Accesspoint Finder:

Beispiel Würfel neue Werte durch Schütteln:


Beispiel: Bewegungssensor auslesen:

Mit diesem Sketch kann man den internen MPU6886 (IMU-Sensor) des M5StickC PLUS testen.
Der IMU-Sensor enthält ein Gyroskop und einen Beschleunigungssensor, mit dem du Bewegungen und Neigungen erfassen kannst.

#include <M5StickCPlus.h> // M5StickC PLUS Bibliothek

float accX, accY, accZ; // Beschleunigung
float gyroX, gyroY, gyroZ; // Gyroskop

void setup() {
    M5.begin(); // M5StickC PLUS starten
    M5.Lcd.setRotation(3); // Display richtig ausrichten
    M5.Lcd.fillScreen(BLACK); // Bildschirm leeren
    M5.IMU.Init(); // MPU6886 initialisieren
    Serial.begin(115200);
}

void loop() {
    // Sensorwerte auslesen
    M5.IMU.getAccelData(&accX, &accY, &accZ);
    M5.IMU.getGyroData(&gyroX, &gyroY, &gyroZ);

    // Serieller Monitor
    Serial.print("Acc X: "); Serial.print(accX);
    Serial.print(" | Y: "); Serial.print(accY);
    Serial.print(" | Z: "); Serial.println(accZ);

    Serial.print("Gyro X: "); Serial.print(gyroX);
    Serial.print(" | Y: "); Serial.print(gyroY);
    Serial.print(" | Z: "); Serial.println(gyroZ);
    
    // Anzeige auf dem Display
    M5.Lcd.fillScreen(BLACK);
    M5.Lcd.setTextSize(2);
    M5.Lcd.setCursor(10, 10);
    M5.Lcd.setTextColor(WHITE);
    M5.Lcd.println("MPU6886 Test");

    M5.Lcd.setCursor(10, 40);
    M5.Lcd.print("Acc X: "); M5.Lcd.println(accX, 2);
    M5.Lcd.print("Acc Y: "); M5.Lcd.println(accY, 2);
    M5.Lcd.print("Acc Z: "); M5.Lcd.println(accZ, 2);

    M5.Lcd.setCursor(10, 100);
    M5.Lcd.print("Gyro X: "); M5.Lcd.println(gyroX, 2);
    M5.Lcd.print("Gyro Y: "); M5.Lcd.println(gyroY, 2);
    M5.Lcd.print("Gyro Z: "); M5.Lcd.println(gyroZ, 2);

    delay(500); // Kurze Pause
}

Beispiel Helligkeit messen mit LDR über GPIO Anschlüsse:

  • Verbinde ein Ende des LDR mit 3,3V.
  • Verbinde das andere Ende des LDR mit einem Analogpin 26 des M5StickC Plus und an einem Ende des 1k Ohm Widerstands.
  • Verbinde das andere Ende des 1k Ohm Widerstands mit GND.
#include <M5StickCPlus.h> // M5StickC Plus Bibliothek

const int ldrPin = 26; // ADC-Pin für den LDR

void setup() {
    M5.begin(); // M5StickC Plus starten
    M5.Lcd.setRotation(3); // Display richtig ausrichten
    M5.Lcd.fillScreen(BLACK); // Hintergrund schwarz setzen
    Serial.begin(115200);
}

void loop() {
    int sensorWert = analogRead(ldrPin); // Lese den LDR-Wert (0-4095)
    float spannung = sensorWert * (3.3 / 4095.0); // Umrechnung auf 3,3V Skala

    // Bildschirm aktualisieren
    M5.Lcd.fillScreen(BLACK); // Lösche vorherige Werte
    M5.Lcd.setTextSize(2);
    M5.Lcd.setCursor(10, 10);
    M5.Lcd.setTextColor(WHITE);
    M5.Lcd.print("LDR-Wert: ");
    M5.Lcd.println(sensorWert);
    
    M5.Lcd.setCursor(10, 40);
    M5.Lcd.print("Spannung: ");
    M5.Lcd.print(spannung, 2);
    M5.Lcd.println("V");

    // Balkendiagramm für Helligkeit (Skala 0-100%)
    int helligkeit = map(sensorWert, 0, 4095, 0, 100);
    M5.Lcd.setCursor(10, 70);
    M5.Lcd.print("Helligkeit: ");
    M5.Lcd.print(helligkeit);
    M5.Lcd.println("%");

    // Zeichne einen Balken als visuelle Anzeige
    int balkenLaenge = map(helligkeit, 0, 100, 0, 200);
    M5.Lcd.fillRect(10, 100, balkenLaenge, 20, GREEN);

    delay(500); // Kurze Pause
}

Weitere Details und Quellen:
https://docs.m5stack.com/en/core/m5stickc_plus

https://docs.m5stack.com/en/quick_start/m5stickc_plus/arduino

https://docs.m5stack.com/en/arduino/arduino_development

Online Entwicklungsumgebung:
https://flow.m5stack.com/

, ,
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzerkomfort bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst und hilft uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.