Hide keyboard shortcuts

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 

3 

4 

5class Servo(Actuator): 

6 

7 """Servo rotates in a range, given an angle""" 

8 current_angle = 0 

9 

10 def __init__(self, pin_num, range_min=30, range_max=130, frequency=50): 

11 

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 

22 

23 def __str__(self): 

24 """prints the object.""" 

25 return "Servo: current angle: {}, ".format(self.current_angle) 

26 

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 

35 

36 def get_angle(self): 

37 """current angle.""" 

38 return self.current_angle