Wie man die Sensoren benutzt

Sensoren benutzen

Um zu verhindern, dass der Roboter vom Tisch fällt, kannst du die Distanzsensoren benutzen. Der Roboter Thymio II hat insgesamt neun Distanzsensoren: 5 nach vorne, 2 nach hinten und 2 nach unten. Die Distanzsensoren, welche den Abstand nach unten messen, können benutzt werden, um die Ecke eines Tisches zu bemerken und den Roboter anzuhalten.

Distanzsensor

Ein Distanzsensor misst den Abstand zu nahen Hindernissen. Dafür benötigt ein Distanzsensor zwei verschiedene Techniken: einen Infrarotlicht-Strahler und einen Infrarotlicht-Empfänger. Der Infrarotlicht-Strahler sendet rotes Licht aus, welches auch für das menschliche Auge sichtbar ist. Der Infrarotlicht-Empfänger misst das an Hindernissen zurückgestrahlte, reflektierte Licht, welches für das menschliche Auge nicht sichtbar ist. Wenn ein Hindernis sehr nahe ist, wird viel Licht reflektiert. Je weiter weg das Hindernis ist, desto weniger Licht wird zurückgestrahlt. Mit der Messung des zurückgestrahlten Lichts ist es möglich, den Abstand zu Hindernissen zu messen.

Um zu verhindern, dass der Roboter vom Tisch fällt, benutzt du am besten die Distanzsensoren nach unten. Bevor du nun programmierst, lerne die Distanzsensoren ein wenig besser kennen. Stelle jetzt den Roboter auf den Tisch und klicke immer wieder auf erneuern, um die Werte in prox.ground.delta zu überprüfen.

proxtable.png

Überprüfe nun die Werte in prox.ground.delta nochmals, während du den Roboter in die Luft hältst. Siehst du wie sehr sich die Werte unterscheiden?

proxvide.png

Deshalb fügst du nun eine zusätzliche Bedingung an deinen Kode:

onevent prox
if prox.ground.delta[0]<300 or prox.ground.delta[1]<300 then 
#wenn prox.ground.delta[0]<300 oder prox.ground.delta[1]<300, 
#dann schalte die Motoren aus.
    motor.left.target=0 
    motor.right.target=0 
    call leds.top(32, 0, 0)
end

Wenn die Werte von einem der zwei Sensoren zu tief ist, d.h. kein Tisch entdeckt wird, werden die Motoren mit diesem Kode ausgeschalten. Probier das Programm nun aus, aber pass auf, dass der Roboter nicht wegen eines falschen Kodes vom Tisch fällt! Stoppt dein Roboter an der Kante des Tisches?

Der Debugger

Wenn du beim Testen des Roboters, im Detail sehen möchtest, was genau geschieht, kannst du den Debugger benutzen. Das kann dir helfen, Fehler im Kode zu korrigieren oder die Anweisungen Schritt für Schritt zu verfolgen. In unserem Fall werden wir schauen, was passiert, wenn der Roboter den Rand des Tisches erreicht.

Im Aseba Studio, kannst du einen Rechtsklick auf die Zeile machen

    call leds.top(32, 0, 0)

und kannst auswählen Haltepunkt setzen
Screen%20Shot%202012-05-04%20at%2011.57.48%20AM.png

Der Haltepunkt wird durch ein rotes Quadrat auf der linken Seite gezeigt.

Screen%20Shot%202012-05-04%20at%2012.05.09%20PM.png

Dies bedeutet, dass wenn wir an diesem Punkt angekommen sind, wird der Roboter warten, bis wir ihm sagen, dass er das Programm fortzufahren soll.

Versuchen wir es. Wenn wir die Variablenwerte an dem Haltepunkt erhalten wollen, müssen wir zuerst das Häkchen in dem auto Feld entfernen.
Sobald der Haltepunkt gesetzt ist, können wir den Roboter auffordern sich an den Rand des Tisches zu bewegen. Wenn er stoppt, können wir die Situation in diesem Moment zu beobachten, zum Beispiel sehen wir hier, dass die unteren Sensoren die Werte 151 und 45 gemessen haben, (das bedeutet, wenig Licht wird reflektiert und die Tischoberfläche wird nicht mehr erkannt) .

Screen%20Shot%202012-05-04%20at%2012.19.28%20PM.png

Sobald wir wieder auf Ausführen drücken, wird das Programm im Roboter fortgesetzt (er leuchtet rot), bis zum nächsten Haltepunkt. Wir können den Haltepunkt mit einem Rechtsklick auf die Zeile auswählen und dann mit Haltepunkt löschen wieder entfernen.

vorherige Seite | nächste Seite

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License