ESP32 Calli:bot

Test-Projekt-KNOTECH-Calli:bot: Aufbau, Steuerung, Programmierung und Einsatz des Calli:bot mittels Mikrocontroller ESP32, programmiert mit Micropython für Unterrichtzwecke im Kurs 11 Lernbereich 8B Prozessdatenverarbeitung des sächsischen Lehrplanes.



Einleitung

Den Ausgangspunkt für dieses Projekt bildet die Unterrichtung des Grundkurses Informatik der Jahrgangsstufe 11. Im sächsischen Lehrplan gibt es den Lernbereich 8B mit dem Thema: Technische Informatik – Hardware und Prozessdatenverarbeitung. Im Mittelpunkt stehen hier Messen, Steuern, Regeln, Sensorik und Aktorik. Als kostengünstige Basis und weil bereits vorhanden bietet sich der Einplatinencomputer Calliope mini an, der einigen Schülern aus Arbeitsgemeinschaften oder Unterricht der Sekundarstufe I bereits bekannt war. Als weiteres Ziel soll die Behandlung der vertieften Programmierung mit Python dienen. Neben den visuellen Programmierumgebungen bietet der Calliope mini die Möglichkeit der Programmierung mit Micropython als höhere Programmiersprache. Nach der Behandlung grundlegender Themen anhand des Calliope mini fehlte noch ein abschließendes Projekt. Und bei Beschäftigung mit Robotik liegt ein Fahrroboter und autonomes Fahren sehr nahe. Glücklicherweise gibt es für den Calliope eine Menge von Hardware-Drittanbietern. So bietet die Firma Knotech einen kleinen, kompakten und günstigen Fahrroboter für den Calliope mini an, der auch schnell besorgt war.


Calli:bot Bilder


Probleme

Wieder Erwarten öffneten sich bei der Vorbereitung der Thematik aber eine Menge zu lösender Probleme. Problem eins: Der Calli:bot (so sein liebevoller Name) ist nur für visuelle Programmierplattformen vorgesehen. Es gibt keine Module für Micropython. Will man aber hardwarenah programmieren benötigt man exakte Hardwarebeschreibungen. Problem zwei: Es gibt keine offiziellen Hardwaredokumentationen, Schaltpläne oder verwendete Bausteine/Chips. Zumindest grundlegende Bus-, Adress- und Bausteinfunktionen konnten ermittelt werden. Aber ohne die Kenntnis der Bausteine und deren Datenblätter ist es immer noch schwierig die Hardware effektiv auszuschöpfen. Ausserdem ist die Hardware nicht vollständig beschrieben.

Der bis dahin erfolgte Einsatz des Calliope mini führte zu Problem drei: Die Micropython-Firmware des Calliope erwies sich als wenig stabil und brachte jede Menge Abstürze, unvorhergesehene Programmstops und Speicherfehler (-ausnahmen) mit sich. Die kleine geschriebene Steuerbibliothek für das Chassi hängte sich permanent mit Speicherproblemen auf. Es stand schnell fest, dass eine andere Lösung her muss, wenn man nicht auf visuelle Programmierung ausweichen oder das Chassi als Fehlinvestition abbuchen will. Die favorisierte Lösung konnte nur eine andere Microcontrollerplattform sein. Und die fand sich im ESP32 der chinesischen Firma espressif.


Schaltplan der Hardware


Aufbau der Hardware

Der Aufbau der Hardware gestaltete sich recht einfach, da nur vier Anschlüsse des ESP32 benutzt werden. Das ist der zweipolige I2C-Bus und die Spannungsversorgung. Damit war es möglich alles auf einer kleinen Lochrasterplatine unterzubringen. Lediglich auf die Anordnung/Lage des Grove Anschlusses und des Anschlusses für die Spannung war zu achten. Die beiden Zuleitungen am Calli:bot sind sehr kurz ausgelegt (s. Abb). Der Sicherheit halber wurde für das ESP32 Board ein Sockel zum Aufstecken benutzt. Dadurch kann das Board einfach wieder entfernt oder ausgetauscht werden. Beim Anschluss des Calli:bot ist auf die richtige Polarität des Spannungsanschlusses zu achten.


Fertiges Chassi

Die fertige ESP32 Lochrasterplatine wird statt des eigentlich vorgesehenen Calliope mini aufgeschraubt. Dazu werden zwei passende Löcher in die Platine gebohrt. Anschließend werden die beiden Kabelanschlüsse des Calli:bot an der Grove-Buchse der Platine und den Stromanschlusspins aufgesteckt (s. Abb). Fertig.