Dobot Magician · Befehlskette

Version 3.3.5 – Schrittweiser Einstieg für Schüler

Vom ersten Test mit dem TCP-Simulator über den echten ESP32 bis zur eigenen, sicher geprüften Dobot-Befehlskette.

PC-Befehlskette 3.3.5 Kommunikation 1.4 ESP32 / Simulator 1.3 Stand: 25.07.2026

1. Die Projektidee

Der Dobot Magician wird nicht direkt mit vielen schwer verständlichen API-Aufrufen programmiert. Stattdessen beschreibt eine übersichtliche Liste, was der Roboter und der angeschlossene ESP32 nacheinander tun sollen.

befehle = [
    ("fahre_zu", 200, 0, 80, 0, "Fahre zur sicheren Startposition"),
    ("esp_senden", "LED_GELB_EIN", "Gelbe LED am ESP32 einschalten"),
    ("warte_bis", "FREI_1", "Warte auf Taster FREI 1", None),
    ("esp_senden", "LED_GELB_AUS", "Gelbe LED am ESP32 ausschalten"),
]
1

Lesbar

Jede Zeile beschreibt einen klaren Arbeitsschritt.

2

Prüfbar

Die gesamte Liste wird vor der Dobot-Verbindung kontrolliert.

3

Erweiterbar

ESP32, Simulator, Bedingungen, Marken und Sprünge lassen sich schrittweise ergänzen.

Merksatz für Schüler: Am Anfang wird fast ausschließlich die Datei befehlskette_beispiel_v3_3_5.py bearbeitet. Die anderen Dateien stellen die benötigten Funktionen bereit.

2. Warum ein schrittweiser Lernweg sinnvoll ist

Das Gesamtsystem besteht aus mehreren Geräten, Programmen und Datenwegen. Werden Dobot, ESP32, COM-Port, TCP-Simulator und Befehlskette sofort gleichzeitig eingesetzt, ist die Ursache eines Fehlers nur schwer zu erkennen.

Stufe A

Dateien verstehen
Welche Datei wird gestartet? Welche Datei wird verändert?

Stufe B

Kommunikation testen
Zunächst ohne Dobot und ohne mechanische Bewegung.

Stufe C

ESP32 einbinden
Taster, LEDs, Meldungen und Werte untersuchen.

Stufe D

Dobot bewegen
Erst danach sichere Einzelbewegungen und eigene Abläufe.

Didaktischer Grundsatz: In jeder Lernstufe wird nur eine neue Schwierigkeit ergänzt. Erst wenn diese Stufe zuverlässig funktioniert, folgt die nächste.

3. Die Projektdateien

Empfohlener Inhalt des Projektordners
DateiVersionAufgabeVom Schüler verändern?
befehlskette_beispiel_v3_3_5.py3.3.5Konfiguration, Startmenü und eigene Befehlsliste.Ja – hier beginnt die Arbeit.
befehlskette_v3_3_5.py3.3.5Prüft, zeigt und verarbeitet die Befehlsliste.Zunächst nein.
esp32_kommunikation_v1_4.py1.4Gemeinsame Kommunikation über COM oder TCP.Zunächst nein.
esp-simulator.py1.3Ersetzt beim ersten Test den echten ESP32.Später für eigene Simulationen.
esp32_dobot_steuerung_v1_3.py1.3MicroPython-Programm für Taster, LEDs und PC-Befehle.Später auf dem ESP32.
befehlskette-v3_3_5/
├── befehlskette_beispiel_v3_3_5.py
├── befehlskette_v3_3_5.py
├── esp32_kommunikation_v1_4.py
├── esp-simulator.py
└── esp32_dobot_steuerung_v1_3.py
Nicht mischen: Eine Beispieldatei 3.3.5 sollte nicht versehentlich mit einem älteren Modul 3.3.4 oder 3.3.3 betrieben werden. Die Versionsprüfung soll genau solche Verwechslungen sichtbar machen.
Warum sind die Dateien getrennt?

