pid-balancer/Old/precision_positioning.py
2024-12-25 16:52:07 +01:00

54 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Once youve determined the min and max pulse width values you can use the “value” feature to position the servo arm
# anywhere between its limits.
# Setting the “value” parameter to a number between -1 and +1 moves the arm between its minimum and maximum positions.
# Examples include :
#
# Minimum position
# servo.value=-1
#
# Mid-point
# servo.value=0
#
# Maximum position
# servo.value=1
#
# Position between mid-point and maximum
# servo.value=0.5
#The script below generates a range of “value” numbers to sweep the servo between its maximum and minimum position
from gpiozero import Servo
from time import sleep
myGPIO = 17
myCorrection = 0
maxPW = (2.0 + myCorrection) / 1000
minPW = (1.0 - myCorrection) / 1000
servo = Servo(myGPIO, min_pulse_width=minPW, max_pulse_width=maxPW)
while True:
print("Set value range -1.0 to +1.0")
for value in range(0, 21):
value2 = (float(value) - 10) / 10
servo.value = value2
print(value2)
sleep(0.5)
print("Set value range +1.0 to -1.0")
for value in range(20, -1, -1):
value2 = (float(value) - 10) / 10
servo.value = value2
print(value2)
sleep(0.5)
# The servo should now move between its minimum, middle and maximum positions with a small delay in-between.
#
# The first “For” loop generates a set of integers between 0 and 20. The value has 10 subtracted from it to give a
# range -10 to 10. The value is then finally divided by 10 to give a range of -1 to +1. The original set of values
# contained 20 integers and we still have 20 steps in the sequence. To increase the number of steps to 40 you would
# replace 20 with 40 and subtract 20 rather than 10.
#
# The second “For” loop does the same thing but generates a sequence from +1 back to -1.