项目简介
最近我做了一个很小的桌面发光盒。
它平时处于休眠状态,把盒子拿起来再轻轻放下,正面的"白搞电子"四个字就会亮起。灯光持续几秒后自动熄灭,再次触发时会切换另一种灯光效果。
整个装置没有显示屏,也没有复杂的传感器,主要由以下几部分组成:
- 一颗RGB LED;
- 一颗8位单片机;
- 一个滚珠震动开关;
- 一颗纽扣电池;
- 一套3D打印外壳和导光结构。
这个项目的电路并不复杂,真正花时间的反而是外壳、电路板固定和光线扩散。
发光盒演示视频
一、硬件尺寸与设计目标
原始电路板的长和宽都在23毫米左右,加上元件和纽扣电池后,整体高度约13毫米。
最初它只是一块能够震动发光的小板。我希望给它增加一个完整外壳,让它变成可以摆在桌面上的小物件,同时满足以下几个要求:
- 平时保持低功耗休眠;
- 移动盒子时自动唤醒;
- 发光几秒后自动关闭;
- 每次触发切换一种灯效;
- 正面四个字能够被一颗LED尽量均匀地照亮;
- 电路板能够拆装,外壳方便打印。
二、滚珠开关如何唤醒单片机
滚珠开关竖直安装,一端接单片机输入端,另一端接地。
盒子静止时,单片机很快进入休眠。当盒子被拿起或落下时,内部滚珠因为重力和惯性短暂移动,使开关状态发生变化,从而产生唤醒信号。
单片机被唤醒后的基本流程如下:
text
静置休眠
↓
盒子发生移动
↓
滚珠开关状态变化
↓
单片机唤醒并播放灯效
↓
延时数秒
↓
关闭LED并重新休眠
这种方案不需要单独的按键,也不需要持续轮询传感器,非常适合纽扣电池供电的小装置。
三、灯效逻辑
RGB灯珠由三个输出脚控制。每次触发完成后,程序保存当前灯效编号,下次唤醒时自动切换到下一种效果。
为了让灯光看起来不完全相同,我保留了三种节奏较缓和的显示方式。每次亮灯持续约5至10秒,结束后关闭所有颜色并重新进入休眠。
在这种小装置中,灯效不需要复杂。相比持续高亮,短暂亮起、自动熄灭,更符合"一碰就回应一下"的交互感觉,也能降低纽扣电池的消耗。
四、真正的难点是一颗灯怎样照亮四个字
最初的外壳思路很简单:
- 用棕色材料打印盒体;
- 在正面镂空"白搞电子"四个字;
- 用乳白色半透明材料封住文字;
- 将LED放在文字背后。
实际打印后发现,一颗LED会产生非常明显的中心亮点。靠近灯珠的位置很亮,远离灯珠的位置则比较暗,四个字很难同时看清。
为此,我对结构做了几项调整:
1. 增加白色反光结构
在灯珠周围加入白色反光面,让部分光线先向四周反射,减少光线只集中在正前方的问题。
2. 增加乳白色扩散层
文字背后不直接面对灯珠,而是增加一层乳白色扩散结构,用来柔化中心亮点。
3. 减薄灯罩帽
灯罩太厚会明显损失亮度,因此后续将灯罩边框和透光部分适当减薄。
4. 将文字面板与外壳分离
最初文字顶面与盒体是一体的,切片时需要大量支撑,拆除支撑还容易损伤文字。后来把文字面板设计成独立零件,既方便打印,也方便以后更换显示内容。
五、电路板如何固定
早期尝试使用卡扣,但实际打印后卡扣没有可靠地压住板子,而且安装反光罩时容易受到阻挡。
最后改成了更直接的方式:
- 通过定位槽限制电路板前后左右移动;
- 根据灯珠在PCB上的实际偏移调整板子位置;
- 从后方安装一个独立盖板,将电路板压在定位槽内;
- 单独增加较薄的灯罩帽,覆盖灯珠并承担扩散作用。
这种结构虽然没有复杂的机械卡扣,但拆装更容易,也更适合小尺寸打印件。

六、最终效果与复盘
现在,把盒子拿起来再轻轻放下,正面的"白搞电子"就会亮起。几秒后灯光自动关闭,再次拿起时会切换另一种灯效。
它在白天强光下不会特别醒目,也不适合作为照明灯。但放在桌面、书架或稍暗的环境中,短暂亮起的效果刚刚好。
这次项目让我感受最深的一点是:
让电路实现功能,往往只是第一步。真正把它做成一个完整物件,还要继续处理结构、装配、打印方向、固定方式和光路。
对于类似的小型发光装置,可以优先从以下几方面检查:
- 灯珠是否正对显示区域;
- 是否存在明显的中心亮点;
- 反光层和扩散层是否有效;
- 电路板是否方便拆装;
- 透明件是否过厚;
- 支撑结构会不会损坏外观面。
项目本身并不大,但从电路板到成品的这段过程,包含了不少值得复用的经验。
我是阿白,感谢你的观看。