RP2040-Keyboard-3 教程

资料

配套资料

示例程序

官方资料

树莓派官方文档

树莓派开源例程

开发软件


说明

产品概述

RP2040-Keyboard-3 是一款微雪 (Waveshare) 设计的高性能、高性价比的三键键盘开发板,可编程自定义按键功能与RGB灯效,
双Type-C接口,免驱动即插即用,采用热插拔工艺,可自行更换轴体,配有无字符的双层黑色键帽可自行替换。

产品特性

  • 采用 Raspberry Pi 自主设计的 RP2040 微控制器芯片
  • 搭载双核 ARM Cortex M0+ 处理器,运行频率高达 133MHz 灵活时钟
  • 采用双 Type-C 接口 (二选一),支持免驱动即插即用
  • 三个按键默认为 "Ctrl"、"C" 和 "V",可通过编程自定义按键功能,配有无字符的双层黑色键帽可自行替换
  • 键盘采用热插拔工艺,用户可自行更换轴体
  • 默认轴体采用防尘青轴,提供更明显的按键段落感和机械感
  • 按键带有 RGB 灯光效果,可根据需求进行设置

尺寸图


Pico快速上手

文字教程

基础介绍

Raspberry Pi Pico的基础介绍

Arduino IDE 系列

安装Arduino IDE

  1. 首先到Arduino官网下载Arduino IDE的安装包。

  2. 这里选择仅下载就可以了。
  3. 下载完成后,点击安装。
  4. 注意:安装过程中会提示你安装驱动,我们点击安装即可

Arduino IDE中文界面

  1. 第一次安装完成后,打开Arduino IDE全是英文界面,我们可以在File>Preferences切换成简体中文。

  2. 在Language里面选择简体中文,点击OK。

在Arduino IDE中安装Arduino-Pico Core

  1. 打开Arduino IDE,点击左上角的文件,选择首选项
  2. 在附加开发板管理器网址中添加如下链接,然后点击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
  3. 点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装


国内用户
  • 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过在线的过程
  • 若已经成功配置了pico环境,可以直接跳过本章
  1. 下载rp2040压缩包,将解压的rp2040文件夹复制到如下路径下
    C:\Users\[username]\AppData\Local\Arduino15\packages


    注意:将里面用户名:[username]替换成自己的用户名

上传程序

  1. 下载程序,打开RP2040-Keyboard\arduino\RP2040-Keyboard-3路径下的RP2040-Keyboard-3.ino
  2. 点击工具>端口,记住已有的COM,不需要点击这个COM(不同电脑显示的COM不一样,记住自己电脑上已有的COM)
  3. 用Type-c线将驱动板和计算机连接起来,再点击工具>端口,这时就会多出一个COM口
  4. 点击工具>开发板>Raspberry Pi Pico/RP2040>Raspberry Pi Pico
    工具pico开发板.png
    Arduono-Raspberrypi pico.png
  5. 设置完成后,点击向右箭头上传将程序
  • 如果期间遇到了问题,需要重新安装或者更换Arduino IDE版本时,卸载Arduino IDE需要卸载干净,卸载软件后需要手动删除C:\Users\[name]\AppData\Local\Arduino15这个文件夹内的所有内容(需要显示隐藏文件才能看到) 再重新安装


示例程序

Arduino例程

依赖库安装

本程序需要安装 FastLED 库使用,具体安装步骤如下:

  1. 安装 FastLED 库
  2. 安装成功

例程说明

  • RP2040-Keyboard-3作为一个键盘设备接入到电脑中,实现键帽对应功能
  • 使用在线键盘测试按键功能是否正常
    • 按键"CTRL"测试
    • 按键"C"测试
    • 按键"V"测试

代码解析

初始化

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 函数即可实现模拟按下组合键