Initial commit: add stepper controller firmware

This commit is contained in:
toptah
2026-09-14 19:44:52 +02:00
commit f2d60303ee
19 changed files with 794 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
# Architektur V1
`main.cpp` besitzt nur den nicht-blockierenden Scheduler: Motor, Netzwerk, Web und OTA werden in jedem Loop-Durchlauf aktualisiert.
- `ConfigManager`: LittleFS und JSON-Konfiguration, Defaults, Factory Reset
- `StepperController`: einzige Abstraktion fuer AccelStepper und Motorzustand
- `NetworkManager`: STA-Verbindung mit Timeout oder lokaler AP
- `WebServerManager`: Status, Befehle, Konfiguration und Firmware-Upload
- `OtaManager`: ArduinoOTA und Update-Sicherheitsstopp
Web-Kommandos rufen ausschliesslich `StepperController` auf. MQTT kann spaeter als weiterer Adapter dieselbe API verwenden. V1 fuehrt relative Schritte und die Anzeige einer relativen Position; absolute Positionierung und Homing sind V2.
## Zustandsmodell
`IDLE`, `MOVING`, `CONTINUOUS`, `LIMIT_LEFT`, `LIMIT_RIGHT`, `ERROR`. Ein Richtungsbefehl wird bei ausgeloestem Limit vor dem Start abgewiesen. Wird ein Limit waehrend der Fahrt erkannt, werden Ausgaenge deaktiviert und der Motor in den Limit-Zustand gesetzt.