The following python code, along with Adafruit PWM and Servo Kernel allows you to control a servo with the following syntax:
python servo.py [degree] [degree] [degree]...
Example rotation to 180 and back to 0 twice:
python servo.py 0 180 0 180 0
# Servo Control import time import sys def set(property, value): try: f = open("/sys/class/rpi-pwm/pwm0/" + property, 'w') f.write(value) f.close() except: print("Error writing to: " + property + " value: " + value) def setServo(angle): set("servo", str(angle)) set("delayed", "0") set("mode", "servo") set("servo_max", "180") point = 1 while point < len(sys.argv): setServo(sys.argv[point]) time.sleep(0.5) #may need to change depending on speed of servo to allow full range of movement point = point + 1
If you want to build in a non-standard time delay we simply change:
time.sleep(float(sys.argv)) and now we can use the syntax like such:
python servo.py [delay] [degree] [degree] [degree]...
On top of this if you want to program your own delays as arguments you could with sys.argv.
Subscribe to Adventures In Techland
Get the latest posts delivered right to your inbox