Die Trennung hält das Schülerprogramm übersichtlich. Die komplizierte Prüfung, Warteschlangensteuerung und Kommunikation befinden sich in eigenen Modulen. Dadurch kann ein Schüler zunächst Abläufe formulieren, ohne den gesamten technischen Unterbau verstehen zu müssen.

4. Wie die Teile zusammenarbeiten

Drei Nachrichtenarten vom ESP32 zum PC

NachrichtenartBeispieleVerwendung
SteuerbefehlePAUSE, WEITER, HALT, STATUSBeeinflussen den Ablauf unmittelbar.
Einmalige MeldungenFREI_1, FREIGABEWerden mit warte_bis erwartet und anschließend verbraucht.
Dauerhafte WerteWERT;TEMPERATUR;23.7Bleiben gespeichert, bis ein neuer Wert eintrifft.

5. Vorbereitung des Arbeitsplatzes

  • Das ZIP-Paket wurde vollständig in einen eigenen Ordner entpackt.
  • Alle zusammengehörigen Dateien liegen im selben Projektordner.
  • Die PC-Dateien werden mit dem normalen Python-Interpreter ausgeführt.
  • Das ESP32-Programm wird mit MicroPython auf dem ESP32 ausgeführt.
  • Dobot und ESP32 verwenden im seriellen Betrieb verschiedene COM-Ports.
  • Der ESP32-COM-Port ist nicht gleichzeitig in Thonny und im PC-Programm geöffnet.
  • Vor Dobot-Bewegungen ist der Arbeitsraum frei und eine sichere Testposition bekannt.

Grundkonfiguration im Beispielprogramm

COM_MODUS = "tcp"       # zuerst Simulator verwenden

DOBOT_PORT = "COM10"
DOBOT_BAUDRATE = 115200

ESP32_COM_PORT = "COM26"
ESP32_COM_BAUDRATE = 115200

ESP32_TCP_HOST = "127.0.0.1"
ESP32_TCP_PORT = 5000
Wichtig: Beim ersten Kommunikationstest bleibt der Dobot ausgeschaltet beziehungsweise unverbunden. So kann die Datenübertragung untersucht werden, ohne dass sich der Roboter bewegt.

6. Der schrittweise Einstieg

Projektordner untersuchen

Lernziel: Dateien und Zuständigkeiten unterscheiden
  1. ZIP-Datei in einen neuen Ordner entpacken.
  2. Die fünf Dateinamen mit der Dateiliste auf dieser Seite vergleichen.
  3. befehlskette_beispiel_v3_3_5.py öffnen.
  4. Die Befehlsliste suchen, aber zunächst nichts verändern.

Kontrollfrage: Welche Datei enthält das eigene Ablaufprogramm?

TCP-Simulator ohne Dobot starten

Lernziel: Server und Client unterscheiden
  1. esp-simulator.py in einem eigenen Python-Prozess starten.
  2. Der Simulator meldet, dass er auf 127.0.0.1:5000 wartet.
  3. Im Beispielprogramm COM_MODUS = "tcp" einstellen.
  4. Danach befehlskette_beispiel_v3_3_5.py starten.
ESP-Simulator 1.3 wartet auf 127.0.0.1:5000 ...
TCP-Client verbunden: 127.0.0.1:...
Beobachtung: Der Simulator wartet als Server. Das Beispielprogramm verbindet sich als Client.

Das Startmenü und den Sendetest verwenden

Lernziel: Kommunikation prüfen, ohne den Dobot zu starten
Befehlskette starten?
  s = Start
  a = Abbruch
  t = Testen
Eingabe:

t öffnet den freien Sendetest. Zuerst werden diese Nachrichten eingegeben:

PING
ESP32_STATUS
HILFE

Erwartet werden Antworten wie:

PONG
ESP32_STATUS;VERSION=1.3-SIMULATOR;LED_BLAU=1;LED_GELB=1;SIMULATION=0
ESP32_BEFEHLE;...

