将命令行参数传递到Python脚本会导致

2024-09-29 17:14:08 发布

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

我有一些来自ADAFRUIT的python示例脚本,它控制一个伺服系统,它可以工作!在

我想通过从命令行调用两个值来执行它来更改ServoMin和ServoMax值。我遇到的问题是当我import sys并设置ServoMin = (sys.argv)时,它似乎不喜欢它。为什么不接受我的想法?在

代码正文如下:

#!/usr/bin/python

from Adafruit_PWM_Servo_Driver import PWM
import time
import sys

# ===========================================================================
# Example Code
# ===========================================================================

# Initialise the PWM device using the default address
# bmp = PWM(0x40, debug=True)
pwm = PWM(0x50, debug=True)

servoMin = 150  # Min pulse length out of 4096
servoMax = 600  # Max pulse length out of 4096

def setServoPulse(channel, pulse):
  pulseLength = 1000000                   # 1,000,000 us per second
  pulseLength /= 60                       # 60 Hz
  print "%d us per period" % pulseLength
  pulseLength /= 4096                     # 12 bits of resolution
  print "%d us per bit" % pulseLength
  pulse *= 1000
  pulse /= pulseLength
  pwm.setPWM(channel, 0, pulse)

pwm.setPWMFreq(60)                        # Set frequency to 60 Hz
while (True):
  # Change speed of continuous servo on channel O
  pwm.setPWM(0, 0, servoMin)
  time.sleep(1)
  pwm.setPWM(0, 0, servoMax)
  time.sleep(1)

Tags: oftheimporttruetimesyschannelpulse
1条回答
网友
1楼 · 发布于 2024-09-29 17:14:08

sys.argv是参数列表,您需要访问这些参数,然后将它们转换为int。在

这应该做到:

servoMin = int(sys.argv[1])
servoMax = int(sys.argv[2])

相关问题 更多 >

    热门问题