详解如何基于Arduino兼容板Teensy LC实现虚拟键盘与鼠标
目录
前言
硬件环境
环境配置
1. 下载Teensy烧录程序
2 下载TeensyDuino
使用方法
1 模拟键盘
1.1 Keyboard库函数介绍:
1.2 Keyboard键码表:
1.3 示例
2 模拟鼠标
1.1 Mouse库API介绍
1.2 宏介绍
1.3 示例
官方示例
前言
理论知识可以参考这篇文章:什么是Arduino?Arduino的起源与架构简述_17岁boy的博客-CSDN博客
Arduino 虚拟键盘方面的可以参考这篇:详解如何基于Arduino兼容板Digispark实现虚拟键盘与鼠标_17岁boy的博客-CSDN博客
硬件环境
开发板名称 |
MCU |
FLASH闪存大小 |
---|---|---|
TEENSY LC |
MKL16Z32VFM4 |
62KB |
外观
环境配置
1. 下载Teensy烧录程序
下载地址:Teensy Loader Application - available for Windows, Linux and Macintosh systems
选择一个合适的版本下载
2 下载TeensyDuino
下载地址:Teensyduino: Download and Install Teensy support into the Arduino IDE
安装路径需要选择Adrduino的根目录才能安装
安装完成后打开Adruino在Tools中Board中就可以看到Teensy板子相关的类型
使用方法
1 模拟键盘
模拟键盘可以直接使用Arduino中的Keyboard库就可以了,Teensy是Arduino的兼容板可以直接使用Arduino中的支持库。
这里需要将设备类型选为Keyboard才能使用Keyboard库且才能被识别为输入键盘设备
1.1 Keyboard库函数介绍:
函数名 |
作用 |
---|---|
begin(void) | 开启键盘通信 |
end(void) | 结束键盘通信 |
模拟键盘输入字符 | |
press(uint8_t k) | 按下键盘某一键 |
release(uint8_t k) | 松开键盘某一键 |
releaseAll(void) | 松开所有键 |
write(uint8_t k) | 模拟键盘输出ASCII码或Hex值对应的按键 |
1.2 Keyboard键码表:
#define KEY_LEFT_CTRL 0x80
#define KEY_LEFT_SHIFT 0x81
#define KEY_LEFT_ALT 0x82
#define KEY_LEFT_GUI 0x83
#define KEY_RIGHT_CTRL 0x84
#define KEY_RIGHT_SHIFT 0x85
#define KEY_RIGHT_ALT 0x86
#define KEY_RIGHT_GUI 0x87#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9
#define KEY_LEFT_ARROW 0xD8
#define KEY_RIGHT_ARROW 0xD7
#define KEY_BACKSPACE 0xB2
#define KEY_TAB 0xB3
#define KEY_RETURN 0xB0
#define KEY_ESC 0xB1
#define KEY_INSERT 0xD1
#define KEY_DELETE 0xD4
#define KEY_PAGE_UP 0xD3
#define KEY_PAGE_DOWN 0xD6
#define KEY_HOME 0xD2
#define KEY_END 0xD5
#define KEY_CAPS_LOCK 0xC1
#define KEY_F1 0xC2
#define KEY_F2 0xC3
#define KEY_F3 0xC4
#define KEY_F4 0xC5
#define KEY_F5 0xC6
#define KEY_F6 0xC7
#define KEY_F7 0xC8
#define KEY_F8 0xC9
#define KEY_F9 0xCA
#define KEY_F10 0xCB
#define KEY_F11 0xCC
#define KEY_F12 0xCD
#define KEY_F13 0xF0
#define KEY_F14 0xF1
#define KEY_F15 0xF2
#define KEY_F16 0xF3
#define KEY_F17 0xF4
#define KEY_F18 0xF5
#define KEY_F19 0xF6
#define KEY_F20 0xF7
#define KEY_F21 0xF8
#define KEY_F22 0xF9
#define KEY_F23 0xFA
#define KEY_F24 0xFB
1.3 示例
void setup() {// put your setup code here, to run once:Keyboard.begin();//开始键盘通讯delay(1000);//延时Keyboard.press(KEY_LEFT_GUI);//win键delay(500);Keyboard.press('r');//r键delay(500);Keyboard.release(KEY_LEFT_GUI);Keyboard.release('r');Keyboard.press(KEY_CAPS_LOCK);//按下大写键Keyboard.release(KEY_CAPS_LOCK);//松开大写键delay(500);Keyboard.println("cmd");//输入cmdKeyboard.press(KEY_RETURN);Keyboard.release(KEY_RETURN);Keyboard.press(KEY_CAPS_LOCK);Keyboard.release(KEY_CAPS_LOCK);Keyboard.end();//结束键盘通讯
}void loop() {// put your main code here, to run repeatedly:}
此示例会打开电脑中的CMD窗口,点击烧录按钮后会弹出如下窗口
若烧录按钮为灰色则点击板子上的按钮即可进入烧录模式,如何点击烧录按钮即可
2 模拟鼠标
需要将设备类型选为Keyboard + Mouse + Joystick
1.1 Mouse库API介绍
函数名 |
作用 |
---|---|
begin(void) | 开始模拟鼠标 |
end(void) | 停止模拟鼠标 |
click(uint8_t b = MOUSE_LEFT) | 点击鼠标 |
move(signed char x, signed char y, signed char wheel = 0) | 移动鼠标 |
press(uint8_t b = MOUSE_LEFT) | 按下鼠标 |
release(uint8_t b = MOUSE_LEFT) | 释放按下鼠标 |
isPressed(uint8_t b = MOUSE_LEFT) | 检查鼠标是否被按下 |
1.2 宏介绍
名称 |
作用 |
---|---|
名称 |
作用 |
MOUSE_LEFT | 左键 |
MOUSE_RIGHT | 右键 |
MOUSE_MIDDLE | 齿轮 |
MOUSE_ALL | 所有鼠标按键 |
1.3 示例
void setup() {Mouse.begin();Mouse.move(10,10);
}void loop() {// put your main code here, to run repeatedly:}
鼠标会移动到X与Y为10的坐标上
官方示例
在安装好TeensyDuino后可以在File-Examples-Teensy中看到官方的示例
详解如何基于Arduino兼容板Teensy LC实现虚拟键盘与鼠标相关推荐
- 详解如何基于Arduino兼容板Digispark实现虚拟键盘与鼠标
目录 前言 硬件环境 USB协议 Digispark介绍 Attiny85介绍 开始前准备 1. 安装Arduino 兼容板设备文件 2. 安装下载驱动 模拟键盘 模拟鼠标 下载到开发板 前言 理论知 ...
- 智能城市dqn算法交通信号灯调度_博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型...
原标题:博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型 国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共 ...
- 技术详解:基于人脸识别的 AI 弹幕
--------点击屏幕右侧或者屏幕底部"+订阅",关注我,随时分享机器智能最新行业动态及技术干货---------- 有时候,弹幕比剧情还精彩,那些脑洞大开.观点鲜明的弹幕,可以 ...
- 详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法
详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法 TF-IDF的基本原理 算法思想 计算公式 相似度计算原理 微型图书推荐案例 案例背景 开发工具 数据预处理 TF-IDF模型建 ...
- DL之Transformer:Transformer的简介(优缺点/架构详解,基于Transformer的系列架构对比分析)、使用方法(NLP领域/CV领域)、案例应用之详细攻略
DL之Transformer:Transformer的简介(优缺点/架构详解,基于Transformer的系列架构对比分析).使用方法(NLP领域/CV领域).案例应用之详细攻略 目录 Transfo ...
- 决策树详解python基于Kaggle的Titanic数据实现决策树分类
决策树详解&&python基于Kaggle的Titanic数据实现决策树分类 一 决策树算法详解 1.前期准备 实验目的准备 2.决策树概述 2.1 决策树 2.2 ID3算法原理 2 ...
- 基于Arduino开发板的火焰报警器
** 基于Arduino开发板的火焰报警器* 概述 本文将通过使用火焰传感器与Arduino UNO组成一个简单的火灾报警系统.该火焰传感器是基于IR(红外线 Infrared Radiation)的 ...
- 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)网购链接
<Linux设备驱动开发详解:基于最新的Linux 4.0内核> china-pub 天猫 dangdang 京东 China-pub 8月新书销售榜 推荐序一 技术日新月 ...
- HashMap原理详解(基于jdk1.8)
HashMap原理详解(基于jdk1.8) HashMap原理详解,有兴趣的同学可以看下.有错误的地方也希望大佬们能指点下. HashMap的内部存储是一个数组(bucket),数组的元素Node实现 ...
最新文章
- Web API 简单示例
- 你碰到过的最难调试的 Bug 是什么样的?
- python socketserver最大连接_大聊Python----SocketServer
- 鸿蒙宴原文及翻译,《鸿门宴》文言文原文及全文详细翻译
- 建立一个端口为8189的服务器,它无限期等待直到有客户连接这个端口。若客户在网上发送正确的请求连接了这个端口,则服务器与客户之间就建立了一个可靠的连接。
- 引用com.sencha.gxt.ui.GXT加载错误解决方案
- MLDN Java学习笔记(3)
- python调用按键精灵插件_[良心教程]分享最新最实用的按键精灵封装函数
- BUUCTF:sqltest
- Redis客户端与服务端
- [渝粤教育] 哈尔滨工业大学 大学计算机—计算思维导论 参考 资料
- 练习电脑键盘打字最好的网站
- linux 如何添加用户,Linux 怎么添加用户(adduser)
- 重磅!全球前2%顶尖科学家榜单发布!
- 【博主推荐】html好看的爱心告白源码
- 深度调查:危险的“360安全卫士”!
- at命令不生效 linux_Linux命令之at
- 一个有用的Win32消息处理宏HANDLE_MSG
- Kotlin: Java 6 废土中的一线希望
- mysql 添加字段并设置为自增长
热门文章
- python dlib gpu ubuntu conda_Ubuntu 下编译支持 GPU 的 TensorFlow 和 Dlib
- 前端每日一算(我掐指一算,這题不难~入门啊入门)
- 服务器上登录网页ip地址,查看服务器上登录的ip地址
- jdbc basedao mysql_Java使用JDBC连接mysql、sqlserver、orcle数据库的baseDao类
- php如何判断是ajax,php如何判断是ajax
- linux 环境下安装 docker 精简步骤
- java编写数字时钟_用JAVA写数字时钟
- c语言 int a 5,在C语言中,有如下的写法:int a = 5; int *pa; pa = (a + 1);
- php 实现联想式 搜索,php实现联想搜索,你会吗?_后端开发
- 计算机原理华东理工大学期末成绩查询,华东理工大学微机原理历年真题第十一章.ppt...