【问题标题】:Control two servo motors simultaneously using raspberry pi使用树莓派同时控制两个伺服电机
【发布时间】:2018-06-29 12:44:20
【问题描述】:

我是树莓派的新手。目前我正在做一个项目,我正在使用树莓派 3 型号 B。我的伺服系统是 SG90 微型伺服系统。我想同时运行两个伺服系统。而且在某种程度上它们是同步的。到目前为止,我已经设法使用 11 和 13 针运行两个伺服。这是我当前的代码

import RPi.GPIO as GPIO
import time

l = 0
r = 0

lServoPin = 11
rServoPin = 13
GPIO.setmode(GPIO.BOARD)

GPIO.setup(lServoPin, GPIO.OUT)
GPIO.setup(rServoPin, GPIO.OUT)

lPwm = GPIO.PWM(lServoPin, 50)
rPwm = GPIO.PWM(rServoPin, 50)
lPwm.start(5)
rPwm.start(5)

while(l < 5):
    for i in range(45, 135):
        position = 1./18.*(i)+2
        lPwm.ChangeDutyCycle(position)
        time.sleep(0.005)

    for i in range(135, 45, -1):
        position = 1./18.*(i)+2
        lPwm.ChangeDutyCycle(position)
        time.sleep(0.005)
    l = l + 1
lPwm.stop()

while(r < 5):
    for i in range(135, 45, -1):
        position = 1./18.*(i)+2
        rPwm.ChangeDutyCycle(position)
        time.sleep(0.005)

    for i in range(45, 135):
        position = 1./18.*(i)+2
        rPwm.ChangeDutyCycle(position)
        time.sleep(0.005)
    r = r + 1
rPwm.stop()
GPIO.cleanup()

以上代码只能一个接一个地运行伺服。我在这里做错了什么? 有人可以建议我一种同时运行两个同步伺服系统的方法。

提前非常感谢您!!!

【问题讨论】:

    标签: raspberry-pi synchronization raspberry-pi3 servo


    【解决方案1】:

    你正在做的是,你正在运行 2 个循环。 1 个用于左电机,1 个用于右电机。如果你想一起运行它们,你需要把这两个电机放在一个循环中。

    试试这个代码:

    x=0    
    while(x<5):
        for i in range(45, 135):
            positionl = 1./18.*(i)+2
            positionr = 1./18.*(180-i)+2
            lPwm.ChangeDutyCycle(positionl)
            rPwm.ChangeDutyCycle(positionr)
            time.sleep(0.005)
        for i in range(135, 45, -1):
            positionl = 1./18.*(i)+2
            positionr = 1./18.*(180-i)+2
            lPwm.ChangeDutyCycle(positionl)
            rPwm.ChangeDutyCycle(positionr)
            time.sleep(0.005)
        x = x + 1
    
    lPwm.stop()
    rPwm.stop()
    GPIO.cleanup()
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 2016-09-12
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多