1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
专业版 自行车RGB呼吸灯
简介:支持姿态感应的定制自行车RGB呼吸灯
开源协议: GPL 3.0
(未经作者授权,禁止转载)
此硬件实现的功能是根据自行车行驶状态展现不同的灯效,照亮自行车附近的地面,实现炫酷,美观,警示的作用。现在的效果就是正常行驶、加速、滑行时是蓝色的呼吸灯效果,刹车时灯变红,刹车结束后回复蓝色呼吸灯效果,在自行车静止时,展示RGB滚动灯效两秒后熄灭进入休眠模式,在两分钟内重新运动将重新进入工作模式,如果自行车静止超过两分钟,则自动关机,需要手动按压重启。
总体思路:通过六轴陀螺仪识别当前自行车运动的加速度,划分出静止运动两个状态,再根据加速度的大小和正负(主要是Y轴)划分出刹车和正常行驶状态,确定不同的状态后,单片机执行相关的代码控制两个RGB灯进行灯效变幻。
硬件选型:
主控MCU:N32G430C8L7(和STM32差不多)
六轴陀螺仪:MPU6050(模块拆卸芯片)
RGB灯:WS2812B
3.3V稳压芯片:ME6211C33M5G-N
5V转4.2V充电芯片:TC4056A
电池:600mA铝包电池
MPU6050与N32采用IIC通讯
N32与WS2812B采用DMA通讯
开机:ME6211稳压芯片带有EN引脚,通过按钮触发高电平,3.3V电压出现后N32上电工作,通过GPIO产生高电平维持ME6211工作,实现电源自持。
关机:静止两分钟后将EN脚转为低电平,芯片失电关机。或按钮触发关机。
功耗:为了尽可能的低功耗,经测试,此硬件可在低至16M系统时钟频率(N32最高可达128MHZ频率)下正常工作,MPU6050也进行了相应的低功耗优化,以50Hz的频率进行六轴取样。WS2812呼吸灯的设计也使功耗进一步下降。实测六个月内只需充电一次(轻度使用,每两天骑半小时左右,其中包含两个月没骑)
防水:由于自行车本身的性质,特别是此硬件的摆放位置,要求硬件在户外工作的稳定性,防水防尘防潮,电路板正反面用三防胶密封。
板型:由于每辆自行车的底部结构不同,因此PCB板需要高度定制化,根据实际情况设计PCB板形状。
结构:此装置采用双层结构,三个PCB板隔离。最下面的板是主板,下方的LED灯对应自行车的孔洞。下层的间隙来源于微动开关,加上中间板后可实现按压装置上电,上层放电池,通过PCB上的孔引到下层。最上方的板覆盖防水材料(简单的比如胶带)用于防水防尘,上层与下层的间隙需要密封,保证不进水,这里采用热熔胶。热熔胶有弹性,也方便按压开关。TypeC充电口需要用胶塞堵好。
调试:自行车底部空间狭小,不方便DAP调试,为了在自行车上调试设备,将SWD、SCK引脚连接到TypeC,通过设计一个转换PCB,将其引出到好调试的位置。(连接器)
这个项目是去年的九月份就开始了,一开始是在调MPU6050的IIC协议,调DMA控制WS2812B,中间遇到了很多的问题,比如陀螺仪的数据不对(后来发现是IIC初始化的问题),比如呼吸灯的呼吸效果(里面涉及HSV空间到RGB空间的转换),陀螺仪模块的噪声如何解决,防水防尘如何设计,又如何保证便携性(现在这个装置是可以拆下来的),如何实现极低功耗,焊接组装什么的都是小问题了。后来考研时间紧迫了,就暂时搁置了。等到考完研回家,又重新捡起了这个项目,把上述问题都解决了,所以做一个工程要想的东西真的有很多。现在这个装置在自行车上露天八个月了(小雨大雨都经历过),一共就充过两三次电吧,说明我的设计还是比较可以的。
这个项目严格意义上算是我的第一个自己设计的项目(只不过时间线拉的比较长),代码也是一点一点Debug出来的,艰辛啊。工程编译后还有29个Warning...,不过能用就行。
自行车跟着我也有四年了,毕业也不舍得卖,邮寄到新学校接着骑了,一部分原因就是这个硬件吧,倾注了很多,赋予了这辆车的灵魂,呼吸灯的效果仿佛这辆车真的有了生命。
这个项目各方面要求实现的话我觉得还是有难度的,代码结构可能也不是很好,所以算是做一个分享吧,有困惑的地方也可以私聊我,一起进步。
加载中...
是否需要添加此工程到专辑?