Mit q wird nur der Sendetest beendet. Danach erscheint wieder das Startmenü.

Gelbe LED und Zustandswerte untersuchen

Lernziel: Befehl, Aktion und Rückmeldung zuordnen

Im Sendetest nacheinander eingeben:

LED_GELB_EIN
LED_GELB_STATUS
LED_GELB_AUS
LED_GELB_UMSCHALTEN

Der Simulator beziehungsweise ESP32 bestätigt den Befehl und sendet den neuen Wert:

BEFEHL_AUSGEFUEHRT;LED_GELB_EIN
WERT;LED_gelb;1

Die Zufallssimulation kann ebenfalls getestet werden:

SIMULATION_LED_START;3;6
SIMULATION_LED_STOP

esp_senden in der Befehlsliste verwenden

Lernziel: Eine PC-zu-ESP32-Aktion in den Ablauf einbauen
befehle = [
    ("esp_senden", "LED_GELB_EIN", "Gelbe LED am ESP32 einschalten"),
    ("warte_bis", "FREI_1", "Warte auf Taster FREI 1", None),
    ("esp_senden", "LED_GELB_AUS", "Gelbe LED am ESP32 ausschalten"),
]

Beim Simulator wird FREI_1 über die Tastatur des Simulatorfensters gesendet. Beim echten ESP32 entsteht die Meldung durch den zugehörigen Taster.

Wichtige Erkenntnis: esp_senden überträgt einen Text vom PC zum ESP32. warte_bis wartet in der Gegenrichtung auf eine einmalige Meldung.

Dauerhafte Werte anzeigen und vergleichen

Lernziel: Ereignis und Zustand unterscheiden

Der Simulator kann beispielsweise senden:

WERT;TEMPERATUR;25

Die Befehlskette kann den Wert anzeigen:

("wert_anzeigen", "TEMPERATUR", "Aktuelle Temperatur")

Sie kann auch auf einen Wert warten:

("warte_bis_wert", "TEMPERATUR", ">=", 30, "Warte auf mindestens 30 °C", None)

Oder abhängig vom Wert einen Befehl auswählen:

("wenn_wert", "TEMPERATUR", ">=", 30, ("esp_senden", "LED_GELB_EIN", "Warnanzeige einschalten"), ("esp_senden", "LED_GELB_AUS", "Warnanzeige ausschalten"))

Vom Simulator zum echten ESP32 wechseln

Lernziel: Gleiche Protokolle über unterschiedliche Verbindungen nutzen
  1. esp32_dobot_steuerung_v1_3.py als main.py oder entsprechend der eigenen Arbeitsweise auf den ESP32 übertragen.
  2. Verdrahtung der Taster und LEDs prüfen.
  3. Thonny vom verwendeten ESP32-COM-Port trennen.
  4. Im Beispielprogramm COM_MODUS = "serial" einstellen.
  5. ESP32_COM_PORT anpassen.
  6. Die Tests aus den Stufen 2 und 3 wiederholen.
Vergleichstest: Simulator und echter ESP32 sollten auf dieselben Befehle möglichst gleich reagieren. Abweichungen werden im Testprotokoll festgehalten.

Erst jetzt den Dobot einbeziehen

Lernziel: Eine sichere Roboterbewegung kontrolliert ergänzen
  1. Arbeitsraum freiräumen.
  2. Sichere, bereits getestete Koordinate verwenden.
  3. Geschwindigkeit zunächst niedrig einstellen.
  4. Nur eine Bewegung einbauen und beobachten.
  5. Erst danach weitere Befehle ergänzen.
befehle = [
    ("geschwindigkeit", 30, 30, "Geschwindigkeit und Beschleunigung auf 30 % setzen", 0),
    ("fahre_zu", 200, 0, 80, 0, "Fahre zur sicheren Testposition", 500),
    ("esp_senden", "LED_GELB_EIN", "Gelbe LED einschalten"),
]
Sicherheitsgrenze der Softwareprüfung: Eine syntaktisch korrekte Koordinate kann mechanisch trotzdem ungeeignet oder unerreichbar sein.

