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 drive(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 straight(self, s):
        self.drive(s,True, True)

    def backwards(self, s):
        self.drive(s,False, False)


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


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



Beispiel für die Benutzung der Klasse

robot = Robot(11,14) # Definiert die Klasse Robot, die die Pins für die Motoren übergibt.
robot.geradeaus(80)