TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
maqueenmechanic

10. MAQUEEN MECHANIC (Servo Motoren)

Neue TigerJython-Version erforderlich (ab Version 2.39)

 

DU LERNST HIER...

 

mechanische Bauelemente wie Bagger oder Greifarm mit Servomotoren steuern.

 

 

WAS IST MAQUEEN MECHANIC?


 
  Maqueen Mechanic ist ein Bausatz, der aus Bauteilen besteht, welche mit Servo-Motoren gesteuert werden: z. Bsp. Loader, der kleine Objekte aufladen kann, Beatle, der mit einem Greifarm Objekte fasst. Maqueen Mechanic wurde für die mbRoboter entwickelt, kann aber auch mit Callibot verwendet werden.
Mechanic Beatle
 

 

Mit dieser Erweiterung kannst du interessante Anwendungen programmieren.

Die benötigten Bauelemente und Servomotoren können einzeln (Maqueen Mechanics Loader, Maqueen Mechanic Beatle) oder in einem Bausatz (Maqueen Mechanics Roboter-Kit) bestellt werden. Angeschlossen werden die Servomotoren an den Ports S1 oder S2, die sich links und rechts auf dem Callibot befinden (braun auf "-").
Bauplan Loader
Bauplan Beatle

 

 

 

MUSTERBEISPIELE

 
Beispiel 1: Loader mit Servomotor bewegen

Der Servomotor bewegt den Loader zuerst zur Ausgangslage (unten), dann wird die Schaufel nach oben bewegt und nach 2000 Millisekunden wieder nach unten in die Ausgangslage.

Der Servomotor wird mit dem Befehl setServer("S1", 160) bewegt. Führe 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 callibot import *

setServo("S1", 160)
delay(2000)
setServo("S1", 100)
delay(2000)          
setServo("S1", 160)
► In Zwischenablage kopieren
 

 

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 callibot 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)         
► In Zwischenablage kopieren

 

Beispiel 3: Mit Mechanic Beatle (Greifarm) Objekte fassen
Der Servomotor bewegt die beiden Arme des Greifarms gleichzeitig. Mit dem Befehl
setServo("S1", 120)
in die offene Stellung, mit
setServo("S1", 160)
kann der Roboter Gegenstände packen. Die Winkel muss du anpassen. Es kommt darauf an, in welcher Lage der Servomotor eingebaut ist.

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 callibot import *

setServo("S1", 170)
delay(1000)
setServo("S1", 120)
forward()
delay(1000)
stop()
setServo("S1", 160)
backward()
delay(500)
left()
delay(700)
stop()
setServo("S1", 120)
► In Zwischenablage kopieren

 

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 callibot import *

setServo("S1", 120)
forward()
repeat:
    d = getDistance()
    print(d)
    if d < 20: 
        stop()
        delay(500)
        setServo("S1", 160)
        delay(500)             
        backward()
        delay(2500)
        left()
        delay(700)      
        stop()
        setServo("S1", 120)
    delay(100)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Der Servomotor wird mit dem Befehl setServo(Port, Winkel) an die gewünschte Position bewegt, wobei der erste Parameter S1 oder S2 ist und der Winkel im Bereich 0° bis 180° gewählt werden kann.

 

 

ZUM SELBST LÖSEN

 

 


1.


Roboter mit einem Loader oder einem Greifarm bewegt sich 2000 Millisekunden vorwärts und lägt einen Gegenstand auf. Dann bewegt er sich 2000 Millisekunden Rückwärts, dreht ca. 90° nach links, bewegt sich 2000 Millisekunden vorwärts und stellt den Gegenstand ab.

 

 
 
2.

Ergänze die Situation aus der Aufgabe 1 mit zwei senkrechten Wänden, so dass der Roboter die Vorwärtsbewegungen jeweils mit Hilfe vom Distanzsensor beendet und den Aufladen- und Abladen-Vorgang mehrmals wiederholt.

 


3.

Der Ultraschallsensor dreht sich mit Hilfe vom Servomotor in kleinen Schritten so lange, bis er ein Objekt erkennt. Danach löst er Alarm aus. Du kannst die Suche einschränken, indem du nur Objekte in einer Distanz zwischen 30 und 70 cm suchen lässt.


 
4.

Mit Hilfe eines Servomotors dreht der Ultraschallsensor an eine Position parallel zur Fahrtrichtung, so dass er seitwärts den Abstand messen kann. Der Roboter bewegt sich danach Vorwärts etwa im Abstand von 15 cm entlang einer geraden Wand und korrigiert laufend seine Fahrtrichtung.