Funkfernsteuerung by DL1NOS

6.1 Einleitung

Wie jetzt? Wollten wir unseren Roboter nicht autonom fahren lassen? Warum jetzt die Funkfernsteuerung? Berechtigte Frage. Bei den ersten Kommunikationsversuchen (siehe Kapitel 3) wurde schnell klar, dass das Eingeben von Befehlen in ein Terminal-Programm auf Dauer sehr lästig ist. Um den Roboter, seine Sensoren und das Verhalten der Schrittmotoren auf den verschiedenen Untergründen kennenzulernen, ist das manuelle Steuern des Roboters unerlässlich. Daher habe ich mich entschieden, ein kleines aber komfortables Fernsteuerprogramm zu schreiben, welches zudem noch unter Linux und unter Windows läuft.

6.2 Umsetzung

Als Erstes brauchen wir eine Übersicht, über die Kommandos, die gesendet werden, inklusive der möglichen Parameter:

ID
Bedeutung Anzahl Parameter
Parameter Rückgabe
0 Stopp oder Not-Aus 0
1 Geradeaus fahren 4 Halb/Vollschritte,Vorwärts/Rückwärts,Geschwindigkeit,Länge (in cm)
2 Kurve fahren 4  Halb/Vollschritte,Links/Rechts,Geschwindigkeit,Winkel (in Grad)
3 Zurückgelegte Länge abfragen 0 gefahrener Weg (in cm)
4 Ist der Roboter am Ende der Strecke angekommen? 0 0 = nein
1 = ja
5 Sensorwerte abfragen 0 0=frei, 1=blockiert für jeden Sensor, z.B. 10011
6 Sensoren abschalten 0
7 Sensoren einschalten 0

Die Tabelle muss immer aus Sicht des PCs betrachtet werden.

Außerdem brauchen wir ein Logbuch, in dem sämtliche gesendeten und empfangenen Kommandos protokolliert werden. Eine Ansicht, welcher Sensor am Roboter blockiert ist, wäre ganz nützlich. Ebenso eine Eingabemaske für die wichtigsten Parameter der seriellen Schnittstelle.

Bild 1: Roboter Fernsteuerung Ansicht Bedienoberfläche

Bild 1: Roboter Fernsteuerung Ansicht Bedienoberfläche

6.3 XML-Parser

Zusätzlich zur manuellen Steuerung des Roboters bietet sich das automatische Ausführen eines Kommando-Skriptes an. Damit können vorprogrammierte Befehlssequenzen an den Roboter gesendet werden, die der Roboter dann nacheinander automatisch auführt. Für diesen Zweck eignen sich XML-Skripte. Innerhalb dieser Skripte können Sektionen mit den Kommandosequenzen angelegt werden.  Ein Beispiel verdeutlicht die Struktur eines solchen XML-Skriptes, wir lassen den Roboter ein Rechteck fahren, die Kommandosequenz dazu sieht wie folgt aus:

Klicken Sie hier, um die Beispiel-XML-Datei herunterzuladen. Bitte mit rechter Maustaste anklicken und Ziel speichern unter… auswählen.

Der Parameter „time“ gibt an, wie lange der PC für das entsprechende Kommando warten soll, bevor das nächste Kommando gesendet wird. Mit „send“ wird das zu sendende Kommando definiert und unter „comment“ kann der Nutzer eine Info im Logbuch sehen, was der Roboter gerade zu tun versucht.

Im nachfolgenden Video wird die oben definierte Kommandosequenz automatisch nacheinander zum Roboter gesendet:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.