树莓派4B实现HID键盘模拟

一直想做个音游手台来着,所以正巧最近树莓派学的不错,便尝试实现这一功能,具体手台制作出来后会写一个新的文章,现在就是简单来实现一下树莓派4B模拟键盘输入。

准备材料:

  • 树莓派4B或者树莓派zero w一个
  • 树莓派4B:Usb-C to Usb-A线
  • 树莓派Zero W:Micro-USB to Usb-A线
  • 16g sd卡一个
  • 树莓派OS
  • 条件允许上个T型拓展+面包板也行,方便一点.jpg

系统准备:

树莓派常规下系统然后烧录至sd卡即可

系统下载:Operating system images – Raspberry Pi

直接下

图片[1]-树莓派4B实现HID键盘模拟-魔法少女雪殇

GPIO以及各种库都是全的很舒服。

连接树莓派

图片[2]-树莓派4B实现HID键盘模拟-魔法少女雪殇

直接用线连电脑,A端连pc,c端连树莓派

安装Key Mime Pi

这玩意牛逼,免去自己去写驱动了,原本我还写驱动写的挺蛋疼的,这样直接利用直接可以安装驱动

安装方式:

git clone https://github.com/mtlynch/key-mime-pi.git
cd key-mime-pi
sudo ./enable-usb-hid
sudo reboot

重启后可以发现

图片[3]-树莓派4B实现HID键盘模拟-魔法少女雪殇

右下角提示新设备,键盘新增HID键盘,这样就距离成功很接近了

最后进行启动web页面

cd key-mime-pi
python3 -m venv venv
. venv/bin/activate
pip install --requirement requirements.txt
PORT=8000 ./app/main.py

树莓派访问127.0.0.1:8000,即可进入key mime pi页面

图片[4]-树莓派4B实现HID键盘模拟-魔法少女雪殇

实现按键自定义

首先还是接线,此处我进行了面包板的方式进行接线,按钮暂采用轻触开关按键模块,后续等机械键盘单个轴到了单独研究一下

图片[5]-树莓派4B实现HID键盘模拟-魔法少女雪殇
图片[6]-树莓派4B实现HID键盘模拟-魔法少女雪殇

按照相应接线即可,SIG接面包板G17口(此处对应GPIO0引脚

VCC接正极,GND接地

写代码就行了(按键定义请查看参考文章的键值定义表

#!/usr/bin/python
import RPi.GPIO as GPIO
import signal
import time

KEY_LIST = (
    (11, "\x09"),  #F
)

keycode_tmp = "\x00" * 2


def signal_handler(signal, frame):
    f = open("/dev/hidg0", "w")
    f.write("\x00" * 8)
    f.close()
    GPIO.cleanup()
    exit()


signal.signal(signal.SIGINT, signal_handler)

GPIO.setmode(GPIO.BOARD)
for P in range(len(KEY_LIST)):
    GPIO.setup(KEY_LIST[P][0], GPIO.IN, pull_up_down=GPIO.PUD_UP)

while 1:

    ks = "\x00" * 2
    for K in range(len(KEY_LIST)):
        if GPIO.input(KEY_LIST[K][0]) is GPIO.LOW:
            ks += KEY_LIST[K][1]

    if keycode_tmp != ks:
        keycode_tmp = ks
        keycode = ks + "\x00" * (8 - len(ks))
        f = open("/dev/hidg0", "w")
        f.write(keycode[0:8])
        f.close()
    time.sleep(0.01)

保存任意py文件,直接运行就可以尝试了

最终结果:

视频:

https://b23.tv/bweGwI

参考文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 共4条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情
    • 头像wry0