“Let It Glow”:一塊會唱歌、會發(fā)光的披頭士 PCB 藝術(shù)板
在傳統(tǒng)電子項(xiàng)目中,PCB 往往只是承載元件的“電路底板”;但在創(chuàng)客圈,越來越多人開始把 PCB 當(dāng)作畫布,把電子電路和視覺設(shè)計(jì)結(jié)合起來,做成真正意義上的“電子藝術(shù)”。
本文介紹的就是這樣一個項(xiàng)目——The Beetles PCB ART,作者給它起了一個更有趣的名字:Let It Glow。
它既是一塊披頭士主題的 PCB 藝術(shù)板,又是一臺能播放披頭士歌曲的音樂播放器,同時還是一盞 RGB 氛圍燈。
很難給它一個單一的定義,但它很好地詮釋了一個理念:
把電路板變成媒介,用焊盤和阻焊層畫畫,用芯片和 LED 講故事。
1. 項(xiàng)目概述:電路 + 音樂 + 藝術(shù)的混合體
1.1 功能概覽
Let It Glow 的核心特性:
披頭士主題 PCB 藝術(shù)板:
頂層 PCB 上是 60 年代風(fēng)格的卡通 Beatles 插畫,來源于 Pinterest,經(jīng)處理后變?yōu)?PCB 圖形。音樂播放器:
通過 Raspberry Pi Pico 2 + DFPlayer Mini 播放預(yù)存于 SD 卡中的 Beatles 曲目。RGB 氛圍燈:
底板上的 WS2812B RGB LED 從背后照亮上層藝術(shù)板,形成四色區(qū)域漸變光效。一體化結(jié)構(gòu):
PCB 藝術(shù)板作為前面板,電子主板與揚(yáng)聲器、電池、充電電源管理全部集成在后側(cè)結(jié)構(gòu)中,可放置在桌面或掛墻。
作者自己也說不太好定義這件作品——既不是單純的臺燈,也不是傳統(tǒng)意義的播放器,而是一個“電子藝術(shù) + 互動音樂盒”式的混合創(chuàng)作。
2. 材料與硬件清單
項(xiàng)目核心器件如下:
主控與存儲
Raspberry Pi Pico 2(RP2040 系列微控制器板)
Micro SD 卡(音樂文件存儲)
音頻部分
DFPlayer Mini 音頻模塊
揚(yáng)聲器(與 DFPlayer 直接連接)
顯示與光效
多個 WS2812B RGB LED(數(shù)字可編程燈珠,串聯(lián)構(gòu)成燈帶/燈圈)
SMD 指示 LED(0805 封裝)
電源與充電管理
IP5306 電源管理芯片(鋰電升壓 + 充電管理)
鋰電池(原計(jì)劃 18650,最終使用 14500 3.7V,容量約 600mAh)
USB Type-C 接口(充電與供電)
去耦電容:10 μF(1206)、100 nF(0603)
控制與交互
下一曲
音量加
音量減
電源/模式(硬件側(cè))
4×4 輕觸按鍵(4 個),用于:
結(jié)構(gòu)與連接件
定制 PCB(主板 + 前藝術(shù)層 PCB)
3D 打印外殼(Fusion 設(shè)計(jì))
M2.5 螺絲、M2.5 銅柱、CON5 連接頭(自制公/母頭組合)
3. PCB 藝術(shù):從畫到板的“視覺電路”
3.1 PCB Art 的個人演化
作者本身是喜歡繪畫的,于是開始嘗試把藝術(shù)和電子結(jié)合在 PCB 上:
早期項(xiàng)目:Flux Capacitor(回到未來中的通量電容)發(fā)光板
后續(xù)項(xiàng)目:Pandacorn(獨(dú)角獸熊貓)、Halo、進(jìn)擊的巨人主題板、心形 Badge、R2-D2 等
技術(shù)手法:
利用頂/底層阻焊層開窗控制透光區(qū)域
把 LED 放在板底,通過雙層開窗讓光直接透過插畫區(qū)域
利用銅箔 + 阻焊顏色對比,做“線稿 + 陰影效果”
這些經(jīng)驗(yàn)最終沉淀為當(dāng)前 Beatles 主題板的設(shè)計(jì)方法。

