SunGlass-BOT:基于 Arduino 的智能变色墨镜自制指南
项目简介
一副能根据环境光线自动开合遮光片的智能墨镜。核心原理:LDR(光敏电阻)与 10kΩ 电阻组成分压电路,Arduino 读取模拟值(0-1023),强光下数值 <100 驱动微型舵机压下遮光片,弱光下数值 >500 舵机抬起遮光片。项目曾入选 HackSpace Magazine 第 9 期 TOP PROJECT。
硬件清单(成本 < $10)
- Arduino Pro Mini 5V 16MHz ×1
- 微型舵机(SG90 或 MG90S,金属齿轮更耐用)×1
- LDR 光敏电阻(直径 5mm)×1
- 10kΩ 电阻 ×1
- 废旧墨镜框架(拆下原镜片)×1
- 硬铁丝/回形针(制作遮光片连杆)×1
- 5V 1A 移动电源或 3.7V 锂电池+升压板 ×1
- FTDI 下载器(或 Arduino Uno 做 ISP)×1
电路原理图
5V
|
[10k]
|
A0 --+-- LDR -- GND
|
GND
舵机信号线接 D9,电源正负分别接 5V/GND(建议舵机单独供电,避免 Arduino 复位)。
固件代码
#include
Servo shade;
const uint8_t LDR_PIN = A0;
const uint8_t SERVO_PIN = 9;
const int THRESHOLD = 100; // 可根据实测调整,室内约 500-600
void setup() {
Serial.begin(9600);
shade.attach(SERVO_PIN);
shade.write(80); // 初始抬起
}
void loop() {
int val = analogRead(LDR_PIN);
Serial.println(val);
if (val < THRESHOLD) {
shade.write(155); // 压下遮光片
} else {
shade.write(80); // 抬起遮光片
}
delay(100);
}
机械结构制作
- 用力拆下墨镜原镜片,仅保留镜框。
- 将遮光片(可用深色亚克力板或原镜片)粘在一根硬铁丝上,做成「单臂翻转」结构。
- 舵机固定在镜腿侧面(热熔胶+扎带加固),舵机摇臂与铁丝连杆用回形针连接。
- 调整连杆长度,使舵机 80°→遮光片水平(抬起),155°→遮光片垂直遮眼(压下)。
- LDR 胶在镜框鼻梁上方,朝前不受遮挡。
- Pro Mini + 充电板塞入镜腿内部,USB 口预留充电。