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 函数即可实现模拟按下组合键
TAG: RP2040微控制器 资料 树莓派5 PCIE转M.2 NVME双SSD固态硬盘2CH-M.2-HAT+扩展板Pi5 继电器模块 MaixCAM 外壳 0.85寸LCD显示屏 X1011树莓派5 PCIE转M.2 NVME 4口SSD固态硬盘扩展板Pi5四倍 树莓派5铝合金外壳 X1200 树莓派5 UPS电源管理扩展板18650不间断供电模块 移动机器人 带拾音功能 MaixPy主页 产品上位机使用 USB转LoRa数传模块 基于SX1262方案 无线数传终端 工业农业数据采集 STM32电子墨水屏驱动板 挂胸 ESP32 S3虾哥小智AI开发板1.28寸LCD显示屏DeepSeek N16R8 树莓派7寸QLED量子点电容触摸显示屏1024x600 PC电脑游戏副屏 荔枝派糖Lichee Tang Nano 4K高云FPGA GOAI开发板Sipeed W1NSR-LV4C RJ45转RS232 Sipeed MaixCAM AI Linux摄像头开发板YOLO视觉识别RISC-V SG2002