M5Stack

In den letzten Wochen beschäftigte ich mich mit unterschiedlichen Mikrocontrollern und Geräten auf Basis des ESP32. Dabei stieß ich auf die Produkte des chinesischen Herstellers M5Stack.

Die Stick S3 von M5Stack

Bei M5Stack handelt es sich nicht nur um einen Hersteller einzelner Entwicklungsboards, sondern um ein relativ umfangreiches Ökosystem. Angeboten werden unterschiedliche Mikrocontroller, Displays, Sensoren und Erweiterungsmodule. Interessant sind hierbei vor allem die Geräte, welche bereits mit Display, Gehäuse, Tasten und je nach Modell einem Akku ausgestattet sind.

Interessant ist das System vor allem dann, wenn nicht die Entwicklung der Hardware selbst im Vordergrund steht. Für ein klassisches Mikrocontrollerprojekt müssen neben dem Mikrocontroller meist Display, Stromversorgung und Bedienelemente ausgewählt und miteinander verbunden werden. Hier kann hingegen gleich mit fertiger Hardware gestartet werden, welche trotzdem über entsprechende Schnittstellen erweitert werden kann.

Die Stopwatch von M5Stack

Das Angebot selbst ist mittlerweile relativ unübersichtlich geworden und besteht aus einer Reihe unterschiedlicher Produktfamilien. Dazu gehören unter anderem die Core-, Stick-, Atom-, Stamp- und Paper-Geräte.

Für die Programmierung stellt M5Stack mit UIFlow eine eigene Entwicklungsumgebung zur Verfügung. Daneben können die Geräte unter anderem über das Arduino- und Espressif-Ökosystem programmiert werden. Da viele der Geräte auf Mikrocontrollern von Espressif basieren, ist daneben die Entwicklung mit Rust interessant. Für den ESP32 existiert mittlerweile eine entsprechende Rust-Unterstützung. Bei spezielleren Komponenten der M5Stack-Geräte kann es allerdings notwendig sein, entsprechende Treiber oder Abstraktionen selbst zu implementieren.

In Deutschland können die Geräte z. B. über BerryBase bezogen werden, auch wenn viele Geräte im Moment schnell ausverkauft sind.

Schaltplaneditor im Browser

Auf der Suche nach einem einfachen Schaltplaneditor habe ich vor ein paar Tagen Circuit Diagram entdeckt. Mithilfe des Editors ist es schnell möglich Schaltpläne zu zeichnen; auch Komponenten wie Arduinos und Co werden mitgeliefert. Der Editor läuft vollständig im Browser.

Der Schaltplaneditor mit einem Schaltplan

Die fertige Schaltung kann in unterschiedliche Formate exportiert werden. Zu finden ist der Editor unter circuit-diagram.org. Der Editor ist unter der GPL in der Version 2 lizenziert und damit freie Software. Der Quellcode kann über GitHub bezogen werden.

Pinbelegung des NodeMCU-Boards

Wenn man einen ESP8266 programmiert, so wird man dessen GPIOs nutzen um externe Dinge wie Sensoren oder ähnliches anzusteuern bzw. auszulesen. Versucht man das gleiche mit einem NodeMCU-Board wird man feststellen das die Pinbelegung des Boards nicht mit der vom ESP8266 übereinstimmt.

Das NodeMCU-Board in Version 3

Wenn man die Pinbelegung des NodeMCU-Boards mit der vom ESP8266 in Reinform vergleicht, ergibt sich folgendes Bild:

NodeMCU D0 zu ESP8266 16
NodeMCU D1 zu ESP8266 5
NodeMCU D2 zu ESP8266 4
NodeMCU D3 zu ESP8266 0
NodeMCU D4 zu ESP8266 2
NodeMCU D5 zu ESP8266 14
NodeMCU D6 zu ESP8266 12
NodeMCU D7 zu ESP8266 13
NodeMCU D8 zu ESP8266 15
NodeMCU D9 zu ESP8266 3
NodeMCU D10 zu ESP8266 1

Bei der Entwicklung über die Arduino IDE braucht man allerdings keine Sorgen machen. Wird hier das NodeMCU-Board genutzt, so findet man definierte Konstanten von D0 bis D10 um die NodeMCU-GPIOs direkt anzusprechen. Einige der Pins haben auf dem Board eine besondere Funktion:

D1 (I2C Bus / SCL (Clock-Signal))
D2 (I2C Bus / SDA (Datenleitung))
D4 (wie LED_BUILTIN, aber invertierte Logik)
D5 (SPI Bus SCK (Clock-Signal))
D6 (PI Bus MISO)
D7 (SPI Bus MOSI)
D8 (SPI Bus SS (CS))
D9 (Serielle Konsole RX)
D10 (Serielle Konsole TX)

NodeMCU als Bauteil in Fritzing hinzufügen

Das NodeMCU-Board ist ein Entwicklungsboard für den ESP8266 in der ESP-12er Variante. Durch seinen günstigen Preis kann es direkt in Projekte eingebaut werden. Wenn man ein solches Projekt in der Elektronik-Software Fritzing dokumentieren möchte, benötigt man das entsprechende Bauteil in Fritzing. Es existieren zwar einige der ESP8266-Varianten, aber das NodeMCU-Board fehlt in der Standardausstattung.

Das NodeMCU Bauteil wurde Fritzing hinzugefügt.

Allerdings ist es kein Problem neue Bauteile zu Fritzing hinzuzufügen. Für das NodeMCU-Board gibt es Vorlagen für die Version 1 und die Version 3 des Boards. Wichtig ist hierbei die fzpz-Datei. Nachdem diese heruntergeladen wurde, kann sie in Fritzing per Drag & Drop installiert werden. Anschließend ist das neue Bauteil installiert und kann genutzt werden. Wenn man Fritzing beendet, wird nachgefragt ob das neue importierte Bauteil dauerhaft behalten werden soll. Hier sollte mit Ja geantwortet werden.

Motorsteuerung

Ein Elektomotor kann sich vorwärts und rückwärts drehen. Erreicht wird dies indem man ihn einfach umpolt. Problematisch wird das ganze wenn man einen Motor ansteuern möchte z.B. über einen Arduino. Da kann man das ganze natürlich nicht einfach per Hand umpolen. Also muss eine Schaltung her. Diese Schaltung hört auf den Namen Vierquadrantensteller und sieht so aus:

Mit dieser Schaltung ist es möglich den Motor zu beschleunigen und ihn wieder zu bremsen. Das ganze funktioniert dabei sowohl vorwärts als auch rückwärts. Wer das ganze nicht von Hand nachbauen möchte, der kann sich auch ICs besorgen welche diese Schaltung bereits enthalten.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Vierquadrantensteller
http://www.elektronik-kompendium.de/sites/slt/0208031.htm
http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung