Vorstellung des M5Stamp Pico

Was der kleine M5Stamp Pico kann und wie du diesen in der Entwicklungsumgebung UI-Flow programmiert wird, zeige ich dir in diesem Beitrag.

Ich habe dir bereits einige Mikrocontroller von der Firma M5Stack auf diesem Blog vorgestellt, dieser ist jedoch etwas Besonderes und das liegt nicht daran das dieser nur knapp so groß ist wie eine Briefmarke.

Bezug des M5Stamp Pico

Den M5Stamp Pico bekommst du auf ebay.de schon ab 13 € inkl. Versandkosten oder aber im offiziellen Shop von M5Stack für 16 $ zzgl. Versandkosten nach Deutschland. Leider ist das Angebot im offiziellen Shop von M5Stack immer sehr begrenzt und daher muss man recht schnell sein.

Ein guter Shop jedoch mit sehr langer Lieferzeit ist aliexpress.com dort zahlt man teilweise nur 5,50 € zzgl. 4,43 € Versandkosten.

Verpackung des M5Stamp Pico
Verpackung des M5Stamp Pico

Lieferumfang

Zum Lieferumfang des M5Stamp Pico gehört:

  • der Mikrocontroller M5Stamp Pico,
  • eine 9polige Stiftleiste,
  • eine 6polige Stiftleiste,
  • eine 9polige Buchsenleiste,
  • eine 6polige Buchsenleiste,
  • einen Grove Adapter,
  • einen Sechskantschlüssel,
  • einen farbigen Aufkleber mit Pinbelegung

Technische Daten des M5Stamp Pico

sdfgsdfg

MikrocontrollerESP32-PICO-D4
Speicher4 MB FLASH
Eingangsspannung5 V bei max. 500 mA Stromaufnahme
StromaufnahmeStandby – Idle : 29 mA,
Wi-Fi STA Mode: 60 mA,
Bluetooth senden: 84 mA,
Deep-Sleep: 0.35 mA
Eingabe/Ausgabeeinen frei programmierbarer Taster,
frei programmierbare RGB LED (Typ SK6812)
Wi-Fi Antenne2.4 G 3D Antenne
Wi-Fi802.11 b/g/n (bis zu 150 Mbps bei 802.11n)
BluetoothBluetooth 4.2
SchnittstellenADC, DAC, Touch Sensor, SD/SDIO/MMC Host Controller, SPI, SDIO/SPI Slave Controller, EMAC, Motor PWM, LED PWM, UART, I2C, I2S, IR remote Controller, GPIO, Pulse Counter
GPIOsG0, G1, G3, G26, G36, G18, G19, G21, G22, G25, G32, G33
Betriebstemperatur0°C bis 60°C
Gewicht2,6 g (inkl. Stiftleisten und Gehäuse 12g)
Abmaße (L x B x H)18 mm x 24 mm x 4,4 mm
Technische Daten des M5Stamp Pico

Aufbau

Bevor wir mit der Programmierung beginnen können, müssen wir den kleinen Mikrocontroller erstmal aufbauen.

Ich wähle für den Aufbau die Stiftleisten und stecke diese auf ein 170 Pin Breadboard und kann so die Platine mit den Stiftleisten verlöten, ohne dass diese wackeln und ggf. im falschen Winkel stehen.

M5Stamp Pico auf Breadboard
M5Stamp Pico auf Breadboard

Auf dem Foto erkennt man neben dem Mikrochip ESP32-PICO-D4 einen Printtaster sowie die RGB LED vom Typ SK6812.

Grove Schnittstelle

Des Weiteren verfügt der Pico Mate über eine Grove Schnittstelle über welche man die Pins 32 & 33 abgreifen / programmieren kann.

Ich habe die Grove Schnittstelle von unten angelötet, dieses hat den Vorteil das man das Gehäuse inkl. Aufkleber für die Pinbelegung nicht zerschneiden muss, jedoch muss man einmal ein Grovekabel kreuzen damit man einen Sensor / Aktor anschließen kann.

  • Schwarz > Gelb
  • Weiß > Rot
  • Rot > Weiß
  • Gelb > Schwarz