3.2 Beatles 主題前板設(shè)計(jì)思路
在 Pinterest 上尋找符合風(fēng)格的 Beatles 卡通圖
將圖片導(dǎo)出,并根據(jù) PCB 尺寸縮放
轉(zhuǎn)換格式:JPG → 黑白單色 BMP,方便導(dǎo)入 PCB CAD
在 PCB 軟件中作為 Logo 導(dǎo)入,映射到頂層銅/阻焊:
黑色區(qū)域:轉(zhuǎn)為銅層/金屬圖形,用于“擋光”與線條表現(xiàn)
白色區(qū)域:作為阻焊開窗,形成透光孔洞
同樣的開窗在底層也做一份,使 RGB LED 的光可以穿透整塊板
結(jié)果就是:RGB LED 在主板上,下方發(fā)光;上層藝術(shù)板通過控制“哪里遮光、哪里透光”,把導(dǎo)線和阻焊變成“畫面的一部分”。
4. 3D 結(jié)構(gòu)與工業(yè)設(shè)計(jì):把藝術(shù)板裝進(jìn)一個完整的設(shè)備里
在開始繪制 PCB 之前,作者先在 Fusion 360 中構(gòu)建了整個裝置的 3D 模型。這一步尤其重要,原因有兩點(diǎn):
結(jié)構(gòu)定尺寸,反推 PCB 尺寸與布局:
揚(yáng)聲器位置決定 PCB 面積與開孔位置
鋰電池、Type-C 口、按鈕位置共同影響主板形狀
聲學(xué)與機(jī)械結(jié)合考慮:
揚(yáng)聲器需要穩(wěn)定支撐
出音孔、腔體體積直接影響音質(zhì)
3D 模型完成后,再生成外殼 STL 文件,通過 3D 打印出整套外殼,使 PCB 與外殼高度貼合,形成一個完整的“桌面設(shè)備”。
5. PCB 設(shè)計(jì):主板 + 藝術(shù)板雙板結(jié)構(gòu)
整個電路系統(tǒng)分為兩塊 PCB:
Main Board(主板): 承載所有電子功能(Pico、DFPlayer、IP5306、RGB、按鍵、電源接口等)
Front Art Layer(前藝術(shù)板): 主要是插畫和按鍵,做可視化 + 透光面板
5.1 主板電路結(jié)構(gòu)
主控與音頻通信
Raspberry Pi Pico 2 作為核心控制器
DFPlayer Mini 的 RX/TX 與 Pico 的 GPIO(如例程中 7、8)通過軟串口通信
Pico 控制音量、曲目切換,根據(jù) DFPlayer 狀態(tài)做后續(xù)控制
按鍵接口
GPIO12:下一曲按鍵
GPIO13:音量加
GPIO14 / 15:音量減 / 備用(不同實(shí)現(xiàn)可能略有差異)
使用一個 CON5 連接器將前板按鍵引出至 Pico 的 GPIO:
按鍵采用
INPUT_PULLUP,默認(rèn)高電平,按下接地,邏輯簡單可靠RGB 燈效
使用 24 顆 WS2812B 串聯(lián),構(gòu)成 LED 環(huán)或燈條
第一個 LED 的 DIN 接 Pico 的 GPIO0
所有 LED 的 VCC 接 5V,GND 接地
每顆 LED 就近放置一個去耦電容(10 μF + 100 nF 組合),保證電源穩(wěn)定
電源管理
從 3.7V 鋰電升壓至 5V
充電管理與充電指示
欠壓/過壓保護(hù)
IP5306 負(fù)責(zé):
14500 鋰電池直接焊接到 PCB 的電池焊盤

