Coverage for src/main/python/servo.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import machine
2from actuator import Actuator
5class Servo(Actuator):
7 """Servo rotates in a range, given an angle"""
8 current_angle = 0
10 def __init__(self, pin_num, range_min=30, range_max=130, frequency=50):
12 """ constructor.
13 :param pin_num: number of pin that will command servo with PWM
14 :param range_min: min angle the servo works
15 :param range_max: max angle the servo works
16 :param frequency: frequency PWM of servo """
17 pin = machine.Pin(pin_num)
18 self.servo = machine.PWM(pin, freq=frequency)
19 self.range_min = range_min
20 self.range_max = range_max
21 self.frequency = frequency
23 def __str__(self):
24 """prints the object."""
25 return "Servo: current angle: {}, ".format(self.current_angle)
27 def angle(self, angle):
28 """moves actuator to angle."""
29 if self.range_min <= angle <= self.range_max:
30 self.current_angle = angle
31 self.servo.duty(angle)
32 return True
33 else:
34 return False
36 def get_angle(self):
37 """current angle."""
38 return self.current_angle