0

尝试使用 Raspberry Pi 的 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),代码始终输出“向上”并按下键盘“向上”按钮。这一定是愚蠢的,但我似乎无法弄清楚。很想继续使用 if/elif,所以我以后可以用更多的 GPIO 按钮来扩展代码。有什么想法吗?

4

1 回答 1

0

虽然我对 Raspberry 的 GPIO 不是很有经验,但我认为你的代码几乎没问题。我怀疑总是有“向上”结果的原因,这意味着第二个鼠标条件语句被绕过,可能是由于“按钮”这个词与您在第一行调用的模块不一致?以下是自始至终使用“按钮”后的内容。可能当您触发第 17 针时,它确实通过了打印阶段,但无法进一步穿透。它将别无选择,只能选择第一个键盘语句。所以,它会一直以“向上”结束。

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 - 导入键盘和鼠标

期待听到您的更新。

于 2021-06-22T03:24:20.540 回答