Skip to main content

Klasse "Robot"

Dies ist ein Beispiel für eine Bibliothek, die dir Grundfunktionen des Fahrens in objektorientierter Programmierung zeigt. Die Funktion fahren(self, s, dir_l, dir_r): setzt die Fahrfunktion allgemein um. Um den Aufruf der Grundfunktionen zu vereinfachen, wird diese Funktion von einfacher benannten Funktionen aufgerufen.

# import motor
from motor import Motor, BiMotor
import utime
class Robot:
    def __init__(self, m1, m2):
        self.motor_left= BiMotor(m1) # Initializing pins 11 and 12 for left motor.
        self.motor_right= BiMotor(m2) # Initializing pins 14 and 15 for right motor.
        self.speed = 0

        
    def fahren(self, s, dir_l, dir_r):
        self.motor_left.setForward(dir_l)
        self.motor_right.setForward(dir_r)
        if s > self.speed:
            steps = 1
        elif s < self.speed:
            steps = -1
        for i in range(self.speed,s,steps):
            self.motor_left.setSpeed(i)
            self.motor_right.setSpeed(i)
            utime.sleep_ms(10+int(i/2))
        self.speed = s

    def geradeaus(self, s):
        self.fahren(s,True, True)

    def rueckwaerts(self, s):
        self.fahren(s,False, False)


    def turn(self, d):
        self.fahren(40,True,False)
        utime.sleep_ms(d)
        self.fahren(0,True,False)


    def stop(self):
        self.fahren(0,self.motor_left.forward, self.motor_right.forward)

        
        
robot = Robot(11,14) # Definiert die Klasse Roboter, die die Pins für die Motoren übergibt. 
for i in range(5):
    robot.geradeaus(80)
    utime.sleep(1)
    robot.geradeaus(20)
    utime.sleep(1)
    robot.stop()
    robot.rueckwaerts(80)
    utime.sleep(2)
    robot.stop()
    robot.turn(1000)
    utime.sleep(2)