Beispiele

Vorwärts und rückwärts fahren

import time
from compLib.Motor import *

def forward():
    Motor.power(0, -30)
    Motor.power(3, 30)


def backward():
    Motor.power(0, 30)
    Motor.power(3, -30)

def main():
    print("hallo ich bin ein roboter beep buup")

    forward()
    time.sleep(1)
    backward()
    time.sleep(1)

if __name__ == '__main__':
    main()

Eine Linie verfolgen

import time
from compLib.Motor import Motor
from compLib.Encoder import Encoder
from compLib.IRSensor import IRSensor

COLOR_BREAK = 850
DRIVE_SPEED = 35

IRSensor.enable()

def drive(left, right):
    right *= -1
    Motor.multiple_power((0, right), (3, left))
    print(f"{left} {right}")

def follow():
    while True:
        sensors = IRSensor.read_all()

        if sensors[0] > COLOR_BREAK:
            # turn left
            drive(-DRIVE_SPEED, DRIVE_SPEED)
        elif sensors[4] > COLOR_BREAK:
            # turn right
            drive(DRIVE_SPEED, -DRIVE_SPEED)
        else:
            # straight
            drive(DRIVE_SPEED, DRIVE_SPEED)

        if sensors[0] > COLOR_BREAK and sensors[4] > COLOR_BREAK:
            break

    drive(0, 0)
    time.sleep(1)

def main():
    follow()

    drive(DRIVE_SPEED, DRIVE_SPEED)
    time.sleep(0.5)
    follow()

    drive(DRIVE_SPEED, DRIVE_SPEED)
    time.sleep(0.5)
    follow()

    drive(DRIVE_SPEED, DRIVE_SPEED)
    time.sleep(0.5)
    follow()

if __name__ == "__main__":
    main()

Funktionalität des Roboters überprüfen

import time
from compLib.Motor import Motor
from compLib.Encoder import Encoder
from compLib.IRSensor import IRSensor


def testIR():
    print("Enabling Infrared Sensor")
    IRSensor.enable()
    time.sleep(1)

    print("Writing sensor values...")
    for i in range(0, 50):
        print(IRSensor.read_all())
        time.sleep(0.1)

    print("Disabling Infrared Sensor")
    IRSensor.disable()

def testEncoders():
    Motor.multiple_pulse_width((0, 50), (3, -50))

    print("Writing encoder positions...")
    for i in range(0, 50):
        print(Encoder.read_all_positions())
        time.sleep(0.1)

    time.sleep(2)
    print("Writing encoder velocities...")
    for i in range(0, 50):
        print(Encoder.read_all_velocities())
        time.sleep(0.1)

    Motor.multiple_pulse_width((0, 0), (3, 0))


def testMotors():
    print("Setting pulse_with")
    Motor.multiple_pulse_width((0, 50), (3, -50))
    time.sleep(3)

    print("Setting power")
    Motor.multiple_power((0, 50), (3, -50))
    time.sleep(3)

    print("Setting pulse_with")
    Motor.multiple_speed((0, 5), (3, -5))
    time.sleep(3)

    for i in range(0, 100):
        Motor.multiple_power((0, i), (3, -i))
        time.sleep(0.1)


if __name__ == "__main__":
    print("Make sure robot is turned on it's back!")
    time.sleep(5)

    print()
    print("----------------- Testing Infrared Sensor -----------------")
    testIR()

    print()
    print("----------------- Testing Encoder -----------------")
    testEncoders()

    print()
    print("----------------- Testing Motors -----------------")
    testMotors()