In diesem Beitrag möchte ich dir in einem ersten Test zeigen wie du den M5Stack BugC Programmieren kannst.
Was ist der M5Stack BugC?
Der M5Stack BugC ist ein kleiner Roboter welcher über folgende Features verfügt:
- an jeder Seite über einen Motor,
- vorne zwei RGB LEDs,
- unten eine LiPo Batterie vom Typ ICR16340 (3.7V)





Bezug des BugC
Meinen kleinen Roboter habe ich im Shop RobotShop für knapp 16 € zzgl. Versandkosten erstanden. Natürlich findest du diesen auch auf den einschlägigen Portalen wie ebay.de* oder banggood.com jedoch zu einem deutlich höheren Preis.
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!
Der Lieferumfang des BugC ist recht überschaulich, denn dieser wird fertig aufgebaut geliefert und in meinem Fall war sogar die LiPo Batterie bereits eingesteckt. Somit kann man nach dem Auspacken bereits loslegen.
Vorsicht beim Umgang mit LiPo Batterien
Beim Umgang mit der LiPo Batterie gibt es einiges zu beachten.
- Eine LiPo Batterie darf nicht verpolt geladen werden!
- Keinen Kurzschluss verursachen!
- Keine extremen Temperaturen aussetzen!
(idealler Temperaturbereich 10° C bis 40° C) - Nicht ins Feuer werfen!
(generell bei Akkus & Batterien keine gute Idee) - Keinem Wasser aussetzen!
M5Stack BugC & M5StickC
Der M5StickC verfügt über eine 8polige Buchsenleiste und der BugC über eine passende 8polige Steckerleiste. (Bauartbedingt kann man den M5StickC nicht verkehrt einstecken.)


Der Mikrocontroller M5StickC sitz recht stramm auf dem BugC und kann nicht ohne weiteres runterfallen.




Programmieren des M5Stack BugC in M5Flow
Der BugC lässt sich in der Software M5Flow recht einfach programmieren bzw. über den Block-Editor konfigurieren.
Auf dem GitHub Repository StefanDraeger / m5Stack findest du alle nachfolgenden Beispiele zum Download.
Du kannst dir die Software entweder unter https://shop.m5stack.com/pages/download herunterladen oder aber auch direkt im Browser arbeiten. Beide Versionen habe ich probiert und funktionieren mit diesem Roboter inkl. M5StickC.
Für die Programmierung im Browser benötigst du den API KEY, dieser wird dir auf dem M5StickC nach dem Start auf dem Display angezeigt.


Wenn du wie ich, hier die IDE als lokale Kopie auf dem Computer verwendest, dann musst du lediglich den COM-Port auswählen.
Einrichten des BugC in M5Flow
Zunächst müssen wir den BugC in der Software M5Flow einrichten. Dazu klicken wir auf den Text „HAT“ danach auf das Pluszeichen, es öffnet sich nun ein neues Fenster in welchem die verfügbaren HATs aufgelistet sind.
Aus dieser Liste wählen wir nun den BugC aus und bestätigen die Auswahl mit der Schaltfläche „OK“.
Es wird nun ein zusätzlicher Menüpunkt „BugC“ unter „C-HAT“ angezeigt, wo du die 5 verschiedenen Elemente zum steuern des kleinen Roboters findest.
Wechselblinken der RGB LEDs
Wie bereits erwähnt, sind auf dem BugC zwei RGB LEDs verbaut, welche man recht einfach zum Wechsel blinken bringen kann.
Theoretisch kann man auch einen RGB Wert setzen und somit aus der 32-bit Farbpalette einen beliebigen Farbwert wählen. Jedoch sind die RGB LEDs nicht so gut als dass man wirklich feine Unterschiede erkennen kann. Also beschränkt man sich hier auf die Grundtöne.
Im nachfolgenden Code habe ich 3 Schleifen ineinander verschachtelt und kann somit die RGB Farbtöne auf den RGB LEDs anzeigen.
Auf dem Display des M5StickC wird dabei der RGB Wert ausgegeben.
from m5stack import * from m5ui import * from uiflow import * import hat import time setScreenColor(0x111111) hat_bugc0 = hat.get(hat.BUGC) label0 = M5TextBox(45, 7, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=90) steps = 35 while True: for red in range(0,256, steps): for green in range(0,256, steps): for blue in range(0, 256, steps): hat_bugc0.SetAllRGB((red << 16) | (green << 8) | blue) text = "rgb ("+ str(red) + "," + str(green) + "," + str(blue) + ")" label0.setText(text) time.sleep(0.015)
Steuern der Motoren des BugC über M5Flow
An jeder Ecke des BugC ist ein kleiner Motor verbaut, welcher einzeln angesteuert werden kann. Für das ansteuern der Motoren benötigen wir den jeweiligen Index des Motors.
Für die Steuerung der Motoren gibt es zwei verschiedene Elemente in M5Flow.
Das Element „SetPulse“ kann einen Motor steuern, wobei wir den Index übergeben müssen. Im Element „SetAllPulse“ können wir alle 4 Motoren gleichzeitig einen Wert zuordnen.
Als Werte sind positive und negative Zahlen möglich. Wobei wir bei einer Bewegung immer die entgegen gesetzten Motoren mit jeweils positiven / negativen Zahlen setzen.
Mit diesem kleinen Stück Code können wir nun den BugC einmal hin und her wackeln lassen.
Im Hintergrund kann man recht gut hören, dass ich das Programm mehrmals starte und der Roboter sich dann über den Tisch bewegt.
Fazit & Ausblick
Für den ersten Test dieses bis hier ausreichen. Als Nächstes möchte ich nun schauen, wie dieser kleine Roboter gesteuert werden kann.
Der M5StickC verfügt über eine WiFi sowie noch eine freie Grove Schnittstelle und somit haben wir die Möglichkeit über zbsp. einem IR Empfänger und einer entsprechenden Fernbedienung diesen kleinen Roboter zu steuern.