我正在尝试编写一个传递两个参数的python脚本:servo
和angle
,其中servo
是使用的gpio引脚,angle
是金额我希望通过PWM计算伺服。
我遇到的问题是,当我运行脚本时,我在IndexError: list index out of range
行上收到错误servo = int(sys.argv[1])
。
我已经对这种形式的错误做了一些研究,但是我很难在自己的代码中看到这个问题。我试图访问不存在的列表吗?
我的代码:
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()