21/09/2015, 12:48
Mediante il seguente script comando un servo Hitec HS 422 in modo che faccia passi di circa 30 gradi, intervallati da 2 secondi di attesa. Grosso modo tutto funziona come desiderato.
Succede però che spesso il servo "tremoli" attorno alla posizione raggiunta o, una volta raggiuntala, faccia uno o due passi indietro e avanti di poche frazioni di grado.
La domanda è: è un difetto del servo oppure dello script ?
Come far si che, una volta raggiunta la posizione desiderata, il servo se ne sia fermo fermo ?
Grazie per l'attenzione
Succede però che spesso il servo "tremoli" attorno alla posizione raggiunta o, una volta raggiuntala, faccia uno o due passi indietro e avanti di poche frazioni di grado.
La domanda è: è un difetto del servo oppure dello script ?
Come far si che, una volta raggiunta la posizione desiderata, il servo se ne sia fermo fermo ?
Grazie per l'attenzione
Codice:
# comandare un servo
# negativo PIN 6
# positivo PIN 2
# segnale PIN 7
import RPi.GPIO as GPIO
import time
#GPIO.cleanup()
#GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
p=GPIO.PWM(7,50)
p.start(7.5)
try:
while True:
p.ChangeDutyCycle(2.5)
time.sleep(2)
p.ChangeDutyCycle(5)
time.sleep(2)
p.ChangeDutyCycle(7.5)
time.sleep(2)
p.ChangeDutyCycle(10)
time.sleep(2)
p.ChangeDutyCycle(12.5)
time.sleep(10)
except KeyboardInterrupt:
GPIO.cleanup()