Grove Kabel gekreuzt
Grove Kabel gekreuzt

Pinout

Auf dem beigelegten Aufkleber ist die Pinbelegung gedruckt und so lässt sich sehr einfach ablesen wie zbsp. der ESP32 Downloader angeschlossen werden muss.

Pinout des M5Stamp Pico Mate
Pinout des M5Stamp Pico Mate

Das Bild vom Pinout darf ich mit der Genehmigung von M5Stack für diesen Beitrag verwenden. Du findest weitere Informationen zu diesem Mikrocontroller unter M5Stamp Pico Mate with Pin Headers.

Pinout des M5Stamp Pico
Pinout des M5Stamp Pico

Leider ist der Kleber des Aufklebers sehr schlecht und dieser hält nicht wirklich lange.

BauteilPin
SK6812 RGB LEDGPIO27
ButtonGPIO39

Programmieren des M5Stamp Pico

Zum Programmieren des M5Stamp Pico benötigt man zusätzlich den ESP32 Downloader. Das liegt unter anderem daran, dass der Mikrocontroller über keinen eigenen USB-Serial Konverter (wie zbsp. einen CH340G oder ähnliches) verfügt.

Diesen ESP32 Downloader kannst du ebenfalls im offiziellen Shop von M5Stack für knapp 10 $ zzgl. Versandkosten beziehen. Es gibt aber auch ein Set welches neben dem Pico auch den ESP32 Downloader enthält und somit kann man dort etwas sparen.

Den ESP32 Downloader kannst du entweder mithilfe der beigefügten Breadboardkabel anschließen oder solltest du statt der Stiftleisten die Buchsenleisten gewählt haben direkt aufstecken.

Leider sind die Buchsenleisten und Stiftleisten von so mieser Qualität, sodass die Breadboardkabel nicht halten. Daher habe ich mir aus einer Lochrasterplatine und ein paar Buchsenleisten eine kleine Adapterplatine gelötet.

Der Vorteil ist, dass man den ESP32 Downloader direkt anschließen kann.

Flashen des M5Stamp Pico Mate im M5Burner

Bevor wir mit der eigentlichen Programmierung beginnen flashen wir die aktuelle Firmware auf den M5Stamp Pico Mate über den M5Burner.

Den M5Burner kannst du von der Seite https://shop.m5stack.com/pages/download als ZIP-Datei herunterladen und musst du lediglich in ein beliebiges Verzeichnis entpacken.

Wenn das Programm M5Burner gestartet wurde, dann muss zunächst der M5Stamp aus dem linken Menü ausgewählt werden „STAMP“ (1). In meinem Fall muss ich zunächst das Flashfile herunterladen (2). Wenn dieses geschehen ist, so muss zunächst (soweit nicht bereits gesetzt) der COM-Port ausgewählt werden (3) und danach kann man auf die Schaltfläche „Configuration“ (4) klicken. Es sollte sich nun ein neues Fenster öffnen, in welchem man den Modus auswählen kann (5) (USB oder Internet) und die WiFi Einstellungen vornehmen kann (6) wenn wir die Einstellungen getroffen haben, speichern wir diese über die Schaltfläche „Save“ (7) und der Dialog wird automatisch geschlossen.

ACHTUNG: Während des Schreibens der Daten darf das USB-Kabel nicht getrennt werden!

Wenn der Vorgang abgeschlossen ist, kann mit der Programmierung begonnen werden.

Für die Programmierung des M5Stamp Pico Mate verwende ich die Arduino IDE. Die bereits in einigen Beiträgen gezeigte / verwendete IDE UIFlow kann für diesen Mikrocontroller nur bedingt verwendet werden. Die Offline Version UIFlow IDE, welche als ZIP-Datei ausgeliefert wird, unterstützt derzeit nicht den M5Stamp.

UI Flow - unterstützte Geräte in der offline IDE
UI Flow – unterstützte Geräte offline IDE

Möchtest du also den Mikrocontroller in UIFlow programmieren, so musst du die Online Version verwenden.

