【DigiKey好物畅享】+Adafruit+RP2040 MacroPad+micropython开发使用(3)

【DigiKey好物畅享】+Adafruit+RP2040 MacroPad+micropython开发使用(3)

五、软件开发体验:CircuitPython 生态支持最为完善

CircuitPython 是 Adafruit 基于 MicroPython 深度定制和长期维护的分支,而 MacroPad 在 CircuitPython 生态下,拥有当前最完整、最成熟的软件支持。

这并非 MCU 或硬件层面的限制,而是 生态投入与抽象封装程度的差异。

在 CircuitPython 下,MacroPad 提供了高度集成的硬件对象与功能封装,包括但不限于:

按键对象(Keys)

NeoPixel 灯珠对象

旋转编码器对象

OLED 显示对象

蜂鸣器音调封装(Tone / Audio)

USB HID(键盘 / 鼠标 / 消费者控制)

USB MIDI 封装

完整的官方示例代码体系

这些能力使得 MacroPad 在 CircuitPython 下,几乎不需要接触底层驱动代码,就可以快速构建完整的人机交互应用。

下面整理的是官方示例代码的功能说明文档,可作为 MacroPad RP2040 的开发参考索引。

开发工具体验

Mu 编辑器官方推荐:链接放不了了,超过新用户限制了

实际体验:

上手简单

但对我来说不够高效

更适合教学或快速验证

VS Code + CircuitPython

我更习惯使用 VS Code 编写代码

Mu 用于串口调试

目前 CircuitPython v2 插件存在一定稳定性问题,无法正常工作

CircuitPython固件烧录

按下编码器插电开机会进入UF2烧录模式,会弹出一个小u盘,把固件拖入到里面即可自动烧录重启

烧录完成以后我习惯配置一下常用库,库的更新官方给的第一方法是直接下载包,复制粘贴到Adafruit MacroPad的文件夹中,但是我选择用一个工具来一件下载,首先确认你配置好了python环境和环境变量,然后安装CircUp

pip install setuptools

pip install circup

安装好了以后,输入

Circup --version

正常安装会打印版本号,再次输入

circup install adafruit_macropad

一键安装 MacroPad 常用库(不成功检测网络环境,需要github魔法)

还有两个好用的命令

circup install -r

它会扫描:

code.py

/lib

所有 import xxx

然后自动下载缺失的库

circup update

一键更新所有库

示例程序体验

官方示例中有一个非常有代表性的 Demo:

macropad_tone_keypad_extended.py

刷入后即可实现:

OLED 显示

旋钮控制

RGB 灯效

蜂鸣器发声

的 小型键盘音乐播放器,非常适合理解整块板子的能力边界。我调节了一下蜂鸣器的频率,下面是这个MacroPad 的声音体验

from rainbowio import colorwheel # 导入颜色轮函数,用于生成渐变颜色

from adafruit_macropad import MacroPad # 导入 MacroPad 类

# 创建 MacroPad 实例,后续通过该对象访问按键、像素和蜂鸣器等功能

macropad = MacroPad()

# 每个按键对应的音调(Hz),共 12 个按键

tones = [784, 880, 988, 1175, 1319, 1568, 1760, 1976, 2349, 2637, 3136, 3520]

# 主循环:持续监听按键事件

while True:

# 从事件队列中读取按键事件(如果有的话)

key_event = macropad.keys.events.get()

# 如果有按键事件,处理按下或释放的情况

if key_event:

# 按键被按下:点亮对应按键颜色并开始发声

if key_event.pressed:

# 使用 colorwheel 根据按键编号计算颜色值,给该按键的 LED 上色

macropad.pixels[key_event.key_number] = colorwheel(int(255 / 12) * key_event.key_number)

# 播放对应频率的音调

macropad.start_tone(tones[key_event.key_number])

# 按键被释放:关闭所有按键灯并停止发声

else:

macropad.pixels.fill((0, 0, 0)) # 将所有像素设为关闭(黑色)

macropad.stop_tone() # 停止音调

蜂鸣器演示

六-写一个简单游戏-打地鼠

打砖块分为3个难度,不同难度,亮着的按键停留时间不一样

def get_mole_speed():

“”“Get the time between mole changes in seconds.”“”

speeds = [2.0, 1.2, 0.6] # 简单、普通、困难

return speeds[min(difficulty - 1, 2)]

计分系统,按对给分,连对递增,按错不计分

if key_event.key_number == active_key:

# 按对了!

score += 10 + combo

combo += 1

play_correct_tone()

start_new_mole()

else:

# 按错了

play_error_tone()

combo = 0

start_new_mole()

为了增加打击手感,设计了递增音效频率,提升了游玩手感

def play_correct_tone():

“”“Play a tone that increases with combo.”“”

freq = 800 + (combo * 50) # 基础800Hz + 每连击50Hz

freq = min(freq, 2000) # 上限2000Hz

macropad.start_tone(freq)

time.sleep(0.1)

macropad.stop_tone()

直接来看游戏视频,代码和详细的产品逻辑说明放在文章的附件里面了

总结:精致的极客玩具

虽然 MacroPad RP2040 发布于 2021 年,但放在 2025 年的今天,它依然毫不过时 。

作为产品:它布局合理,用料扎实,颜值在线。

作为开发板:它生态完善,开源资料详尽。

相比直接作为成品使用,我更感兴趣的是基于它完整的开源硬件资料,去延伸设计一款**支持无线通信、内置电池的开源小键盘**,把它真正做成一个日常可用、又极具可玩性的输入设备。

虽然这款 MacroPad RP2040 发布于 2021 年,距今已经 4 年,但放到 2025 年来看,它的整体设计依然非常耐看,无论是布局、用料还是可玩性,都没有明显的“过时感”。

下一期我将和大家分享 **QMK 固件的使用与配置**,包括基础上手和一些实用玩法,敬请期待。

附件:

开源pcb

micropython的示例代码-有一个redme文档可以快速看看介绍

敲砖块代码+说明文档

通过网盘分享的文件:Adafruit MacroPad RP2040.zip
链接: https://pan.baidu.com/s/1gOAJWduY1GuA3hVRafFcfg?pwd=0000 提取码: 0000
–来自百度网盘超级会员v4的分享