把“节奏大师”搬进现实?
技术最大的价值是什么? 对我而言,是让那些原本枯燥、高门槛的事情,变得直观且有趣。最近,我把目光投向了孩子的钢琴🎹。
对于成年人来说,初学者练琴最大的阻碍往往不是手指的灵活度,而是“认知负荷”。眼睛要盯着密密麻麻的五线谱,大脑要转换成键位,手指再做出反应——这个过程往往会打断音乐本身的连贯性。
当初选琴时也在思考:能否利用技术,在“看”与“弹”之间搭建一座更直观的桥梁?虽然市面上有现成的“智能钢琴”,但为了手感和音质,最终还是选择了传统大品牌的电钢。
直到最近刷到类似的视频,那段记忆再次被唤醒。现在有了大模型和开源社区,为什么不自己动手,用一根灯带给它注入“灵魂”呢?
说干就干。经过调研,基于开源项目 Piano-LED-Visualizer,配合最新的树莓派和改进的硬件方案,完成了这次改造。
01. 效果展示:当科技遇见旋律
这是改造后的样子,它不仅仅是视觉效果的提升,更是一种交互维度的升级。

聆听模式,本想拍个视频奈何会弹琴的家伙没在家
除了好看,更重要的是实用。 配合Synthesia软件(自带曲库,支持导入 MIDI),钢琴进入了“练习模式”。

练习模式
灯光提前亮起,静静等待指尖落下。它消除了“找键”的焦虑,让你能更快地进入演奏的“心流”状态。
⚠️ 高能预警:以下内容为“后院实验室”硬核实操环节。如果你喜欢动手,建议收藏。然后准备好你的电烙铁并购买材料;如果你只是来看热闹的,可以直接滑到文末看总结。

控制和供电
02. 后院造物清单 (BOM)
为了解决原项目中 WS2812B(5V)长距离供电导致尾部发红、电流过大的问题,改进使用了WS2815(12V)灯带。
核心硬件:
大脑:树莓派 Zero 2 WH(小巧、性能足够)
光源:WS2815 灯带(12V,2米,每米144灯珠,需根据琴键裁剪)
电源:12V 6A 电源适配器
降压模块:DC-DC 降压模块(12V 转 5V,给树莓派供电)
美观组件:铝合金灯槽 +乳白柔光罩(这是去除廉价感的关键)
外壳:3D 打印外壳(用于收纳线路,保持整洁)
耗材与配件:
Micro USB OTG 线(连接钢琴与树莓派)
16G 以上高速 TF 卡
硅胶软线、DC 插头/插座 (5.5*2.5mm)
3M 双面胶
03. 硬件连接:分流与共地
硬件连接的核心逻辑是:12V 供灯,5V 供派,两者共地。
电源输入:12V 电源适配器接入。
支路一(灯带):12V 直接接入 WS2815 灯带的正极。
支路二(树莓派):12V 接入 DC-DC 模块,降压输出 5V,通过 Micro USB 焊线接入树莓派供电口。
信号与共地(关键!):所有负极都回到 12V 电源负极!!!
WS2815 灯带B线(备份信号线)和负极相连。
树莓派接线示意:

