Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_programmorganisation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hello_mbot_programmorganisation [2025/02/18 11:08] – [Beispiel] torsten.roehlhello_mbot_programmorganisation [2025/02/27 14:51] (aktuell) torsten.roehl
Zeile 5: Zeile 5:
 Die Steuerung erfolgt hier mit Hilfe der Infrarot-Fernbedienung.  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.//+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. 
 + 
 +Zusätzlich (siehe Beispiel) kann der eingebaute Taster genutzt werden, um einfache Befehle direkt am mBot auszuführen. 
 +//
  
  
Zeile 40: Zeile 43:
 void loop() { void loop() {
   // step: command   // step: command
-  byte cmd = read(); // Funktion, die IR-Befehle einliest+  byte cmd = read(); // Funktion, die Steuer-Befehle einliest
  
   // step: state - Befehlsverarbeitungund ggf. Zustand wechseln   // step: state - Befehlsverarbeitungund ggf. Zustand wechseln
Zeile 75: Zeile 78:
  
 ===== Beispiel ===== ===== Beispiel =====
-FIXME  DIESER ABSCHNITT ENTSTEHT GERADE 8-)+<WRAP center round tip 90%> 
 +Der **mBot** soll in diesem Beispiel die Zustände der LEDs über einen Taster ändern. Bei jedem Tastendruck wechselt die LED zyklisch zwischen drei Zuständen: **aus**, <color #ed1c24>**rot**</color> und <color #22b14c>**grün**</color>. Die Steuerung erfolgt über eine einfache Zustandsmaschine (FSM), die den Tastereingang auswertet und entsprechend die LED-Farbe setzt. 
 + 
 +  * **STATE_OFF** → LED **aus** 
 +  * **STATE_RED** → <color #ed1c24>LED **rot**</color> 
 +  * **STATE_GREEN** → <color #22b14c>LED **grün**</color> 
 +</WRAP> 
 + 
  
 ==== Quellcode (engl. Sourcecode) ==== ==== Quellcode (engl. Sourcecode) ====
Zeile 106: Zeile 117:
   int cmd = read();   int cmd = read();
  
-  // step: state - Befehlsverarbeitungund ggf. Zustand wechseln+  // step: state 
   state  = decode(cmd);   state  = decode(cmd);
  
Zeile 125: Zeile 136:
  
 /* /*
-    Funktionen +   Funktionen 
-*/+ */
  
  
Zeile 163: Zeile 174:
   return STATE_OFF;   return STATE_OFF;
 } }
 +
 void actionRed() { void actionRed() {
   led.setColorAt(1, 255, 0, 0);   led.setColorAt(1, 255, 0, 0);
Zeile 168: Zeile 180:
   led.show();   led.show();
 } }
 +
 void actionGreen() { void actionGreen() {
   led.setColorAt(1, 0, 255, 0);   led.setColorAt(1, 0, 255, 0);
Zeile 173: Zeile 186:
   led.show();   led.show();
 } }
 +
 void actionOff() { void actionOff() {
   led.setColorAt(1, 0, 0, 0);   led.setColorAt(1, 0, 0, 0);
Zeile 182: Zeile 196:
  
 === Erklärungen zum Quellcode === === Erklärungen zum Quellcode ===
-  
  
-==== Arduino Code ==== 
  
-=== Erklärungen zum Quellcode ===+  - Der Taster wird über ''analogRead(PIN_BUTTON)'' ausgelesen. 
 +  - Die Funktion'' isButtonPressed()'' erkennt den Tastendruck und verhindert mehrfaches Zählen (Entprellung). 
 +  - Die Funktion ''read()'' zählt die Tasterbetätigungen und wechselt durch die Zustände: 
 +          -  **OFF → RED → GREEN → OFF**. 
 +  - Die Funktion ''decode(cmd)'' wandelt den Zählerwert in einen **State** um. 
 +  - Die entsprechenden **LED-Funktionen** setzen die LED-Farbe je nach Zustand. 
 + 
 + 
 +Das Programm ermöglicht eine einfache Steuerung einer LED über einen Taster mit einer **Zustandsmaschine**.
  
-==== Bedienung des Programms==== 
  
  
hello_mbot_programmorganisation.1739876897.txt.gz · Zuletzt geändert: 2025/02/18 11:08 von torsten.roehl