Einen simulierten Thymio mit Aseba Studio programmieren
Auf dieser Seite wird erklärt, wie dieser simulierte Thymio mit Aseba Playground und Aseba Studio benutzt wird.
Aseba Playground öffnen und einen Thymio Playground auswählen
Öffne zuerst Aseba Playground, indem du auf das Icon klickst.
Es öffnet sich ein Fenster in dem du einen Playground auswählen kannst. Mehrere davon enthalten einen Thymio, so zum Beispiel thymio.playground.
- Windows: C:\Program Files (x86)\AsebaStudio\examples
- Mac OSX: /Applications/Aseba/Simulations/examples
- Linux: /usr/share/doc/aseba/example-scenarios
Jetzt siehst du eine 3D-Umgebung mit einem virtuellen Thymio. Dieser hat das gleiche API wie ein realer Thymio und die .aesl-Dateien sind kompatibel.
Aseba Studio oder VPL öffnen und mit dem simulierten Thymio verbinden
Wenn Aseba Playground bereit ist, öffnest du Aseba Studio oder VPL indem du auf das entsprechende Icon klickst.
|
oder |
|
Falls du die Fehlermeldung erhältst, dass keine Verbindung hergestellt werden konnte, klicke trotzdem auf OK und du kommst zum Verbindungsfenster.
Im Verbindungsfenster wird nun die Liste der vorhandenen Targets (Roboter) angezeigt. Dies könnten auch Targets von anderen Computern sein. Lies die Beschreibung, um herauszufinden, welches Target du wählen möchtest.
Hinweis: Unter deinem Target muss die Einstellung "lokales TCP" ausgewählt sein.
Wähle nun ein Target, klicke auf "Verbinden" und die bekannte Oberfläche von Aseba Studio oder VPL erscheint. Jetzt kannst du deinen virtuellen Roboter programmieren.
Unterstützte Möglichkeiten
Weil der simulierte Thymio in einer begrenzten virtuellen Umgebung ist, können nicht alle Möglichkeiten des realen Thymios vollständig unterstützt werden. Um jedoch mit einem realen Thymio kompatibel zu sein sind alle Variabeln, Funktionen und Erreignisse implentiert, so dass jedes auf einem realen Thymio funktionierende Programm auch auf einem virtuellen Thymio ohne Fehler kompiliert wird, obwohl einige Erreignisse nie auftreten, einige Funktione nichts machen oder einige Variabeln sich nie ändern.
Hier folgt eine Liste von dem, was der virtuelle Thymio unterstützt. Wenn du versuchst eine noch nicht implementierte Eigenschaft zu nutzen, erhältst du eine Warnmeldung.
variable |
status |
button.backward, button.left, button.center, button.forward, button.right |
simuliert, default ist 0 und 1, wenn der entsprechende Knopf angeklickt wird |
prox.horizontal[0-6] |
simuliert, gibt Werte enstsprechend der Umgebung des Roboters plus Rauschen zurück |
prox.ground.ambiant[0-1] |
immer 0 |
prox.ground.reflected[0-1] |
simuliert, gibt Werte enstsprechend der Untergrungfarbe des Roboters plus Rauschen zurück. (Die simulierte Umgebung ist flach und Thymio ist immer horizontal) |
prox.ground.delta[0-1] |
simuliert, gibt das Gleiche wie prox.ground.reflected[0-1] |
prox.comm.rx, prox.comm.tx |
immer 0 |
acc[0-2] |
immer 0 |
temperature |
immer 220 |
motor.left.target, motor.right.target |
default 0, kann durch setzen der Motorgeschwindigkeit verändert werden. Der simulierte Thymio bewegt sich auf einer Ebene. |
motor.left.speed, motor.right.speed |
gibt motor.left.target, motor.right.target zurück |
motor.left.pwm, motor.right.pwm |
immer 0 |
rc5.address |
immer 0 |
rc5.command |
immer 0 |
mic.intensity |
immer 0 |
mic.threshold |
kann definiert werden, hat aber keinen Effekt |
timer.period[0], timer.period[1] |
kann duch die timer0 und timer1 Ereignisse definiert werden |
Funktion |
Status |
prox.comm.enable(state) |
macht nichts |
leds.circle(l0, l1, l2, l3, l4, l5, l6, l7), leds.top(r, g, b), leds.bottom.left(r, g, b), leds.bottom.right(r, g, b), leds.buttons(l0, l1, l2, l3) , leds.prox.h(l0, l1, l2, l3, l4, l5, l6, l7) |
diese LEDs werden auf dem simulierten Thymio angezeigt. |
leds.rc(l), leds.temperature(r, b), leds.sound(l), leds.prox.v(l0, l1) |
macht nichts |
sound.freq, sound.wave, sound.record, sound.replay, sound.play |
macht nichts |
sd.open(x,status), sd.write(data,written), sd.read(data,read), sd.seek(position,status) |
simuliert |
Ereignis |
Status |
button.backward, button.left, button.forward, button.right, button.center |
Tritt ein, wenn auf die Knöpfe des simulierten Thymio gedrückt wird. |
buttons |
normal, 50 Hz |
prox |
normal, 10 Hz |
prox.comm |
tritt nie ein |
tap |
tritt ein, wenn auf den Thymio geklickt wird |
acc |
normal, 16 Hz |
mic |
tritt nie ein |
sound.finished |
tritt nie ein |
temperature |
normal, 1Hz |
rc5 |
tritt nie ein |
motor |
nromal, 100 Hz |
timer0 |
tritt ein, wenn Timer 0 abläuft |
timer1 |
tritt ein, wenn Time 1 abläuft |
~ VPL Block |
~ status |
|
implementiert, tritt ein, wenn auf die Knöpfe des simulierten Thymios geklickt wird |
|
implementiert, erkennt Objekte |
|
implementiert, erkennt die Farbe des Untergrunds |
|
implementiert, tritt ein, wenn irgendwo anstösst oder wenn auf den Thymio geklickt wird |
|
nicht implentiert, tritt nie ein |
|
implementiert, Thymio bewegt sich auf einer Ebene |
|
implementiert, wird angezeigt |
|
implementiert, wird angezeigt |
|
nicht implementiert, macht nichts |
|
implementiert, tritt ein, wenn der Timer abgelaufen ist |
|
implementiert |
|
implementiert |
|
nicht implementiert, macht nichts |
|
nicht implementiert, macht nichts |
|
implementiert, erkennt Objekte |
|
implementiert, erkennt die Farbe des Untergrunds |
|
Thymio kann im Simulator nicht gekippt werden |
|
Thymio kann im Simulator nicht gekippt werden |
Weitere Informationen
Manchmal wäre es praktisch eine Thymio .aesl Datei zu öffnen und zu bearbeiten, ohne einen (echten) Thymio zu benutzten. Aseba Studio benötigt jedoch einen Thymio um die nativen Funktionen, die lokalen Erreignisse und die Variabeln von dem angeschlossenen Roboter ein zu lesen. Wenn kein echter Thymio vorhanden ist, kann aber ein virtueller Thymio benutzt werden, um mit Aseba Studio (oder VPL) zu programmieren.
Aseba enthält daher einen Thymio-Simulator, Aseba Playground, welcher nebst anderen Robotern, auch einen Thymio-Roboter simulieren kann.