Mechanics Loader

13. Bagger mit Servomotor (Mechanic Loader)

Neues TigerJython (ab Version 2.28) erforderlich.


 

DU LERNST HIER...

 

eine MaqueenMechanic-Baggerschaufel (Loader) an deinen mbRoboter anschliessen und mit einem Servomotor steuern. Der Loader kann kleine Gegenstände aufladen und transportieren.

 

 

LOADER ZUSAMMENBAUEN

 

Den Bagger mit einem Servomotor kannst du einzeln (Maqueen Mechanics Loader) oder in einem Bausatz (Maqueen Mechanics Roboter-Kit) bestellen. Der Servomotor wird am Port S1 bzw. S2 des Maqueen 4 oder Maqueen Plus angeschlossen (schwarzes Kabel auf GND).

 

 

 

Beim Maqueen Plus V2 wird der Servomotor am Port P1 bzw. P2 angeschlossen. Diese befinden sich hinten rechts auf dem Chassis. Im deinem Programm musst du die Servo-Ports im Befehl setServo() mit P1 bzw. P2 (statt S1 bzw. S2) aufrufen.

Der Loader wird nach folgender Anleitung zusammengebaut:
Bauplan Loader

 

 

 

MUSTERBEISPIELE

 

Beispiel 1: Funktionalität des Servomotors testen

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

Mit dem Befehl setServo("S1 ", 160) dreht der Servomotor an die Position mit dem Drehwinkel 160°. S1 ist der Anschluss Port. Führe das unten stehende Programm mit verschiedenen Winkeln zwischen 0 und 180° aus um herauszufinden, für welchen Wert sich die Schaufel in der Ausgangslage (unten) befindet.

 
from mbrobot_plus import *
#from mbrobot 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 (ähnlich wie im oben stehenden Video). Um den Abstand zur Wand zu messen, verwendest du 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)   
► In Zwischenablage kopieren

Die Distanz zur Wand wird in einer "endlosen" repeat-Schleife alle 100 Millisekunden abgefragt. Ist sie kleiner als 12 cm, wird der Gegenstand aufgeladen.


 

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 bewegt sich 2000 Millisekunden vorwärts und lägt ein 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 Ultraschallsensor beendet und den Aufladen- und Abladen-Vorgang mehrmals wiederholt.