Ardumower Software-Design: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „This page describes some internals of the Ardumower software architecture. Kurz zum Ablauf der Software: In der Hauptschleife (loop) werden periodisch: 1. Die…“) |
|||
| Zeile 1: | Zeile 1: | ||
This page describes some internals of the Ardumower software architecture. | This page describes some internals of the Ardumower software architecture. | ||
| + | =Finite state machine= | ||
Kurz zum Ablauf der Software: In der Hauptschleife (loop) werden periodisch: | Kurz zum Ablauf der Software: In der Hauptschleife (loop) werden periodisch: | ||
1. Die Sensoren eingelesen (readSensors) | 1. Die Sensoren eingelesen (readSensors) | ||
| Zeile 10: | Zeile 11: | ||
Wenn der Mower also im Zustand FORWARD ist, fährt er nach vorn. Man schaut also in der loop() nach was alles in diesem Zustand FORWARD gemacht wird (case FORWARD). Dort hätte man die Möglichkeit weitere Aktionen einzufügen. | Wenn der Mower also im Zustand FORWARD ist, fährt er nach vorn. Man schaut also in der loop() nach was alles in diesem Zustand FORWARD gemacht wird (case FORWARD). Dort hätte man die Möglichkeit weitere Aktionen einzufügen. | ||
| − | + | ||
Main component of the software is a so called 'finite state machine', that means there exists a set of states ("OFF", "FORWARD", "ROLL", etc.) that the robot can be in. Depending on events (sensor is triggering etc.), the robot will enter a new state. | Main component of the software is a so called 'finite state machine', that means there exists a set of states ("OFF", "FORWARD", "ROLL", etc.) that the robot can be in. Depending on events (sensor is triggering etc.), the robot will enter a new state. | ||
Version vom 3. August 2016, 14:34 Uhr
This page describes some internals of the Ardumower software architecture.
Finite state machine
Kurz zum Ablauf der Software: In der Hauptschleife (loop) werden periodisch: 1. Die Sensoren eingelesen (readSensors) 2. Der Zustandsautomat durchlaufen und abhängig vom aktuellen Zustand die Sensorwerte überprüft (CheckXXXXX) und von den Sensorwerten in neue Zustände gewechselt (setNextState) - beim Wechsel werden ggf. neue Soll-Werte für die Motoren gesetzt (Beispiel: motorLeftSpeedRpmSet). 3. Die Motoren mit den Soll-Werten angesteuert (motorControl)
Die möglichen Zustände und Ergebnisse für die Übergänge des Zustands-Automaten sind hier unten alle grafisch darsgstellt.
Wenn der Mower also im Zustand FORWARD ist, fährt er nach vorn. Man schaut also in der loop() nach was alles in diesem Zustand FORWARD gemacht wird (case FORWARD). Dort hätte man die Möglichkeit weitere Aktionen einzufügen.
Main component of the software is a so called 'finite state machine', that means there exists a set of states ("OFF", "FORWARD", "ROLL", etc.) that the robot can be in. Depending on events (sensor is triggering etc.), the robot will enter a new state.
State diagram (Note: The drawing has been created using draw.io)
Implemented updates:
- If obstacle during reverse => roll
- If obstacle during roll => forward