用python索引表控制伺服系统

2024-09-22 16:26:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python脚本,它传递了两个参数:servoangle,其中servo是使用的gpio引脚,angle是我希望通过PWM计算的伺服转动量

我遇到的问题是,当我运行脚本时,在第servo = int(sys.argv[1])行得到错误IndexError: list index out of range

我已经对这种形式的错误做了一些研究,但是我很难在自己的代码中看到这个问题。我正在尝试访问一个不存在的列表吗

我的代码:

from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

def setServoAngle(servo, angle):
    assert angle >=30 and angle <= 150
    pwm = GPIO.PWM(servo, 50)
    pwm.start(8)
    dutyCycle = angle / 18. + 3.
    pwm.ChangeDutyCycle(dutyCycle)
    sleep(0.3)
    pwm.stop()

if __name__ == '__main__':
    import sys
    servo = int(sys.argv[1])
    GPIO.setup(servo, GPIO.OUT)
    setServoAngle(servo, int(sys.argv[2]))
    GPIO.cleanup()

Tags: 代码import脚本gpio错误syssleepint