首页>少儿编程>利用arduino uno模拟手机hid键盘

利用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

标签: Arduino

移动端可扫我直达哦~

推荐阅读

arduino 2023-03-28

用arduino+0.91寸OLED实现一个简单菜单

整理桌子的时候翻到这份打印出来的文件,依稀记得是孩子学校的一个小任务,实现一个计时器,按下后开始计时,到时间了驱动电机举牌。当时正学习arduino,就尝试用arduino配合0.91寸OLED实现了一个粗糙的模型,增加了一个简单菜单...

少儿编程 Arduino

arduino 2022-12-29

arduino驱动4针0.91寸OLED显示屏

买过arduino的入门套装,包含一块显示屏幕,但是该屏幕的占用针脚太多,接线麻烦只是其中一方面,你把针脚都给占了我拿什么输入输出呀。于是就从网上另购了一块4针的0.91寸的oled显示屏,赶上活动价实付5元还给包邮,就象脱口秀里说的...

少儿编程 Arduino

arduino 2022-10-12

关于Arduino的简单介绍

什么是单片机一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU、随机存储器RAM、存储器ROM、输入/输出设备。在个人计算机上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一...

少儿编程 Arduino