Deutsch English |
Neues TigerJython (ab Version 2.28) erforderlich.
Mechanic Loader |
Mechanic Beatle |
Der Loader kann kleine Objekte aufladen und transportieren. Der Beatle kann mit einem Greifarm leichte Gegenstände fassen und an einen beliebigen Ort versetzen. Die benötigten Bauelement mit einem Servomotor können einzeln (Maqueen Mechanics Loader, Maqueen Mechanic Beatle) oder in einem Bausatz (Maqueen Mechanics Roboter-Kit) bestellt werden. Der Servomotor wird am Port S1 bzw. S2 des Maqueen 4 oder Maqueen Plus angeschlossen. Das älteren Maqueen-Modell verfügt über keine solche S-Schnittstelle.
|
Beim Maqueen Plus V2 werden die Servomotoren am Port P1 bzw. P2 angeschlossen. Diese befinden sich hinten rechts auf dem Chassis. Im Programm muss man die Servo-Ports im Befehl setServo() mit P1 bzw. P2 (statt S1 bzw. S2) aufrufen.
|
Mechanic Loader |
Der Loader kann nach folgendem Bauplan zusammengebaut werden: Bauplan Loader
Beispiel 1: Loader mit Servomotor bewegen Der Servomotor wird mit dem Befehl setServer(port, angle) bewegt. Führen Sie das unten stehende Programm mit verschiedenen Winkeln aus um herauszufinden, für welchen Wert sich die Schaufel in der Ausgangslage (unten) befindet. Die Winkel sind von der Position, in der der Servomotor vor dem Anschrauben der Schaufel war, abhängig. |
from mbrobot_plus import * #from mbrobot import* setServo("S1", 160) delay(2000) setServo("S1", 100) delay(2000) setServo("S1", 160)
Erklärungen zum Programmcode:
setServer("S1", 160) Der Servomotor ist am Port S1 angeschlossen. Der zweite Parameter gibt die Position des Servomotors an. |
Beispiel 2: Mit Ultraschallsensor den Loader positionieren
Der Roboter soll einen Gegenstand, der sich bei einer senkrechten Wand befindet aufladen und wegtransportieren. Um den Abstand zur Wand zu messen, verwendet er den Ultraschallsensor.
from mbrobot_plus import * #from mbrobot import * setServo("S1", 160) setSpeed(20) forward() repeat: d = getDistance() print(d) if d < 12: stop() delay(1000) setServo("S1", 100) setSpeed(20) backward() delay(4000) stop() setServo("S1", 160) delay(100)
Erklärungen zum Programmcode:
d = getDistance() In einer "endlosen" Schleife wird die Distanz zur Wand gemessen. | |
setServo("S1", 100) Hebt den Gegenstand auf. |
Mechanic Beatle (Greifarm) |
Der Greifarm kann nach folgender Anleitung zusammengebaut werden: Bauplan Beatle
Beispiel 3: Gegenstand fassen Der Roboter bewegt sich zum Gegenstand, der sich in einem kurzen Abstand vor ihm befindet, packt ihn mit seinem Greifarm, fährt eine kurze Strecke zurück, dreht nach links und stellt den Gegenstand am neuen Ort ab (ähnlich wie im unten stehenden Video). |
from mbrobot import * #from mbrobot_plus import * setServo("S1", 95) delay(1000) setServo("S1", 60) forward() delay(1000) stop() setServo("S1", 95) backward() delay(500) left() delay(700) stop() setServo("S1", 60)
Erklärungen zum Programmcode:
setServer("S1", 60) Der Greifarm soll sich in der offenen Stellung befinden. Eventuelle muss dieser Winkel angepasst werden. Je nach Grösse des Gegenstandes muss auch der Winkel 95° angepasst werden. |
Beispiel 4: Mit Ultraschallsensor den Greifarm positionieren
Der Roboter soll einen Gegenstand, der sich bei einer senkrechten Wand befindet aufladen und wegtransportieren. Um den Abstand zur Wand zu messen, verwendet er den Ultraschallsensor.
from mbrobot import * #from mbrobot_plus import * setServo("S1", 60) forward() repeat: d = getDistance() print(d) if d < 20: stop() delay(500) setServo("S1", 95) delay(500) backward() delay(2500) left() delay(700) stop() setServo("S1", 60) delay(100)
Erklärungen zum Programmcode:
getDistance() Misst alle 100 Millisekunden den Abstand zur Wand |
Beispiel 5: Ultraschallsensor mit Servomotor drehen
Der Ultraschallsensor kann mit einem zweiten Servomotor bewegt werden. Dieser wird am Port S2 angeschlossen. Den drehbaren Ultraschallsensor kann man verwenden, um Gegenstände zu suchen (Aufgabe 3) oder um in einem bestimmten Abstand einer Wand nach zu fahren (Aufgabe 4).
Der Ultraschallsensor wird von einer frontalen Lage rechtwinklig gedreht. Zuerst in einem Schritt und dann in kleinen Schritten.
from mbrobot import * #from mbrobot_plus import * setServo("S2", 90) delay(2000) setServo("S2", 0) delay(2000) setServo("S2", 90) delay(2000) angle = 90 while angle >= 0: setServo("S2", angle) delay(500) angle = angle - 10 angle = 0 while angle <= 90: setServo("S2", angle) delay(500) angle = angle + 10
Erklärungen zum Programmcode:
setServo("S2", 90) Dreht den Servomotor so dass sich der Ultraschallsensor in der frontalen Position befindet. Wenn es nicht der Fall ist, kann man den Winkel anpassen oder den Sensorkurz abschrauben und die runde Unterlage so aufsetzen, dass man den Sensor danach exakt frontal anschrauben kann. | |
setServo("S2", 0) bzw. setServo("S2", 180) Dreht den Sensor parallel zur Fahrtrichtung. |
Aufgaben: |
1) |
|
2) |
|
3) |
|
4) |
|