6. PCB 制造與 DFM 檢查(簡要)
電路設(shè)計(jì)完成后,導(dǎo)出 Gerber 文件,提交 PCB 廠生產(chǎn)。
在實(shí)際工程中,作者使用了 HQDFM 這類 Gerber 查看與 DFM 分析工具,提前檢查:
阻焊開窗是否正確
過孔與焊盤尺寸是否符合工藝
器件間間距是否足夠
這種“自檢 + 廠家 DFM”的組合,可以在打樣前發(fā)現(xiàn)一部分潛在問題,減少返工。
7. 主板裝配:從焊膏到可工作的電路系統(tǒng)
7.1 SMD 器件貼裝與回流
使用針筒將焊膏(63/37 Sn/Pb)點(diǎn)涂到每個 SMD 焊盤
使用鑷子放置:
WS2812B RGB LED
IP5306 電源管理芯片
配套的電阻、電容等
將 PCB 放至加熱板或小型回流臺上,加熱至約 200°C 左右,使焊膏熔化并重新固化,完成所有貼片器件焊接
7.2 通孔器件焊接
從 PCB 頂面插入:
Raspberry Pi Pico 的母排針
DFPlayer Mini 的母排針
Type-C 接口
自制 CON5 連接頭
電感與部分大封裝器件
翻轉(zhuǎn) PCB,使用電烙鐵逐個焊接通孔焊點(diǎn),保證機(jī)械與電氣連接可靠
最后,將 Pico 與 DFPlayer 插入對應(yīng)母座,主板裝配完成
8. RGB 燈效測試代碼解析
主板裝好后,第一件事不是直接播放音樂,而是先驗(yàn)證 RGB 燈帶是否工作正常。測試代碼基于 Adafruit NeoPixel 庫:
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 0
#define NUMPIXELS 25 // 實(shí)際可根據(jù)板上 LED 數(shù)調(diào)整
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 100
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
}
void loop() {
pixels.clear();
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 150, 0)); // 綠色
pixels.show();
delay(DELAYVAL);
}
}測試點(diǎn):
數(shù)據(jù)線是否正確連接到第一個 WS2812 的 DIN
5V 電源是否能穩(wěn)定驅(qū)動全部 LED
是否存在“半條燈不亮”之類的焊接或布線問題
看到 LED 按預(yù)期逐個點(diǎn)亮,就說明整個 RGB 子系統(tǒng)工作正常。
9. 前藝術(shù)層裝配與揚(yáng)聲器、電池集成
9.1 藝術(shù)板按鍵焊接
前藝術(shù)板上包含 4 個 4×4 輕觸開關(guān):
將按鍵插入 PCB 指定孔位
翻面后逐個焊接,保證按鍵平整、牢固
按鍵引腳通過 CON5 接頭與主板的對應(yīng) GPIO 相連
9.2 揚(yáng)聲器接線
揚(yáng)聲器正極 → DFPlayer 的 Speaker 1 引腳
揚(yáng)聲器負(fù)極(GND)→ DFPlayer 的 Speaker 2 引腳
DFPlayer 內(nèi)置功放,這種接法形成一個簡易單聲道音頻通路,不需要額外功放。
9.3 電池接入
原本計(jì)劃使用 18650,但出于體積考慮改用 14500 電池
兩者標(biāo)稱電壓同為 3.7V,14500 體積更小但容量約減半
電池正負(fù)極直接焊接到板載電池焊盤,經(jīng) IP5306 升壓與充電管理
10. 主控代碼解析:音樂控制 + LED 氛圍
這是項(xiàng)目中最核心的一段代碼(簡化整理后):
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
#include <Adafruit_NeoPixel.h>
SoftwareSerial mySerial(7, 8); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
const int totalSongs = 4;
int currentSong = 1;
int currentVolume = 20;
// 按鍵引腳
const int nextPin = 12;
const int volUpPin = 13;
const int volDownPin = 14;
// LED 配置
#define LED_PIN 0
#define LED_COUNT 24
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
pinMode(nextPin, INPUT_PULLUP);
pinMode(volUpPin, INPUT_PULLUP);
pinMode(volDownPin, INPUT_PULLUP);
strip.begin();
strip.show();
if (!myDFPlayer.begin(mySerial)) {
Serial.println("DFPlayer Mini not found");
while (true);
}
myDFPlayer.volume(currentVolume);
delay(1000);
myDFPlayer.play(currentSong);
updateLEDs();
}
void loop() {
// 歌曲播放結(jié)束自動切下一曲
if (myDFPlayer.available()) {
uint8_t type = myDFPlayer.readType();
if (type == DFPlayerPlayFinished) {
currentSong++;
if (currentSong > totalSongs) currentSong = 1;
myDFPlayer.play(currentSong);
}
}
// 長按切歌
static unsigned long nextPressStart = 0;
if (digitalRead(nextPin) == LOW) {
if (nextPressStart == 0) nextPressStart = millis();
if (millis() - nextPressStart >= 1000) {
currentSong++;
if (currentSong > totalSongs) currentSong = 1;
myDFPlayer.play(currentSong);
nextPressStart = 0;
while (digitalRead(nextPin) == LOW); // 等待松開
}
} else {
nextPressStart = 0;
}
// 音量加
if (digitalRead(volUpPin) == LOW) {
delay(200);
if (currentVolume < 30) currentVolume++;
myDFPlayer.volume(currentVolume);
while (digitalRead(volUpPin) == LOW);
}
// 音量減
if (digitalRead(volDownPin) == LOW) {
delay(200);
if (currentVolume > 0) currentVolume--;
myDFPlayer.volume(currentVolume);
while (digitalRead(volDownPin) == LOW);
}
}
void updateLEDs() {
for (int i = 0; i < LED_COUNT; i++) {
if (i < 6) {
strip.setPixelColor(i, strip.Color(255, 255, 0)); // 黃色
} else if (i < 12) {
strip.setPixelColor(i, strip.Color(255, 0, 128)); // 品紅
} else if (i < 18) {
strip.setPixelColor(i, strip.Color(0, 255, 255)); // 青藍(lán)
} else {
strip.setPixelColor(i, strip.Color(0, 255, 0)); // 綠色
}
}
strip.show();
}10.1 庫說明
SoftwareSerial:在指定 GPIO 上模擬串口,用于與 DFPlayer 通信DFRobotDFPlayerMini:提供簡單 API 來控制 DFPlayer:play、volume、讀狀態(tài)等Adafruit_NeoPixel:驅(qū)動 WS2812B,控制每一顆 RGB LED 的顏色
10.2 交互邏輯
按鍵功能
nextPin:長按約 1s → 切換下一首volUpPin:短按 → 音量 +1,最大 30volDownPin:短按 → 音量 -1,最小 0電源按鈕則多為硬件電路實(shí)現(xiàn)(如 IP5306 按鍵或電源開關(guān)),未在此代碼中作為 GPIO 讀取
曲目管理
totalSongs = 4,輪詢播放 1~4 號曲目當(dāng) DFPlayer 報告
PlayFinished時自動切下一首燈效映射
區(qū)域 1:黃色
區(qū)域 2:偏粉紫
區(qū)域 3:青藍(lán)
區(qū)域 4:綠色
24 顆 LED 被劃分為 4 個區(qū)域,每 6 顆一種顏色:
這四個區(qū)域在實(shí)體板上對應(yīng) Beatles 插畫的不同區(qū)域,從而形成具有分區(qū)感的背光效果
燈效邏輯非常簡單,但在藝術(shù)板的透光設(shè)計(jì)配合下,視覺效果卻非常“合成感”。
11. 最終裝配與整機(jī)形態(tài)
11.1 雙板連接
使用自制的 CON5 公/母頭“直插橋接件” 把前藝術(shù)板與主板連接
在前板四個安裝孔上擰入 M2.5 PCB 銅柱
將前板對準(zhǔn)主板上的對應(yīng)孔與連接器位置壓合并鎖緊,完成電氣與機(jī)械雙重連接
11.2 外殼與整體固定
3D 打印外殼容納了揚(yáng)聲器與鋰電池
主板 + 前板組合安裝在外殼上,通過 M2.5 螺絲鎖緊
外形效果類似一塊“有插畫的發(fā)光音樂盒”,可以平放在桌面,也可通過背面的掛孔掛墻
12. 效果與意義:電路板不止是電路板
完成后的 Let It Glow:
播放的是 Beatles 歌曲
呈現(xiàn)的是 Beatles 主題的卡通插畫
背后是完整的電源管理、燈效控制、音頻播放、電路設(shè)計(jì)與機(jī)械結(jié)構(gòu)整合
它不是單純的音箱,也不是簡單的燈牌,而是一件融合了:
視覺設(shè)計(jì)
音樂內(nèi)容
電子工程
結(jié)構(gòu)設(shè)計(jì)
的綜合作品。
從工程視角看,這個項(xiàng)目很好地體現(xiàn)了幾個要點(diǎn):
PCB 不再只是“功能承載”,而是設(shè)計(jì)的一部分:
銅、阻焊、絲印都被納入“視覺系統(tǒng)”。多學(xué)科融合:
工業(yè)設(shè)計(jì)(3D 外殼)、電子硬件(電源、音頻、電路)、嵌入式軟件(Pico 控制)、視覺藝術(shù)(插畫與透光)在一個小項(xiàng)目中全部出現(xiàn)。可擴(kuò)展性強(qiáng):
未來可以很容易加入:音樂與燈效同步(節(jié)奏閃爍)
觸摸按鍵或手勢控制
USB 或 BLE 升級為“可編程氛圍音箱”














評論