项目概述
这是一个为 川崎 (Kawasaki) ZR-7 摩托车设计的定制尾灯项目。该项目以 ATtiny85 微控制器为核心,涵盖了从电路原理图、PCB 设计到低级固件和动画逻辑的完整堆栈,重点关注鲁棒性、简洁性和视觉清晰度。
该项目的目标不仅是作为一个功能性的尾灯,而且是作为一车规级的嵌入式产品。



功能特性
控制逻辑:基于 ATtiny85 微控制器。
LED 布局:采用可寻址 RGB LED(WS2812B/NeoPixel)布局。
工作模式:
行车灯(Running light)
刹车灯(Brake light)
左/右转向灯(Left / right indicators)
固件设计:确定性、非阻塞式固件架构。
电气兼容性:专为摩托车 12V 电气系统设计(具备电压波动耐受性)。
硬件设计:紧凑且专用化的 PCB。
设计说明
硬件设计主要的难点:
车载信号噪声:采用了输入信号调理和下拉电阻策略,以避免引脚出现浮空或不稳定的逻辑状态。
电源完整性:电路设计能够耐受摩托车电气系统中典型的电压波动。
机械约束:PCB 形状、连接器位置以及 LED 布局均针对尾灯外壳进行了优化。




固件
固件采用 C 语言编写,直接面向 ATtiny85 硬件底层(Bare-metal)。程序未运行任何操作系统(RTOS),且不使用动态内存分配(No dynamic memory usage),以确保系统的极高稳定性和预测性。
架构亮点
基于状态的渲染 (State-based rendering):行车灯(Tail)、刹车灯(Brake)和转向灯(Indicator)的控制逻辑最终会被整合并解析到一个单一的渲染流水线中,确保不同灯光模式切换时的平滑与逻辑一致。
时间驱动型动画 (Time-driven animations):所有动画效果均采用**非阻塞(Non-blocking)**设计,并基于 Tick(时钟滴答) 运行。这意味着 CPU 在处理动画的同时,仍能实时响应刹车或转向信号的变化。
预留配置架构 (Config-ready architecture):固件结构设计超前,如果未来需要通过 EEPROM 添加持久化配置(如保存用户自定义的闪烁频率或亮度),现有的架构可以轻松扩展。
资源文件:固件源代码见顶部附件 zr7-taillight-attiny85.zip
固件编译与烧录
固件开发和烧录工作使用 Arduino IDE 配合外部 ISP 编程器完成。
环境要求
软件环境:
Arduino IDE
ATtiny 开发板内核(推荐使用 Spence Konde 的 ATTinyCore)
Adafruit_NeoPixel 库(用于驱动 LED)
ISP 编程器(任选其一):
USBtinyISP
USBasp
Arduino IDE 配置
通过开发板管理器(Boards Manager)安装 ATtiny 开发板扩展包。
通过库管理器(Library Manager)安装 Adafruit_NeoPixel 库。
将 ISP 编程器连接至 ATtiny85 的 ISP 接口 (Header)。
在 Arduino IDE 的“工具”菜单中进行如下配置:
开发板 (Board): ATtiny85
时钟频率 (Clock): 16.5 MHz (Internal)
欠压检测 (B.O.D Level): 4.3V(防止电压不稳定导致固件异常)
编程器 (Programmer): 根据你的设备选择 USBtinyISP 或 USBasp
烧录固件 (Flashing)
请执行以下操作:Sketch → Upload Using Programmer
此操作将编译固件并将其直接烧录到 ATtiny85 芯片中。
注意:本项目不使用引导程序 (No bootloader is used),从而节省了 Flash 空间并加快了启动速度。
安全与免责声明
本项目仅供教育和实验目的使用。
作者不对本项目的道路合法性、安全合规性或对任何特定车型的适用性提供任何保证。
对车辆灯光系统的改装,可能会受到不同国家或地区法律法规的限制。
您有责任自行确保任何实施方案均符合当地法律、机车管理条例以及安全标准。
请自行承担风险。
License
开源协议:MIT License