Eigene Ablaufprogramme entwickeln

Lernziel: Planung, Umsetzung, Test und Dokumentation verbinden

Geeignete erste Projekte:

  • Startfreigabe über einen ESP32-Taster.
  • LED-Anzeige während einer Dobot-Aufgabe.
  • Auswahl zwischen zwei Positionen über einen gespeicherten Wert.
  • Wiederholung eines Ablaufs mit marke und gehe_zu_befehl.
  • Statusanzeige auf einem später ergänzten ESP32-Display.

7. Befehle der Version 3.3.5

Die folgende Übersicht dient als schnelle Orientierung. Die vollständige technische Beschreibung befindet sich in der PDF-Projektdokumentation.

Bewegung und Werkzeug
BefehlGrundformZweck
fahre_zu("fahre_zu", x, y, z, r, Text[, Pause_ms])Absolute lineare Fahrt.
fahre_um("fahre_um", dx, dy, dz, dr, Text[, Pause_ms])Relative lineare Bewegung.
springe_auf("springe_auf", x, y, z, r, Text[, Pause_ms])JUMP-Bewegung zu einer Position.
home("home"[, Text[, Pause_ms]])HOME-Fahrt.
geschwindigkeit("geschwindigkeit", Geschw.[, Beschl.], Text[, Pause_ms])Geschwindigkeit und Beschleunigung einstellen.
sauger_ein("sauger_ein"[, Text[, Pause_ms]])Sauger einschalten.
sauger_aus("sauger_aus"[, Text[, Pause_ms]])Sauger ausschalten.
sauger_status("sauger_status"[, Text[, Pause_ms]])Saugerzustand anzeigen.
Kommunikation, Werte und Entscheidungen
BefehlGrundformZweck
esp_senden("esp_senden", Nachricht[, Text])Text an ESP32 oder Simulator senden.
warte_bis("warte_bis", Meldung[, Text[, Timeout_s]])Auf eine einmalige Meldung warten.
wert_anzeigen("wert_anzeigen", Name[, Text])Dauerhaft gespeicherten Wert anzeigen.
warte_bis_wert("warte_bis_wert", Name[, Operator], Sollwert[, Text[, Timeout_s]])Auf einen Wertvergleich warten.
wenn_wert("wenn_wert", Name[, Operator], Sollwert, Wahr-Befehl, Falsch-Befehl)Abhängig vom Wert einen eingebetteten Befehl ausführen.
Ablaufsteuerung
BefehlGrundformZweck
marke("marke", Name)Sprungstelle definieren.
gehe_zu_befehl("gehe_zu_befehl", Markenname)Programmzeiger zu einer Marke setzen.
Vergleichsoperatoren: ==, !=, <, <=, > und >=. Die Aliase = und <> werden normalisiert.

8. Typische Fehler und ihre Ursachen

BeobachtungWahrscheinliche UrsachePrüfung
ModuleNotFoundErrorDatei fehlt, liegt im falschen Ordner oder wurde umbenannt.Ordnerstruktur und Importnamen vergleichen.
Simulator wartet dauerhaft.Das Beispielprogramm wurde noch nicht gestartet oder TCP-Einstellungen stimmen nicht.COM_MODUS, Host und Port prüfen.
TCP-Verbindung wird abgelehnt.Simulator läuft nicht oder falscher Port.Simulator zuerst starten.
Serieller Port kann nicht geöffnet werden.Falscher COM-Port oder Port ist bereits durch Thonny belegt.Interpreter trennen und Geräte-Manager prüfen.
ESP32 reagiert nicht auf LED-Befehl.Ältere ESP32-Programmversion oder falscher Nachrichtenname.Version 1.3 und exakte Schreibweise prüfen.
warte_bis bleibt stehen.Die erwartete einmalige Meldung wurde nicht gesendet.Meldungsnamen und Simulatorausgabe vergleichen.
warte_bis_wert bleibt stehen.Wert fehlt oder erfüllt den Vergleich nicht.Mit wert_anzeigen den Istwert prüfen.
Falsches Modul wird geladen.Alte gleichnamige Datei liegt in einem Suchpfad.Versionsausgabe und aktuellen Arbeitsordner kontrollieren.
Dobot bewegt sich unerwartet.Koordinate, Reihenfolge oder Geschwindigkeit ungeeignet.HALT, Arbeitsraum sichern und Einzelbewegung separat testen.