Programmieren in der Arduino IDE

Den M5Stamp Pico Mate kannst du über der Arduino IDE in C/C++ programmieren.

Dazu musst du jedoch den passenden Treiber über den Boardverwalter installieren. Zuvor musst du jedoch die nachfolgende zusätzliche Boardverwalter URL in den Voreinstellungen setzen.

https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json

Wenn du dieses getan hast, dann findest du im Boardverwalter unter dem Suchbegriff „M5Stack“ (1) den offiziellen Treiber, welchen du über die Schaltfläche „Installieren“ (2) kannst.

Arduino IDE - Boardverwalter installieren M5Stack Lib - Step 1
Arduino IDE – Boardverwalter installieren M5Stack Lib – Step 1

Beispiel – „Hello World!“

Fangen wir mit einem recht einfachen Beispiel an und geben die Zeichenkette „Hello World!“ auf der seriellen Schnittstelle aus.

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

void loop() {
  Serial.println("Hello World!");
  delay(500);

}

Wenn diese paar Zeile Code auf den Mikrocontroller übertragen wurden dann können wir über den seriellen Monitor der Arduino IDE die Ausgabe lesen.

Oder man verwendet ein anderes Terminalprogramm wie Putty oder MobaXterm.

Interne RGB LED programmieren

Auf dem Pico Mate ist eine RGB LED vom Typ SK6812 verbaut, welche nun programmiert werden und in diversen Farben aufleuchten soll.

Für das ansteuern der RGB LED verwende ich die Bibliothek FastLED, welche du recht bequem über den Bibliotheksverwalter der Arduino IDE installieren kannst. Auf dem GitHub Repository FastLED / FastLED kannst du dir alternativ diese Bibliothek als ZIP-Datei herunterladen.

Wie eine Bibliothek in der Arduino IDE installierst, habe ich dir im gleichnamigen Beitrag Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert.

M5Stamp Pico Mate - onboard RGB LED programmieren
Dieses Video ansehen auf YouTube.

Hier nun der Sketch zum Video:

// Bibliothek zum ansteuern der RGB LED
#include <FastLED.h> 

// Anzahl der verbauten LEDs
#define NUM_LEDS 1

// Pin an welchem die LED angeschlossen ist
#define DATA_PIN 27

// Ein Objekt definieren mit den LEDs
CRGB leds[NUM_LEDS];

void setup() { 
    // definieren das eine RGB LED vom Typ SK6812 am DATA_PIN angeschlossen ist.
    // Wichtig ist hierbei das von RGB auf GRB geändert wird!
    FastLED.addLeds<SK6812, DATA_PIN, GRB>(leds, NUM_LEDS);
}
    

void loop() { 
  // LED an Position 0 auf die Farbe "rot" setzen
  leds[0]= CRGB::Red;
  // anzeigen der Farben
  FastLED.show();
  // eine Pause von 500 ms.
  delay(500);

  // deaktivieren der LED durch setzen der Farbe Schwarz (r=0, g=0; b=0)
  leds[0] = CRGB::Black;
  // anzeigen der Farben
  FastLED.show();
  // eine Pause von 500 ms.
  delay(500);
}

In dem Code wird die LED in der Farbe Rot zum blinken gebracht. Auf der Seite FastLED 3.1 CRGB Struct Reference findest du weitere Farbcodes welche du hier setzen kannst um deine LED in einer anderen Farbe zum leuchten zu bringen.

Alternativ kannst du auch einen RGB Wert eingeben.

  leds[0].red = 255;
  leds[0].green = 25;
  leds[0].blue = 50;

Fazit & Ausblick

Da der M5Stamp Pico Mate über eine Grove Schnittstelle sowie einige GPIOs verfügt kann man einige kleine Projekte mit diesem durchführen.

In den nächsten Beiträgen zu diesem Mikrocontroller erwarten dich somit ein kleines Geschicklichkeitsspiel sowie ein Beispiel wie man eine WiFi-Verbindung aufbaut in dort Sensordaten an einen IoT Service wie ThingSpeak sendet.

6 Kommentare

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.