Hallo,
Ich habe ein Problem mit meinen Servos am Treiberboard PCA9685 mit MG996R Servos.
Ich will mit einer Roboterhand Schere Stein Papier spielen
Bei meinem Script kommt es vor, das die Servos nicht in die Ausgangposition zurück kehren oder nach dem Ende vom Script auch weiter laufen.
Bei dem Weiterlaufen muss ich die Kabel am Treiberboard abstecken und wieder anstecken bevor der Servo sich irgendwie wieder bewegt.
Beispiel:
Wenn Schere gezeigt werden soll geht die Hand in die Schere aber nicht in die Ausgangslage zurück.
Ich nutze auch die Adafruit_PCA9685 Bibliothek.
Habt ihr eine Idee?
Hier mein Code:
Python
from __future__ import division
import time, sys, random
# Import the PCA9685 module.
import Adafruit_PCA9685
# Initialise the PCA9685 using the default address (0x40).
pwm = Adafruit_PCA9685.PCA9685()
# Configure min and max servo pulse lengths
servo_min = 100 # Min pulse length out of 4096
servo_mid1 = 200 # Middle pulse length out of 4096
servo_mid2 = 350 # Middle pulse length out of 4096
servo_mid3 = 450 # Middle pulse length out of 4096
servo_max = 600 # Max pulse length out of 4096
# Set frequency
pwm.set_pwm_freq(50)
def schere():
print('Schere')
pwm.set_pwm(6, 0, servo_min)
time.sleep(1)
pwm.set_pwm(7, 0, servo_max)
time.sleep(1)
pwm.set_pwm(2, 0, servo_max)
time.sleep(1)
pwm.set_pwm(3, 0, servo_min)
time.sleep(1)
pwm.set_pwm(4, 0, servo_min)
time.sleep(3)
pwm.set_pwm(4, 0, servo_max)
time.sleep(1)
pwm.set_pwm(3, 0, servo_max)
time.sleep(1)
pwm.set_pwm(2, 0, servo_max)
time.sleep(1)
pwm.set_pwm(7, 0, servo_max)
time.sleep(1)
pwm.set_pwm(6, 0, servo_max)
def stein():
print('Stein')
pwm.set_pwm(6, 0, servo_min)
time.sleep(1)
pwm.set_pwm(7, 0, servo_min)
time.sleep(1)
pwm.set_pwm(2, 0, servo_min)
time.sleep(1)
pwm.set_pwm(3, 0, servo_min)
time.sleep(1)
pwm.set_pwm(4, 0, servo_min)
time.sleep(3)
pwm.set_pwm(4, 0, servo_max)
time.sleep(1)
pwm.set_pwm(3, 0, servo_max)
time.sleep(1)
pwm.set_pwm(2, 0, servo_max)
time.sleep(1)
pwm.set_pwm(7, 0, servo_max)
time.sleep(1)
pwm.set_pwm(6, 0, servo_max)
def papier():
print('Papier')
pwm.set_pwm(6, 0, servo_max)
time.sleep(1)
pwm.set_pwm(7, 0, servo_max)
time.sleep(1)
pwm.set_pwm(2, 0, servo_max)
time.sleep(1)
pwm.set_pwm(3, 0, servo_max)
time.sleep(1)
pwm.set_pwm(4, 0, servo_max)
time.sleep(3)
def warten():
print ('Waehle Weise!')
print('3')
time.sleep(1)
print('2')
time.sleep(1)
print('1')
time.sleep(1)
print('LOS')
while True:
warten()
random_number = random.randint(1, 9)
print(random_number)
if random_number <= 3:
schere()
elif random_number >3 and random_number <= 5:
stein()
elif random_number >5 and random_number <= 9:
stein()
Display More
Vielen Dank im Vorfeld