Fehlermeldungen richtig festhalten

Nicht nur die letzte Zeile kopieren. Für die Auswertung werden möglichst folgende Angaben benötigt:

Gestartete Datei:
Verwendeter Modus: tcp / serial
Versionsausgaben:
Eingegebener Befehl:
Vollständige Konsolenausgabe:
Beobachtetes Verhalten:

9. Vorschläge für Schüleraufgaben

Aufgabe 1 · Verbindung

Sende PING, notiere die Antwort und erkläre die Bedeutung.

Aufgabe 2 · Status

Fordere ESP32_STATUS an und ordne die einzelnen Felder zu.

Aufgabe 3 · LED

Schalte die gelbe LED ein, aus und um. Dokumentiere jede Rückmeldung.

Aufgabe 4 · Ereignis

Erstelle einen Ablauf, der auf FREI_1 wartet.

Aufgabe 5 · Wert

Sende unterschiedliche Temperaturwerte und zeige sie mit wert_anzeigen an.

Aufgabe 6 · Bedingung

Schalte die LED bei mindestens 30 °C ein, sonst aus.

Aufgabe 7 · Vergleich

Führe dieselben Tests mit Simulator und echtem ESP32 aus und vergleiche die Ergebnisse.

Aufgabe 8 · Roboter

Ergänze eine bereits geprüfte sichere Dobot-Bewegung.

Aufgabe 9 · Ablauf

Nutze eine Marke und einen Sprung für eine kontrollierte Wiederholung.

Aufgabe 10 · Eigenes Projekt

Plane, programmiere, teste und dokumentiere einen kleinen automatisierten Ablauf.

10. Erfahrungen im Umgang mit den Projektdateien

Dieser Abschnitt ist als Grundlage für eigene Beobachtungen gedacht. Die vorbereiteten Aussagen können geändert, ergänzt oder durch konkrete Beispiele ersetzt werden.

Eigene Erfahrung ergänzen: Welche Schwierigkeiten traten beim Entpacken, Öffnen oder Starten der Dateien auf?

Bewährte Arbeitsweise

  • Für jede Version wird ein eigener Ordner verwendet.
  • Dateien verschiedener Versionen werden nicht miteinander vermischt.
  • Vor einer Änderung wird die funktionierende Ausgangsversion gesichert.
  • Es wird immer nur eine Änderung vorgenommen und anschließend getestet.
  • Der Dateiname und die interne Versionsnummer werden gemeinsam kontrolliert.
  • Testergebnisse werden sofort notiert, bevor die nächste Änderung beginnt.
Eigene Erfahrung ergänzen: Welche Dateinamen oder Ordnerstrukturen waren für Schüler besonders verständlich?

Was Schüler zunächst nicht verändern sollten

Die Module befehlskette_v3_3_5.py und esp32_kommunikation_v1_4.py enthalten die gemeinsame Infrastruktur. Anfänger sollten dort nicht gleichzeitig mit der Befehlsliste Änderungen vornehmen. Andernfalls ist später schwer festzustellen, ob ein Fehler aus dem eigenen Ablauf oder aus dem Modul stammt.

Eigene Erfahrung ergänzen: Welche Fehlermeldungen waren besonders lehrreich? Welche Erklärung hat Schülern geholfen?

Warum der Simulator wertvoll ist

