簡體   English   中英

將命令行參數傳遞給Python腳本會導致錯誤

[英]Passing a command line argument into a Python Script causes error

我有一些來自ADAFRUIT的python示例腳本,它控制伺服,它的工作原理!

我想執行它來通過從命令行調用兩個值來更改ServoMin和ServoMax值。 我遇到的問題是,當我import sys並設置ServoMin = (sys.argv)時似乎不喜歡它。 我不知道為什么它不接受int或str。 有任何想法嗎?

這是代碼體:

#!/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)

sys.argv是一個參數列表,您需要訪問參數,然后將它們轉換為Ints。

這應該這樣做:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM