Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Softwaredoku
Hochschule Karlsruhe Logo Informationstechnik
Fischertechnik-ESP32: Überarbeitung der Mini-Hardware
Wintersemester 2018/2019
raan1019@hs-karlsruhe.de
wato1016@hs-karlsruhe.de
onka1011@hs-karlsruhe.de

Software Dokumentation

Die Software wurde vom Stand WS17 aufgegriffen und mit Teilen aus SS18 ergänzt.
Die ursprüngliche Programmablaufplan ist hier zu sehen.
Im Folgenden werden gemachte Verändungen und Ergänzungen dokumentiert und stark vereinfacht visualisiert.


1. Mikrocontroller im selben Netzwerk wie Benutzer

Hierfür verbindet sich der Mikrocontroller und der Benutzer mit seinem Endgerät mit dem Netzwerk HIT-FRITZBOX-7490.
Die Implementierung wurde bereits vorbereitet und musste nur noch passend eingesetzt und im Anschluss ausreichend getestet werden. Hierfür wurde die Funktion "joinExistingNetwork(ssid, password)" des NetzwerkHandlers verwendet. Aktiviert wird diese Funktion, wenn beim Start der Taster gedrückt wird bis zum Verbindungsaufbau. Wird hingegen kein Taster gedrückt spannt das ESP32, wie bisher auch, sein eigenes WLAN auf.

Connect


2. Taster zum manuellen Starten und Pausieren

Im Loop läuft der "TasterHandler" der den passenden Tasterpin zur Hardware ausliest und den Status abfrägt.
Bei Betätigung wird das passende Flag im Shared Memory gesetzt, welches die Queue startet oder stoppt.

tasterhandler

3. Motor Disable

Gleich zu Beginn wird der GPIO, der zum Motortreiber (INH Pin) als Output deklariert und auf LOW gesetzt.
Dies findet statt, bevor die Software seine Hardware erkennt. Deswegen muss dieser Pin (27) bei allen Hardwares gleich sein.

disable

4. Pin Konfiguration

Da die beiden Hardware Versionen eigentlich verschiedene Software Versionen benötigen (Aufgrund von unterschiedlichen Bauteilen und Portbelegungen) muss die Software selber erkennen, um welches Board es sich handelt. Hierfür wird das Extension Board über den I2C-Bus abgefragt. Ist dieses Vorhanden, so handelt es sich um das Maxi Board, andernfalls um das Mini Board. Im Anschluss werden die Port-Arrays umdefiniert. Außerdem ist es notwenig gewesen alle IOobjects anzupassen, sodass die Eingänge und Ausgänge hardwarespezifisch geschalten werden können.

pinconfig

5. Remanenz der User Codes

Um den aktuellen Usercode zu speichern (z.B. Programmierung im Netzwerk, Ablauf des Fischertechnik-Programms draußen) wird der sogenannte Übergabe-String auf dem Spiffs abgelegt in einer .txt-File. Dieser kann dann mit dem Taster wieder abgerufen werden. Hierfür wurde die CSpiffsTest.h modifiziert und eine neue Klasse erschaffen (CSpiffs.h). Hierdurch können Daten geschrieben und gelesen werden auf dem nicht-flüchtigen Speicher.

spiffs

6. Display

Die Dispay-Implementierung umfasst die Statusanzeige während des Boots (Verbindungsaufbau etc.) und anschließend die Anzeige der aktuellen dynamischen IP Adresse des ESP32-Controllers. Diese ist notwendig zum Verbinden mit dem Controller. Des Weiteren wird das festeingespeicherte Passwort und SSID des Netzwerks ausgegeben.

display

7. Flash tool
Für Personen, die mit Python (2.7) umgehen können, wurde ein Tool für Windows erarbeitet, mit welchem man einfach den SPIFFS Speicher flashen kann und auch Daten wieder herunterladen kann. Dadurch kann man den ESP32 auch als Datenlogger einsetzen. Standardmäßig ist 1.5 MB für SPIFFS reserviert (erfahrene Benutzer können aber auch das Partitionsschema ändern). Mit dem Tool, welches mit esptool und mkspiffs arbeitet, ist es auch möglich den gesamten Flash Speicher zu löschen um somit etwaige Fehler zu beheben (dauerndes reboot). Die Verwendung setzt ein funktionierendes Pyton 2.7 vorraus, bei welchem aber erst diverse packages installiert werden müssen - daher ist dieses Projekt als nicht vollendet deklariert.
flash

Als Alternative wurde für Windows drei verschiedene Batch-Files erstellt, die die oben gezeigten Buttons widerspiegeln. Für die Anwendung ist jedoch ein funktionierendes Python unumgänglich.
spiffs

Aus dieser Idee heraus entstand das Datenlogger Projekt. Hierbei können Messwerte bequem und permanent in einer .txt-Datei auf dem SPIFFS gespeichert werden (bis zu einer Größe von 1.5 MB bei Standard Partionierung des ESP32). Über die Download Funtktion ist die Datei zugänglich. Dies macht in einigen Fällen eine Benutztung einer SD-Karte überflüssig.



  Mit Unterstützung von Prof. J. Walter Wintersemester 2018/2019