Initial commit: add stepper controller firmware
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user