RP2040-Keyboard-3
来自Waveshare Wiki
说明
| ||||||||||||||||||||
| ||||||||||||||||||||
产品概述
RP2040-Keyboard-3 是一款微雪 (Waveshare) 设计的高性能、高性价比的三键键盘开发板,可编程自定义按键功能与RGB灯效,
双Type-C接口,免驱动即插即用,采用热插拔工艺,可自行更换轴体,配有无字符的双层黑色键帽可自行替换。
产品特性
- 采用 Raspberry Pi 自主设计的 RP2040 微控制器芯片
- 搭载双核 ARM Cortex M0+ 处理器,运行频率高达 133MHz 灵活时钟
- 采用双 Type-C 接口 (二选一),支持免驱动即插即用
- 三个按键默认为 "Ctrl"、"C" 和 "V",可通过编程自定义按键功能,配有无字符的双层黑色键帽可自行替换
- 键盘采用热插拔工艺,用户可自行更换轴体
- 默认轴体采用防尘青轴,提供更明显的按键段落感和机械感
- 按键带有 RGB 灯光效果,可根据需求进行设置
尺寸图
Pico快速上手
文字教程
基础介绍
Arduino IDE 系列
安装Arduino IDE
-
首先到Arduino官网下载Arduino IDE的安装包。
-
这里选择仅下载就可以了。
-
下载完成后,点击安装。
注意:安装过程中会提示你安装驱动,我们点击安装即可
Arduino IDE中文界面
在Arduino IDE中安装Arduino-Pico Core
-
打开Arduino IDE,点击左上角的文件,选择首选项
-
在附加开发板管理器网址中添加如下链接,然后点击OK
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
-
点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装
国内用户
- 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过在线的过程
- 若已经成功配置了pico环境,可以直接跳过本章
-
下载rp2040压缩包,将解压的rp2040文件夹复制到如下路径下
C:\Users\[username]\AppData\Local\Arduino15\packages
上传程序
- 下载程序,打开RP2040-Keyboard\arduino\RP2040-Keyboard-3路径下的RP2040-Keyboard-3.ino
-
点击工具>端口,记住已有的COM,不需要点击这个COM(不同电脑显示的COM不一样,记住自己电脑上已有的COM)
-
用Type-c线将驱动板和计算机连接起来,再点击工具>端口,这时就会多出一个COM口
-
点击工具>开发板>Raspberry Pi Pico/RP2040>Raspberry Pi Pico
- 设置完成后,点击向右箭头上传将程序
- 如果期间遇到了问题,需要重新安装或者更换Arduino IDE版本时,卸载Arduino IDE需要卸载干净,卸载软件后需要手动删除C:\Users\[name]\AppData\Local\Arduino15这个文件夹内的所有内容(需要显示隐藏文件才能看到) 再重新安装
示例程序
Arduino例程
依赖库安装
本程序需要安装 FastLED 库使用,具体安装步骤如下:
例程说明
代码解析
初始化
void setup() { pinMode(12, INPUT_PULLUP); pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); pinMode(25, OUTPUT); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); Keyboard.begin(); }
- RP2040-Keyboard-3 上的三个按键分别连接在 Pico 的 GP12、GP13、GP14 引脚上,按键低电平有效,所以这里配置三个引脚为上拉输入。
- 使用 FastLED 库配置了 LED 类型、LED 控制引脚、GRB 颜色顺序,leds 为用于存储 LED 的颜色信息的数组,NUM_LEDS 为 LED 的数量
- 启动键盘模拟功能,初始化 Arduino 键盘库,准备开始模拟键盘输入
主循环
void loop() { ... if(digitalRead(12) == LOW){ Keyboard.press('v'); for(int i = 0;i <= 2;i++){ leds[i] = CRGB(255,0,0); FastLED.show(); delay(5); } }else{ Keyboard.release('v'); } ... }
- Keyboard.press('v')
函数原型:size_t press(uint8_t k),参数 k 为按键键值,模拟按下键值为 k 的按键,在程序中我们通过调用 Keyboard.press('v') 模拟按下按键"v" - Keyboard.release('v')
函数原型:size_t release(uint8_t k),参数 k 为按键键值,模拟释放键值为 k 的按键,在程序中我们通过调用 Keyboard.release('v') 模拟释放键值"v" - 主循环中根据引脚电平判断按键状态,若为低电平调用 Keyboard.press() 模拟按下按键,若为高电平调用 Keyboard.release() 模拟释放按键
- 若按键"v"按下,将 LED 数组中三个 LED 的颜色都设置为红色(RGB值为255,0,0),再调用 FastLED.show() 进行显示
修改按键
RP2040-Keyboard-3支持自定义按键功能,下面介绍修改按键功能的具体步骤:
- 非功能键
通过前文描述可知,修改按键功能需要修改 press 函数传递的键值,若修改为其他非功能键,如字母、数字或符号键等,直接修改引号内的字符即可实现 - 功能键
修改为其他功能键,如 TAB、SHIFT 或 CTRL 键等,我们需要找到这些按键的宏定义,这些宏定义可以在 HID_Keyboard.h 文件中找到,在程序中可以点击 KEY_LEFT_CTRL 再通过 CTRL+F12 或鼠标右键直接跳转至 HID_Keyboard.h 文件,找到对应的按键的宏定义,再通过 press 函数传递即可 - 组合键
同时,支持按下单个按键触发组合键效果,我们只需要调用两次 press 函数即可实现模拟按下组合键