尝试创建非常简单的键盘和鼠标控制器使用树莓派的GPIO引脚。我喜欢在教育环境中使用代码,所以尝试为孩子/学生构建超级简单、可读的代码。但代码的行为有点奇怪,它一直输出相同的击键:
import gpiozero
from pynput.mouse import Button, Controller as MouseController
from pynput.keyboard import Key, Controller as KeyboardController
keyboard = KeyboardController()
mouse = MouseController()
Up = gpiozero.Button(26, bounce_time=0.02)
LeftMouse = gpiozero.Button(17, bounce_time=0.02)
while True:
if Up.is_pressed:
print("Up")
keyboard.press(Key.up)
Up.wait_for_release()
keyboard.release(Key.up)
elif LeftMouse.is_pressed:
print("Left Mouse button")
mouse.press(button.left)
LeftMouse.wait_for_release()
mouse.release(button.left)使用Python 3.7.3。无论我触发哪个GPIO (26或17),代码总是输出“up”并按下键盘的“up”按钮。这一定是什么愚蠢的事情,但我似乎想不通。我喜欢继续使用if/elif,这样我以后可以使用更多的GPIO按钮来扩展代码。有谁知道吗?
发布于 2021-06-22 11:24:21
虽然我对Raspberry的GPIO不是很有经验,但我认为你的代码几乎没问题。我怀疑总是有'Up‘结果的原因,这意味着第二个鼠标条件语句是绕过的,可能是因为单词'button’与你在第一行调用的模块不一致?下面是全程使用“Button”后的结果。可能当你触发针脚17时,它确实通过了打印阶段,但它不能进一步穿透。它将别无选择,只能选择第一个键盘语句。因此,它将以“up”结束。
from pynput.mouse import Button, Controller as MouseController
elif LeftMouse.is_pressed:
print("Left Mouse button")
mouse.press(Button.left)
LeftMouse.wait_for_release()
mouse.release(Button.left)我还发现下面的链接非常有用,可以确保正确导入和定义包。pynput - Importing keyboard and mouse
期待您的最新消息。
https://stackoverflow.com/questions/66959514
复制相似问题