#!/usr/bin/env python ####################################################################### # Aufgabe 1.3 # ####################################################################### import gpio_class def write(servo, pulse): gpio_class.write(servo, pulse) class Motor(object): PWM_PIN = 1 # GPIO pin 11 min_pulse = 100 #ms -> -11 m/s max_pulse = 200 #ms -> 11 m/s servo = None __is_active = False v_max = 11.0 def __init__(self, servo): self.servo = servo def set_speed(self, speed): if abs(speed) > self.v_max: speed = self.v_max if speed == 0: self.__is_active = False else: self.__is_active = True pulse = 150 + ((speed / self.v_max) * ((self.max_pulse - self.min_pulse)/2)) write(self.servo, pulse) def stop(self): self.set_speed(0) # Aufgabe 1d def is_active(self): return self.__is_active class Steering(object): PWM_PIN = 2 # GPIO pin 12 min_pulse = 100 # -45 max_pulse = 200 # 45 servo = None angle_max = 45 def __init__(self, servo): self.servo = servo def set_angle(self, angle): if abs(angle) > self.angle_max: angle = self.angle_max pulse = 150 + ((angle / self.angle_max) * ((self.max_pulse - self.min_pulse)/2)) write(self.servo, pulse) def stop(self): self.set_angel(0)