Basic Operation¶
examples/ex4_change_pwm_frequency_180_deg_servo.py¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | """
This example should be used with a 180 degree (range of rotation) servo
on channel 0 of the Pi Servo Hat.
The extended code (commented out), at the end of the example could be
used to test the full range of the servo motion. However, users should
be wary as they can damage their servo by giving it a position outside
the standard range of motion.
"""
from pi_servo_hat import PiServoHat
import time
# Initialize Constructor
test = PiServoHat()
# Restart Servo Hat (in case Hat is frozen/locked)
test.restart()
# Test Run
#########################################
# Moves servo position to 0 degrees (1ms), Channel 0
test.move_servo_position(0, 0, 180)
# Pause 1 sec
time.sleep (1)
# Moves servo position to 180 degrees (2ms), Channel 0
test.move_servo_position(0, 180, 180)
# 50 Hz Test
#########################################
# Set PWM Frequency to 50 Hz
test.set_pwm_frequency(50)
# Sweep from 0 to 180 degrees and back
for i in range(0, 180):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.01)
for i in range(180, 0, -1):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.01)
# 100 Hz Test
#########################################
# Set PWM Frequency to 100 Hz
test.set_pwm_frequency(100)
# Sweep from 0 to 180 degrees and back
for i in range(0, 180):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.05)
for i in range(180, 0, -1):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.05)
# 200 Hz Test
#########################################
# Set PWM Frequency to 100 Hz
test.set_pwm_frequency(200)
# Sweep from 0 to 180 degrees and back
for i in range(0, 180):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.05)
for i in range(180, 0, -1):
print("Input: ", end = '')
print(i, end = '')
test.move_servo_position(0, i, 180)
print(" Estimated Pos: ", end = '')
print(test.get_servo_position(0, 180))
time.sleep(.05)
|