|
- #!/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 = 115 # -45
- max_pulse = 195 # 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 = 155 + ((angle / self.angle_max) * ((self.max_pulse - self.min_pulse)/2))
- write(self.servo, pulse)
-
- def stop(self):
- self.set_angel(0)
|