30 lines
794 B
Python
30 lines
794 B
Python
from compLib.PCA9685 import PCA9685
|
|
|
|
pwm = PCA9685(0x40, debug=True)
|
|
pwm.setPWMFreq(50)
|
|
|
|
|
|
class Servo:
|
|
"""Control the servo ports on the robot
|
|
"""
|
|
|
|
@staticmethod
|
|
def set_position(channel: int, angle: int):
|
|
"""Set position of servo connected to port
|
|
|
|
:param channel: channel between 0 and 7
|
|
:param angle: Angle of servo
|
|
"""
|
|
angle = abs(angle)
|
|
|
|
if channel == 0:
|
|
pwm.setServoPulse(8 + channel, 2500 - int(angle / 0.09))
|
|
elif channel < 8:
|
|
pwm.setServoPulse(8 + channel, 500 - int(angle / 0.09))
|
|
|
|
@staticmethod
|
|
def setup_position():
|
|
"""Set position of servos to the position used during the setup process
|
|
"""
|
|
pwm.setServoPulse(8, 1500)
|
|
pwm.setServoPulse(9, 1500)
|