User manual

RP6 ROBOT SYSTEM - 4. Programmierung des RP6
Das hier ist nur ein sehr sehr simples Beispiel um das Prinzip zu verdeutlichen. Ein Au-
tomat besteht aus Zuständen und Übergängen zwischen diesen Zuständen. Unsere
Zustände sind hier STATE_START und STATE_1 bis 3. Den Automaten im obigen Lis-
ting könnte man auch folgendermaßen als Graphen darstellen:
S ist dabei der Startzustand. Da wir hier keine Bedingungen für den Wechsel in einen
anderen Zustand eingebaut haben, wechselt der Automat in jedem Schritt in den
nächsten Zustand und in Zustand 3 wieder zurück in den Startzustand. Zwischen den
einzelnen Schritten haben wir in diesem einfachen Programm daher je 500ms Pause
eingefügt, damit die Ausgaben nicht zu schnell erfolgen.
Die Ausgabe des Programms wäre folgendes:
START
Zustand 1
Zustand 2
Zustand 3
START
Zustand 1
Zustand 2
...
... usw.
Das würde das Programm nun beliebig lange ausgeben.
Das Beispielprogramm in der Datei RP6Base_Move_04_FSM.c hat allerdings einen etwas
komplexeren Automaten mit 8 Zuständen. Die grundlegende Struktur ist in folgendem
Graphen dargestellt (die Zustände heissen im Programm natürlich anders, ist hier um
Platz zu sparen abgekürzt worden):
Der Automat startet im Zustand S und
wechselt sofort (nachdem er eine kleine
Textnachricht ausgegeben hat) in den
Zustand B. Dort wartet er, bis einer der
beiden Bumper gedrückt worden ist und
wechselt dann entweder in den Zustand
LD1, wenn es der linke Bumper war,
oder in den Zustand RD1, beim rechten
Bumper. Dann wird gewartet bis der
Bumper wieder losgelassen wird und je-
weils in den Zustand LU oder RU ge-
wechselt. Dort wird dann auf den zweiten Druck auf den jeweiligen Bumper gewartet.
In diesem Zustand und auch schon in dem davor interessiert es übrigens nicht, was
mit dem anderen Bumper passiert da kann man drauf rumdrücken wie man will,
darauf wird nicht reagiert. Drückt man den Bumper nun ein weiteres mal, wird in den
Zustand RD2 bzw. LD2 gewechselt und lässt man den Bumper dann wieder los, wird
wieder zurück in den Startzustand gewechselt und alles beginnt von vorn.
Natürlich gibt der Automat im Beispielprogramm bei jeder Zustandsänderung auch
- 118 -