首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Raspberry PI GPIO键盘/鼠标输入

Raspberry PI GPIO键盘/鼠标输入
EN

Stack Overflow用户
提问于 2021-04-06 04:40:21
回答 1查看 229关注 0票数 0

尝试创建非常简单的键盘和鼠标控制器使用树莓派的GPIO引脚。我喜欢在教育环境中使用代码,所以尝试为孩子/学生构建超级简单、可读的代码。但代码的行为有点奇怪,它一直输出相同的击键:

代码语言:javascript
复制
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按钮来扩展代码。有谁知道吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-22 11:24:21

虽然我对Raspberry的GPIO不是很有经验,但我认为你的代码几乎没问题。我怀疑总是有'Up‘结果的原因,这意味着第二个鼠标条件语句是绕过的,可能是因为单词'button’与你在第一行调用的模块不一致?下面是全程使用“Button”后的结果。可能当你触发针脚17时,它确实通过了打印阶段,但它不能进一步穿透。它将别无选择,只能选择第一个键盘语句。因此,它将以“up”结束。

代码语言:javascript
复制
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

期待您的最新消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66959514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档