Mit dem Simulator lassen sich Datenwege, Meldungen und Bedingungen ohne Mikrocontroller und ohne Dobot untersuchen. Ein Schüler kann dadurch zuerst das Protokoll verstehen und erst später die Hardware ergänzen.

Eigene Erfahrung ergänzen: Welche Unterschiede wurden zwischen Simulator und echtem ESP32 beobachtet?

11. Test- und Dokumentationsbogen

Dieser Abschnitt kann ausgedruckt oder für eine digitale Schülerdokumentation übernommen werden.

Name:
Datum:
Getestete Datei:
Versionsnummer:
Verbindung:
□ TCP-Simulator    □ ESP32-COM    □ Dobot
Verwendete Ports:
Ziel des Tests:
Durchgeführte Schritte:
Erwartetes Ergebnis:
Tatsächliches Ergebnis:
Vollständige Fehlermeldung oder auffällige Ausgabe:
Auswertung und nächste Änderung:

Ergebnis: □ erfolgreich    □ teilweise erfolgreich    □ nicht erfolgreich

12. Dateien und weiterführende Dokumentation

Die folgenden relativen Links sind für den gemeinsamen Ordner der Webseite vorgesehen. Dateinamen und Pfade können vor der Veröffentlichung angepasst werden.

← Zur bisherigen Projektentwicklung der Befehlskette

Vor der Veröffentlichung prüfen: Liegen die verlinkten Dateien wirklich unter genau diesen Namen im selben Verzeichnis?

13. Hinweise für Lehrkräfte und Projektbetreuer

Empfohlene Unterrichtsorganisation

  • Eine funktionierende Referenzinstallation bleibt unverändert.
  • Jede Schülergruppe arbeitet mit einer eigenen Kopie des Projektordners.
  • Die ersten Aufgaben werden ausschließlich im TCP-Modus ausgeführt.
  • Der Wechsel zum ESP32 erfolgt erst nach einem dokumentierten erfolgreichen Kommunikationstest.
  • Dobot-Bewegungen werden zunächst gemeinsam kontrolliert und einzeln freigegeben.
  • Eigene Erweiterungen müssen vor dem Praxistest in Worten oder als Ablaufplan beschrieben werden.

Mögliche Leistungsbewertung

BereichBeobachtbare Leistung
ProjektorganisationDateien richtig zuordnen, Versionen sauber trennen und Arbeitsordner nachvollziehbar führen.
Technisches VerständnisUnterschied zwischen TCP, COM, Ereignis, Wert und Steuerbefehl erklären.
ProgrammierungEine lesbare und funktionierende Befehlsliste erstellen.
TeststrategieErwartung formulieren, schrittweise testen und Fehler eingrenzen.
DokumentationAusgaben vollständig festhalten und Änderungen begründen.
SicherheitArbeitsraum, Geschwindigkeit und Koordinaten vor Bewegungen prüfen.
Rolle dieser Seite: Sie ist kein starres Arbeitsblatt, sondern ein Ausgangspunkt. Eigene Erfahrungen, Fotos, Konsolenausgaben, Schülerlösungen und neue Aufgaben können schrittweise ergänzt werden.

14. Versionsstand und offene Tests

BestandteilVersionAktueller Stand
Befehlskettenmodul3.3.5Prüfung, Ablaufsteuerung und esp_senden vorhanden.
Beispielprogramm3.3.5Startmenü mit Start, Abbruch und wiederholtem Sendetest.
Kommunikationsmodul1.4Serielle und TCP-Kommunikation mit gemeinsamen Queues und Wertespeicher.
ESP32-Programm1.3PC-Befehle, Taster, LEDs und nicht blockierende Simulation vorbereitet.
TCP-Simulator1.3Gleiche LED- und Statusbefehle wie die reale ESP32-Gegenstelle.

Der praktische Vergleich von TCP-Simulator, echtem ESP32 und realem Dobot wird fortlaufend getestet und dokumentiert. Bestätigte Ergebnisse können in den Abschnitt „Erfahrungen“ übernommen werden.