【问题标题】:running python code using single key presses使用单键运行 python 代码
【发布时间】:2018-03-18 22:23:57
【问题描述】:

目前正在建造由 raspberry pi 和 16 通道 adafruit 伺服控制器 Pi hat 控制的汽油动力遥控车。来自初学者的漂亮新手查询,但如何通过单次按键执行简单的 Python 命令。例如。按住键盘上的“w”键运行“pwm.setPWM(0, 0,servoMax)”。 (为了使舵机推动油门使车辆向前移动)。以下是目前使用的代码:

#!/usr/bin/python

from Adafruit_PWM_Servo_Driver import PWM
import time

pwm = PWM(0x40)

servoMin = 150
servoMax = 600

def setServoPulse(channel, pulse):
 pulseLength = 1000000
 pulseLength /= 60
 print "%d us per period" % pulseLength
 pulseLength /= 4096
 print "%d us per bit" % pulseLength
 pulse *= 1000
 pulse /= pulseLength
 pwm.setPWM(channel, 0, pulse)

pwm.setPWMFreq(60)
While (True): 
 pwm.setPWM(0, 0, servoMin)   #throttle servo set to off position -should be default 
 pwm.setPWM(0, 0, servoMAX)   #throttle servo set on -to be run by "W" key
 pwm.setPWM(1, 0, servoMin)   #steering servo left -by holding "A" key
 pwm.setPWM(1, 0, servoMax)   #steering servo right -by holding "D" key

我假设答案涉及 If 和 ElseIf 命令,但我真的只想运行一个程序,然后按 input() 键盘来运行代码。

【问题讨论】:

  • 您已经看过这个解决方案了吗? link 还有.. 已经回答了一些类似的问题,人们似乎提到了 python cmd。我以前从未使用过它,但它可能正是您想要的。
  • 小心点。如果按下w 移动机器人并释放键停止它,那么如果机器人超出范围将永远保持移动。相信我,您将需要一个更复杂的系统,在该系统中,机器人 ping 计算机并在没有收到 ping 时激活安全停止。

标签: python raspberry-pi robot


【解决方案1】:

1)你可以首先创建一个无限的while循环。

2) 通过行输入获取输入后

3) 然后在应用条件之后找到哪个关键字然后调用哪个函数

4) 如果条件为真,现在调用该函数。

【讨论】:

    【解决方案2】:

    我正在使用相同的伺服 HAT 进行我的项目,并且一直在寻找类似的解决方案。到目前为止,我最好的结果是使用 pygame 的 KEYDOWN 事件。 https://www.pygame.org/news

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      相关资源
      最近更新 更多