⚠️ 避坑指南:
先测后接:务必先用万用表测量 DC-DC 模块输出是否稳定在 5V,否则瞬间烧毁树莓派(别问我是怎么知道的)。
绝缘处理:灯带放入铝槽时,务必检查背面、侧面和顶面是否有裸露焊点,贴上绝缘胶带,防止与铝槽短路。灯带安装完成后测量+12V、D、B、GND 之间是否存在短路进行确认。
04. 软件部署:注入灵魂
原项目的教程比较老旧,针对最新的树莓派系统和 WS2815 灯带,我整理了一套2026版部署流程。
第一步:烧录系统
下载Raspberry Pi Imager。
配置镜像时,点击右下角齿轮,提前设置:主机名:pianoledvisualizer,用户名:plv / 密码:visualizer,配置好你的 WiFi 和 SSH 开启。
烧录完成后插入树莓派,通电等待几分钟,在路由器后台找到 IP 地址。
第二步:环境依赖安装 (SSH 连接)
连接 SSH 后,依次执行以下命令(建议复制粘贴):
更新系统并开启 SPI
sudo apt-get update && sudo apt-get upgrade -ysudo raspi-config nonint do_spi 0
安装海量依赖库 (音频、图形、编译工具)
sudo apt-get install -y ruby git python3-pip autotools-dev libtool autoconf libasound2 libavahi-client3 libavahi-common3 libc6 libgcc-s1 libstdc++6 python3 libopenblas-dev libavahi-client-dev libasound2-dev libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev libopenjp2-7 libtiff6 libjack0 libjack-dev fonts-freefont-ttf gcc make build-essential scons swig abcmidi
屏蔽板载音频 (防止冲突)
sudo nano /etc/modprobe.d/snd-blacklist.conf
粘贴内容: blacklist snd_bcm2835
sudo nano /boot/firmware/config.txt
注释掉 dtparam=audio=on,改为:#dtparam=audio=on
sudo reboot
第三步:核心程序安装
安装 rtpmidid (处理网络 MIDI)
cd /home/sudo wget http://ftp.de.debian.org/debian/pool/main/f/fmtlib/libfmt9_9.1.0+ds1-2_arm64.debsudo dpkg -i libfmt9_9.1.0+ds1-2_arm64.debsudo apt -f installsudo wget https://github.com/davidmoreno/rtpmidid/releases/download/v24.12/rtpmidid_24.12.2_arm64.debsudo dpkg -i rtpmidid_24.12.2_arm64.debsudo apt -f install
克隆项目与安装 Python 库
sudo git clone https://github.com/onlaj/Piano-LED-Visualizercd Piano-LED-Visualizersudo apt-get install -y python3-rpi.gpio python3-webcolors python3-psutil python3-mido python3-pillow python3-rtmidi python3-spidev python3-numpy python3-flask python3-waitress python3-websockets python3-werkzeugsudo pip3 install rpi-ws281x --break-system-packages
设置自动登录
sudo raspi-config
选择 System options -> Boot / Auto Login -> Console Autologin
第四步:设置开机自启 (Systemd)
sudo nano /lib/systemd/system/visualizer.service
粘贴以下服务配置:
[Unit]Description=Piano LED VisualizerAfter=network-online.targetWants=network-online.target[Install]WantedBy=multi-user.target[Service]ExecStart=sudo python3 /home/Piano-LED-Visualizer/visualizer.pyRestart=alwaysType=simpleUser=plvGroup=plv
启用服务:
sudo systemctl daemon-reloadsudo systemctl enable visualizer.servicesudo systemctl start visualizer.servicesudo chmod a+rwxX -R /home/Piano-LED-Visualizer/
05. 后院笔记:调试与排坑
这一步是成败的关键,请仔细核对。
1. 解决 WS2815 颜色不对的问题因为 WS2815 的色彩顺序是 RGB,而库默认是 GRB。 SSH 到树莓派修改项目文件:lib/ledstrip.py找到 init_strip 函数(约61行),将 ws.WS2811_STRIP_GRB 修改为:ws.WS2811_STRIP_RGB
2. 解决 WiFi 连接问题程序会接管网络,如果家里 WiFi 是多频合一可能导致连不上家里的 WiFi。
方法:手机搜索树莓派开启的热点,连接后进入网页配置页面手动添加 WiFi。
关闭热点模式: 同样SSH 到树莓派修改项目文件 config/settings.xml,找到:
1
将 1 改为 0。 然后创建配置并强制开启自动连接:
sudo nmcli con add type wifi ifname wlan0 con-name "MyHomeWiFi" ssid "你的 WiFi 名称"sudo nmcli con modify "MyHomeWiFi" wifi-sec.key-mgmt wpa-psksudo nmcli con modify "MyHomeWiFi" wifi-sec.psk "你的 wifi 密码"sudo necli con up "MyHomeWiFi"sudo nmcli connection modify "MyHomeWiFi" connection.autoconnect yes
好了,现在你可以在本地局域网访问到 WEB 管理页面了:

Piano-LED-Visualizer网页端管理界面
关于Synthesia的一些补充:
1、Synthesia在苹果美区App Store
2、iPad上需要下载一个叫midimittr的免费 APP,用它作为网络 MIDI 的桥梁,才能搜索到树莓派。
3、Synthesia设置中需要在输出里选择midimittr发现的网络 MIDI 设备并开启键灯(选择基于指法的通道)
4、在Synthesia网页中配置活动输入端口为 iPad,并将发送端的钢琴连接到接收端的 iPad

5、接下来就开始你的表演吧,注意Synthesia中的学习模式叫旋律练习。
写在最后
在Backyard Works,我们始终相信:最好的 DIY,不是为了堆砌硬件,而是为了解决生活中的微小痛点。
技术不应该总是高高在上的代码和参数,它也可以化作一束温暖的光,指引你弹出第一首完整的《天空之城》。
这篇教程虽然硬核,但一旦点亮的那一刻,你会发现所有的折腾都是值得的。
如果你在制作过程中遇到任何问题,欢迎在评论区留言,若需要3D 打印外壳的 STL 文件也欢迎私信。
关注 Backyard Works,一起在后院,造点好玩的。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

missnanahz
校验提示文案
鲁西西的好友罗克
校验提示文案
鲁西西的好友罗克
校验提示文案
missnanahz
校验提示文案