【问题标题】:Control robot by using keyboard使用键盘控制机器人
【发布时间】:2017-01-25 03:49:29
【问题描述】:

我是 Python 和树莓派的新手,我已经创建了一个轮式机器人和代码,用于前进、后退、左转和右转!但是,每次我想执行不同的脚本时,我都必须打开一个新代码并运行它(例如打开文件进行转发,然后打开文件进行左等)

如何使用键盘箭头来执行部分脚本?

我希望能够按向上按钮机器人向前移动,然后松开向上按钮机器人停止,然后按向左箭头键机器人向左转,直到我松开按键等。

我尝试了大量的论坛和主题,但它们都与不同的代码相关(我找到了如何为 turtle 使用键盘事件,但它们不适用于 i2c 或 gpio)

谁能帮帮我 我敢打赌有一个真正简单的命令代码,但我不知道它是什么或在哪里可以找到它!

我正在使用带有覆盆子 pi 的 adafruit 电机帽来为电机供电,如果这有影响的话

【问题讨论】:

  • 在您的 Python 代码中,您将有一个无限循环,或者在按下某个键时关闭。然后你会抓住按下的键并在 switch 或 if/else 中使用它,并将你的代码从前进、后退等置于适当的条件下。
  • 如何抓取按键?你有任何例子,甚至只是一点代码吗?
  • 您已经说过自己正在使用多个文件进行操作。将这些文件合并为一个。
  • 是的,但是我如何使用键盘来执行不同的文件?
  • 我知道这可能是一个非常简单的代码,例如 key.press (up) = python forward.py 等,但我不知道使用箭头键(或任何键)的实际 python 命令实时执行文件或模块?

标签: python keyboard raspberry-pi controls keyboard-events


【解决方案1】:

您只需要一个文件即可。创建一个新文件。

您将需要一个无限循环,我建议使用while(true) 循环。然后你需要

if(/*key was UP ARROW*/){
/*CODE TO MAKE MOVE FORWARD HERE*/
}else if(/*KEY WAS DOWN ARROW*/{
/*CODE TO MAKE MOVE DOWN HERE*/
} etc...

while(true) 循环内部。这样,您将能够使用 ONE 文件来捕获所有键盘数据。所以,它看起来类似于这个

while(true){
//read key input
if(/*key was UP ARROW*/){
    /*CODE TO MAKE MOVE FORWARD HERE*/
    }else if(/*KEY WAS DOWN ARROW*/{
    /*CODE TO MAKE MOVE DOWN HERE*/
    } etc...
}

这应该可以满足您的需要。你已经说过你有移动它的代码,所以这应该不需要很长时间才能转移过来。

尝试在这里阅读更多关于它的信息https://learn.pimoroni.com/tutorial/robots/controlling-your-robot-wireless-keyboard 这应该对你有很大帮助

【讨论】:

  • 唉,请确保您使用的是正确的 Python 语法。对我来说已经有一段时间了,这在语法上可能不正确,尽管这个想法是正确的。
  • 另外,您可能需要输入停止键。只是一个好建议。
  • 这正是我想要的但是我仍然不知道我想要的键的实际文本我会尝试过去我的代码,你可以看到我到目前为止有什么以及我去了哪里
  • 所以现在你的单独文件只移动机器人,它们不接受键盘输入?
  • 他们确实移动了它,但完成了键盘输入
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 2021-07-19
  • 2021-12-23
相关资源
最近更新 更多