利用arduino uno模拟手机hid键盘

hid设备

Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。

dfu模式

DFU的全称是Development FirmwareUpgrade,实际意思就是设备固件的强制升降级模式。arduino uno进入dfu模式的方法,就是短接图片中红框框选的两个引脚,短接一下即可,进入DFU后,在设备管理器中uno就变成了未知设备。进入到Flip的安装目录:C:Program Files (x86)ATMELFlip 3.4.7usb 让它自动搜索驱动。早期的flip版本可能没有对应的驱动,所以需要选择较新的(3.4.7)才能顺利安装。

arduino_uno_hid_keyboard_p1

需要的文件

  • JRE-Flip-Installer-3.4.7.112
  • Arduino-keyboard-0.3.hex
  • Arduino-usbserial-uno.hex
  • USBKeyboard.zip

arduino模拟键盘所需文件

Flip是用于arduino进入dfu模式后的刷机软件,需要java运行环境,所以最后下载包含jre运行环境的版本;
Arduino-keyboard-0.3.hex将arduino变为hid键盘的文件,刷入后arduino会无法再正常读写;
Arduino-usbserial-uno.hex用于恢复arduino的正常读写状态;
USBKeyboard.zip是arduino模拟键盘用到的库,具体用法可以在导入库之后查看示例。

实现步骤

首先为arduino输入程序,例如下面这个文件会在每停顿3秒后发送“123456”这几个按键指令;

#include <USBKeyboard.h>void setup() {  Keyboard.init();}void loop() {  delay(3000);  Keyboard.sendKeyStroke(KEY_1);  Keyboard.sendKeyStroke(KEY_2);  Keyboard.sendKeyStroke(KEY_3);  Keyboard.sendKeyStroke(KEY_4);  Keyboard.sendKeyStroke(KEY_5);  Keyboard.sendKeyStroke(KEY_6);}

arduino_uno_hid_keyboard_p2

进入arduino的dfu模式,确保已经安装好了dfu模式的驱动,打开flip软件,导入hex文件(Arduino-keyboard-0.3.hex ),将erase, blank check, program, verify全部勾选上按顺序点一遍。点击下方的“run”运行,只要不报错,就说明刷入成功了。

需要重新修改程序的情况,需要将键盘模式改回uno模式,此时flip的操作步骤同上,只不过需要把hex文件替换成Arduino-usbserial-uno.hex。重新连接后uno又恢复了,恢复后重新将arduino uno连接电脑,就可以正确被识别了。

使用方式

变为键盘模式后,uno并不需要外部电源,在手机上打开任意一个可编辑的文件,进入输入模式,此时将uno通过otg线连接到手机,可以看到uno板会每隔3秒自动输入“123456”这一排数字。

arduino_uno_hid_keyboard_p3

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

arduino驱动4针0.91寸OLED显示屏

2023-7-29 8:21:50

综合资讯

Scratch求连续自然数1+2+3+...的和

2023-7-29 8:21:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索