详解如何基于Arduino兼容板Teensy LC实现虚拟键盘与鼠标

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解如何基于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)结束键盘通信
print 模拟键盘输入字符
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");//输入cmd
  Keyboard.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实现虚拟键盘与鼠标

详解如何基于Arduino兼容板Digispark实现虚拟键盘与鼠标

基于Arduino框架下VSCode PlatformIO一个项目配置两种不同开发板的兼容模式

Arduino--开发板简介(一)

Arduino单片机开发板如何与Dht11联接

Arduino uno板上连接一个HC-05,设置后能与手机配对成功,但是无法连接?