Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_programmorganisation

Dies ist eine alte Version des Dokuments!


Hello mBot Programmorganisation

Eine professionelle Programmstruktur für den Arduino (mBot) sollte modular, erweiterbar und gut wartbar sein. Ich verwende hier eine Finite-State-Machine (FSM), um verschiedene Abläufe sauber steuern zu können. Die Steuerung erfolgt hier mit Hilfe der Infrarot-Fernbedienung. Alternativ kann man natürlich auch Bluetooth verwenden. Dies würde auch komplexere Abläufe ermöglichen, da man beispielsweise einen Rechner mit einem Python-Programm als Steuerung verwenden könnte.

Vorteile einer geordneten Programmstruktur:

  • Modularität: Jeder Modus ist in einer eigenen Funktion gekapselt.
  • Erweiterbarkeit: Neue Modi oder Befehle können problemlos hinzugefügt werden.
  • Wartbarkeit: Durch die klare Zustandsaufteilung ist der Code auch bei Änderungen leicht nachvollziehbar.
  • Flexibilität: Unterschiedliche Abläufe (wie Kalibrierung, Labyrinth oder Stopp) können unabhängig voneinander optimiert und getestet werden.

FIXME ABSCHNITT SCHREIBEN 8-)

enum State {
  STATE_IDLE,
  STATE_CALIBRATION,
  STATE_LABYRINTH,
  STATE_STOP
};

State state = STATE_IDLE;

void setup() {
  // Initialisierung z. B. von IR-Empfänger, Serial, etc.
}

void loop() {
  byte cmd = read(); // Funktion, die IR-Befehle einliest

  // step: state - Befehl verarbeiten und ggf. Zustand wechseln
  currentState  = decode(cmd);
 
  // step: action 
  switch (state) {
    case STATE_IDLE: 
        idleRoutine();  break;
    case STATE_CALIBRATION:
        calibrationRoutine(); break;
    case STATE_LABYRINTH:
         labyrinthRoutine(); break;
    case STATE_STOP:
          stopRoutine();  break;
  }
}



// Implementierung der einzelnen Routinen
hello_mbot_programmorganisation.1739645318.txt.gz · Zuletzt geändert: 2025/02/15 18:48 von torsten.roehl