Steuerung eines Potentiometers
Der M5Stack-Kern ist ein modulares, stapelbares und programmierbares Entwicklungsmodul, das für den schnellen und einfachen Aufbau von IoT-Projekten und die Erstellung von Prototypen entwickelt wurde. Dieses Modul basiert auf dem ESP32-Mikrocontroller und verfügt über eine Vielzahl von Sensoren, Eingängen, Ausgängen und eine farbige Flüssigkristallanzeige (LCD). Darüber hinaus ist der M5Stack-Kern als rechteckiges Modul mit den Maßen 54 x 54 x 18 mm verpackt und verfügt über ein 2-Zoll-TFT-LCD (Dünnschichttransistor).
Wie bereits erwähnt, verfügt dieses Gerät über mehrere Ein- und Ausgabeoptionen, beispielsweise drei Drucktasten, einen Lautsprecher und einen microSD-Kartensteckplatz. Abbildung 1 zeigt den M5Stack-Kern.
Eines der einzigartigsten Merkmale des M5Stack-Kerns ist sein modulares Design-Ökosystem. Das Modul kann problemlos mit anderen M5Stack-Modulen gestapelt werden, sodass Benutzer zusätzliche Funktionen hinzufügen und die Fähigkeiten ihrer Projekte erweitern können. Das modulare Ökosystem M5Stack verfügt über verschiedene Module, wie zum Beispiel eine Kamera, GPS und Batteriemoduleinheiten.
In diesem Artikel werden wir die Winkelsensor- und Servomotoreinheiten mit dem M5Stack-Kern untersuchen. Das Ergebnis dieses praktischen Projekts ist der Aufbau einer potentiometerbasierten Servomotorsteuerung mit einem M5Stack-Core-TFT-Display.
Das M5Stack-Kern-Potentiometer-basierte Servomotor-Controller-Projekt wird die Vielseitigkeit und Leichtigkeit veranschaulichen, mit der Geräte für die Mensch-Computer-Interaktion (HCI) mithilfe handelsüblicher elektronischer Produkte und Software gebaut werden können. Die Absicht dieses Projekts besteht darin, zu veranschaulichen, wie HCI-Konzepte wie die menschliche Interaktion mit Systemen mithilfe eines kleinen ESP32-basierten Controllers erreicht werden können. Die ESP32-basierte Plattform wird eine menschlich-physikalische Computerinteraktion mit elektromechanischen Objekten ermöglichen. Dieses Projekt wird es dem Leser ermöglichen zu verstehen, wie Interaktionsdaten mithilfe des TFT-LCD des M5Stack-Kerns angezeigt und von elektromechanischen Systemen erhalten werden können. Solche Daten können verwendet werden, um Konzepte des maschinellen Lernens für Cyber-Physical Systems (CPS) mithilfe von Programmiersprachen wie Python, PyTorch und Pandas zu erforschen.
Als wichtige technische Quelle für dieses Projekt wird empfohlen, auf das elektronische Blaupausenbuch von M5Stack zu verweisen. Genauer gesagt bietet Kapitel zwei, „Hands-on with M5Stack Units“, technische Einblicke in die elektronischen Schaltkreise und den Aufbau des modularen ESP32-Controllers und der programmierbaren Sensor- und Steuereinheiten. Dieses Buch enthält auch praktische Projekte und interaktive Quizze, um den Leser zu fesseln. Im Grunde kann man sich dieses Projekt als eine Erweiterung des Buches vorstellen; Daher werden in diesem Projekt keine detaillierten Software-Setup-Anweisungen erläutert.
Nachfolgend finden Sie eine Liste elektronischer Teile, die zum Aufbau und zur Erkundung des M5Stack-Kernpotentiometer-basierten Servomotorsteuerungsprojekts verwendet werden können.
Stückliste (BOM):
Das M5Go IoT-Starterkit verfügt über verschiedene Sensoren, Überbrückungskabel, eine RGB-LED und ein USB-C-Kabel. Der Winkelsensor ist im Kit enthalten. Im Projekt werden das 10-KΩ-Potentiometer und der 1-KΩ-Widerstand verwendet, um eine Homebrew-Version des M5Stack-Winkelsensors zu bauen. Kapitel 2 enthält Einzelheiten zur elektrischen Verkabelung der elektronischen Teile auf einem lötfreien Steckbrett und zum Anbringen des Homebrew-Sensors am M5Stack-Core-Controller.
Das Gesamtkonzept des Projekts besteht darin, den Prototypenaufbau einer kleinen Servomotorsteuerung unter Verwendung des M5Stack-Kerns als wichtigste eingebettete ESP32-Plattform zu veranschaulichen. Die Ersteinrichtung für dieses Projekt besteht darin, ein externes Potentiometer zur Steuerung eines Servomotors hinzuzufügen. Das Potentiometer liefert Rotationsinformationen an den M5Stack-Kern. Anschließend wandelt der M5Stack-Kern die analogen Spannungsteilungsdaten in äquivalente Pulsweitenmodulations-Steuersignale (PWM) um und betreibt so den elektrisch verkabelten Servomotor. Abbildung 2 zeigt ein Systemblockdiagramm des Prototyps.
Als nächstes wird die Schaltung des Potentiometers unter Verwendung derselben internen elektronischen Komponenten des Winkelsensors elektrisch mit dem ESP32-Mikrocontroller des M5Stack-Kerns verbunden. Der M5Stack-Winkelsensor besteht aus einem 1-KΩ-Widerstand, der in Reihe mit einem 10-KΩ-Potentiometer geschaltet ist. Diese Schaltungskonfiguration bietet eine Spannungsteilungsfunktion, die es ermöglicht, dass eine Reihe diskreter analoger Signalwerte an einem bestimmten GPIO-Pin (Analog-zu-Digital-Allzweck-Eingangsausgang) des ESP32 anliegen. Abbildung 3 zeigt den M5Stack-Winkelsensor.
Darüber hinaus ermöglicht dieser Schaltungsansatz eine maximale Ausgangsspannung des Potentiometers gegenüber Masse von +3,3 V, außerdem sind die GPIO-Pins des ESP32-Mikrocontrollers +3,3 V-konform. Daher wird die maximale Ausgangsspannung der Spannungsteilerschaltung von +3,3 V den ESP32-Mikrocontroller nicht beschädigen. Das schematische Diagramm der elektronischen Schaltung für den Homebrew-Winkelsensor ist in Abbildung 4 dargestellt.
Beachten Sie, dass der J1-Referenzbezeichner die vierpolige Buchse darstellt, die an die Leiterplatte des Winkelsensors angelötet ist.
Von hier aus können Sie den elektronischen Schaltkreis auf einem lötfreien Steckbrett verdrahten, indem Sie den in Abbildung 5 gezeigten Schaltplan als Referenz verwenden, um den Homebrew-Winkelsensor am M5Stack-Kern anzubringen.
Bedenken Sie, dass das TFT-LCD-Layout des M5Stack-Kerns mit der UiFlow-Software entworfen werden kann – darauf gehen wir im nächsten Abschnitt ein.
Als Nächstes erstellen Sie mithilfe von Dupont-Drähten einen Verlängerungskabelbaum zwischen dem M5Stack-Kern und der lötfreien Steckplatinenschaltung des Homebrew-Winkelsensors. Das Einstecken von drei Dupont-Drähten, wie in Abbildung 5 gezeigt, in die weiße vierpolige Buchsenleiste dient zur elektrischen Verbindung des Schaltkreises mit dem M5Stack-Kerncontroller. Abbildung 6 zeigt die Verbindungs- und Befestigungsmethode dieser elektrischen Verkabelungsschnittstelle.
Für dieses Projekt habe ich ein Programm namens UiFlow verwendet. UiFlow ist eine Softwareentwicklungsplattform, die den Prozess der Programmierung und des Prototypings für das M5Stack-Produkt aus Controllern, Modulen, Sensoren und Einheiten vereinfachen soll. Diese Software bietet eine grafische Benutzeroberfläche (GUI) zum Programmieren des M5Stack Core ESP32-Mikrocontrollers. Entwickler können Codeblöcke per Drag-and-Drop verschieben und logischen Code erstellen, um den ESP32-Mikrocontroller zu programmieren. Der UiFlow ermöglicht die Codierung mit einem Online-Editor oder einem herunterladbaren Desktop-Softwarepaket.
Der UiFlow-Online-Editor kann von der M5Stack-Website unter der folgenden URL-Adresse hier bezogen werden. Es gibt auch eine Desktop-Version für Windows-, Apple- und Linux-basierte Computer.
Das Layout des M5Stack-Kern-TFT-LCD zur Anzeige der Rotationsdaten des Potentiometers ist in Abbildung 7 dargestellt.
Weitere Informationen zu UiFlow finden Sie in Kapitel 2 des elektronischen Blueprint-Buchs von M5Stack.
Da das Potentiometer mit dem M5Stack-Kern verbunden ist, wird die Software benötigt, um die Rotationswerte der elektrischen Komponente anzuzeigen. Die UiFlow-Software wird verwendet, um den Drehwinkel des Potentiometers in Grad anzuzeigen, und die Codeblöcke bestehen aus drei Hauptoperationen für die Servomotorsteuerung.
Die Funktionen der Befehlscodeblöcke bestehen aus:
Die UiFlow-Codeblöcke sind in Abbildung 8 dargestellt.
Zusätzlich zu den Codeblöcken sind die Servo- und Winkelsensoreinheiten in der Codeblockpalette enthalten. Diese Einheiten fügen eine Reihe neuer Codeblöcke für den ordnungsgemäßen Betrieb dieser Geräte innerhalb des gesamten Controller-Produktprototyps hinzu. Wie in Abbildung 8 dargestellt, sind „servo_0, servo_0 um einen Grad drehen“ und „Winkel_0-Wert abrufen“ die neuen Einheitenanweisungen, die der Codeblockpalette hinzugefügt wurden. Sie können diese Codeblöcke einbinden, indem Sie die Einheiten-Plus-Schaltfläche auswählen. Durch die Auswahl der Servo- und Winkeleinheiten aus einer Geräteliste werden die benötigten Codeblöcke zur Palette hinzugefügt, um die Codeerstellung für die Steuerung des Projekts abzuschließen. Die UiFlow-Codeblöcke werden auf dem M5Stack-Kern ausgeführt, indem Sie auf der IDE-Systemsteuerung der Software die Schaltfläche „RUN“ auswählen.
Neben der Anzeige des Drehwinkels des Potentiometers steuern die in Abbildung 8 gezeigten UiFlow-Codeblöcke auch den Servomotor. Die Anbringung des Servomotors am M5Stack-Kern erfordert die gleiche elektrische Verkabelungstechnik wie für das Potentiometer. Das teilweise schematische Diagramm der elektronischen Schaltung, dargestellt in Abbildung 9, zeigt die elektrische Verkabelung des Servomotors, die an den GPIO13-Pin des M5Stack-Kerns ESP32 angeschlossen ist.
Der J2_A-Anschluss im Schaltplan des elektronischen Schaltkreises stellt den A-Port am M5Stack-Kern dar. Während der Referenzbezeichner J2_B die Stifte des elektrischen Kabelüberbrückungskabelbaums darstellt, die in die schwarze dreipolige Buchse des Servomotors eingesteckt sind.
Die elektrische Verkabelung des M5Stack Core zum Servomotor ist in Abbildung 10 dargestellt.
Der fertige Prototyp der M5Stack-Kernpotentiometer-basierten Servomotorsteuerung ist in Abbildung 11 dargestellt.
Als letzte Referenz für das Projekt zeigt Abbildung 12 das komplette elektronische Schaltkreisdiagramm des M5Stack-Kern-Servomotorcontrollers auf Potentiometerbasis.
Durch Einstellen des Potentiometers wird der Servomotor in die Winkelposition gedreht, die auf dem TFT-LCD des M5Stack-Kerns angezeigt wird. Da der Servomotor einen Drehbereich von 0˚–180˚ hat, können diese Winkel über das TFT-LCD mit dem Potentiometer eingestellt und entsprechend angezeigt werden. Es wurde ein kurzer Videoclip bereitgestellt, der den Servomotor-Controller im Betrieb zeigt. Um den Prototyp des Servomotor-Controllers in Aktion zu sehen, können Sie sich das Video hier oder unten ansehen.
Der beabsichtigte Aspekt dieses Projekts bestand darin, einen einzigartigen und innovativen Ansatz zur Verwendung einer ESP32-Plattform zur Erstellung einer HCI-Servomotorsteuerung zu veranschaulichen. Der M5Stack-Kern ist ein ESP32-basiertes modulares IoT-Ökosystem, das die einfache Prototypisierung einer Vielzahl von CPS-Geräten mit handelsüblichen elektronischen Komponenten und Einheiten ermöglicht. Dieses Projekt veranschaulichte, wie eine visuelle Programmiersprache (VPL) dem Entwickler dabei helfen kann, innerhalb weniger Minuten schnell einen funktionsfähigen Prototyp zu erstellen. Mit dem kleinen Formfaktor des M5Stack Core können kleine tragbare Controller und Mensch-Maschine-Schnittstellen (HMI) entwickelt und in Bereichen wie Automatisierung, Robotik, Smart Homes und Entwicklungsbereichen für Bildungstechnologie eingesetzt werden.
Abbildung 1.Figur 2.Figur 3.Figur 4.Abbildung 5.Abbildung 6.Abbildung 7.Abbildung 8.Abbildung 9.Abbildung 10.Abbildung 11.Abbildung 12.