萤辉——多功能露营氛围灯
简介
多功能露营灯,是氛围灯、也是照明灯,采用IP5328P+STM32+WS2812+BLE结构,为你带来夜萤暖辉
简介:多功能露营灯,是氛围灯、也是照明灯,采用IP5328P+STM32+WS2812+BLE结构,为你带来夜萤暖辉开源协议
:CC BY-NC-SA 3.0
(未经作者授权,禁止转载)描述
项目说明
多功能露营灯,是氛围灯、也是照明灯,采用IP5328P+STM32+WS2812+BLE结构,为你带来夜萤暖辉。
夜萤暖辉,我更愿把他简称“萤辉”,希望在每个夜晚都能用自己的萤光为您带来一丝温暖。
项目复刻制作说明
本项目涉及的PCB、3D零件、组装配件较多,因此本项目的组装步骤较为复杂,开源项目中的说明可能存在遗漏,后期如果有需要的话会出说明视频进行答疑解惑(发出鸽子的声音),若存在问题欢迎在项目评论或加入QQ交流群,请尽量不要使用站内私信(很容易看不见)
QQ交流群:1016193632
欢迎关注我的B站账号:@何电工
项目视频及后续视频均会在我的B站账号发布,感谢您的关注!
本项目文档较长,若你只是来寻找设计参考,可以只看对应部分和数据手册(放在了附件)
若你计划复刻本项目,务必耐心看完,对我的设计或程序有任何疑问请先看项目说明和数据手册(多看数据手册没坏处)
开源协议
CC BY-NC-SA 3.0
(知识共享-署名-非商业性使用-相同方式共享 3.0)
主要功能
- 使用COB灯丝+3D打印构建精妙的螺旋线条露营灯
- 选用IP5328P作为电源主控,支持双向PD快充,支持PPS档位输出
- 电池仓结构设计兼容26650(不可更换)或21700/18650(可更换)电池
- 使用WS2812灯组成顶部灯圈,可以实现照明灯+氛围灯的双重功能
- 通过STM32与5328进行iic通信,获取充放电数据,并通过BLE透传
- 通过BLE与手机APP连接,实现对“萤辉”的掌上控制(目前存在一定bug)
点亮效果↑
静物效果↑
注:照片中出现的露营灯以外的其他物品均为影视道具
项目属性
本项目为首次公开,为本人原创项目。
项目未曾在别的比赛中获奖。
硬件说明
请注意,本项目一共有4片PCB,其中两片4层板,两片2层板(均在10*10以内可以免费打样)
硬件说明将会根据PCB编写,以便对电路设计进行理解,建议结合电路图进行阅读。
同时会在本章节内会同步给出复刻注意事项,供参考
一、主板
主板是负责承载ip5328充电宝电路和stm32主控电路的基板,使用跳线和铜柱对外连接(下图中露出的PCB便是主板PCB)
1、单片机主控及外围电路
主控单片机采用STM32F411单片机,确保有足够的可扩展性
该部分电路主要包括作为主控的F411单片机、对外的调试接口(使用1.25mm间距插口,包括SWD调试接口+串口方便进行调试工作,同时引出了复位引脚方便远程操作)、外置FlashW25Q128芯片(但后来程序没有用上,可以不焊,如果以后升级程序可以用)、BT-11蓝牙BLE模组、蜂鸣器等电路
对于单片机与IP5328P连接的端口,均进行了串阻保护,而对于对外的接口,则额外增加了ESD防护器件(当然你也可以选择不焊接
单片机采用SWD下载,不使用DFU,因此BOOT0和BOOT1使用10K电阻接地,这样也可以在需要使用的时候进行短接上拉BOOT引脚
晶振部分可以不用焊接,用不上
注:最早是用G0的,但是写WS2812的程序最早采用的是刷数组的方案,需要较大的内存容量,因此后来换成了F411来实现,不过在后来,采用了RGB转HSV的方案,HSV的方案不仅显示效果好而且占用空间小,但由于PCB此时已经基本定型,就没有换回G0,这样的缺点就是项目成本会相对较高,其他并没有什么问题
2、IP5328充放电管理
本项目采用IP5328P作为充放电管理部分的主控
IP5328P同时承担了充电宝以及升压电源的功能,充电宝功能用于对外输出以及给内置电池充电,而升压输出则通过与单片机的程序控制联动,为萤辉的灯丝以及WS2812进行大功率的供电,同时我也预留了VOUT2(目前没有使用),可以让大家根据自己的需求,扩展更多的功能电路
充放电管理芯片IP5328P的电路设计主要参考了官方的数据手册,我这边就不再赘述了
我这边22uF的电容选型为了耐压,选择了相对较贵的TDK家“HiFi电容”,大家可以根据耐压需求换成别的电容型号
在主控板的背面(主控板与转接板的夹层中),需要焊接一颗固态电容
建议的电容型号为E2221M025A120RL(立创商城元器件编号为C2898868),在电路图中已经进行说明
这颗电容直径5mm,很适合躺平后安置在夹层中(PCB上画有焊接示意图,实际焊接后效果如下图所示)
注:如果你需要更换别的型号的电容,需要注意电容直径不得超过5.5mm,否则夹层中装不下
为了照顾环线的主板,四颗电量指示灯也是采用了环形的布局,从而更加美观
同时也可以点亮装饰环(如果使用了夜光或透光材质),在复刻时,可以根据装饰环的颜色,选择合适的LED来实现不同的色彩效果,也可以根据实际透光照明情况,配置不同的限流电阻
电源输入接口采用了一颗立式的Type-C接口,14P版本,10或10.5mm高度均可
当然如果你要别的高度的接口也可以,需要自行修改装饰环/夜光环、以及螺柱的高度
Type-C的外壳焊盘较难焊接,建议使用热风枪加热的同时进行焊接(热风枪建议温度280-300℃,不要长时间超过320℃,否则容易把PCB给考糊了,别问我怎么知道的),GND的焊盘在新版本的PCB中我进行了扩大,有助于进行焊接
焊接后需要仔细检查,从而防止生短路(我就发生过一次,因为很容易连锡
测试充放电仅需要焊接IP5328P及外围相关元器件,与单片机无关,如下图所示
这时候就可以测试“充放电管理最小系统了”,方便有问题及时修理
实测最大充电功率接近20W
最高会到23W,比较少,大部分情况下会维持在14W左右
实测可以支持的充电协议如下
具体协议请查看芯片的数据手册,实测结果供参考
3、“灯”的控制
灯丝及WS2812的供电部分如下(包括灯丝的调光控制电路)
升压(BAT转5V)输出部分使用mos进行控制,mos管可以基于5328的基本控制逻辑进行控制,也可以使用单片机进行iic通信,操作寄存器进行控制
需要注意的是,5328具有快充输入输出功能,VMID总线电压最高为12V,因此在单片机的程序中,会通过寄存器读取,判断5328是否处于快充充电宝模式,此时会强制关闭MOS防止高压输入“灯”的部分,防止损坏PWM控制器与2812灯珠,但考虑到程序可能存在bug或程序跑飞等特殊情况,还增加了LP5300B6F过压保护芯片,保护后级电路安全(不得不吐槽一些LP5300B6F的引脚设计是真的很离谱,为什么6个引脚给了4个GND,输入输出只是给给了1个,这里的GND根本不走大电流啊,流通路径全在输入输出,只能怀疑是不是为了兼容别的什么芯片进行这样的设计了)
注:上图的“底部灯圈”这一路输出目前没有使用,只是我一开始挖的坑(本来还想在底部做个环形灯圈手电筒功能)
灯丝也可以直接使用主板进行测试,不需要其他PCB,建议在组装前进行测试防止反工
灯丝的实际亮灯效果测试:
4、单片机供电
对于单片机与蓝牙部分供电是通过RT6150芯片对电池电压自动升降压,从而实现3.3V的稳压输出
注:该芯片现在涨价了(涨的比5328主控都贵了,有点离谱),大家可以换成别的升降压芯片
RT6150芯片的PS引脚是用于控制PSM工作模式的,具体效果请查看数据手册
焊接好主板和主桶下板后,建议采用长螺柱进行测试(这样可以在保证电气连接的情况下,也能使用万用表、示波器表笔对关键节点进行测试,不然全部装配好以后就没办法测试主控板背面的电气节点了)
可以先使用USB表等设备测试充电功能是否正常,再测试别的功能
二、主桶下板(连接板)
电池保护板的主要功能是用于电池连接,同时防反接与防止过放
主桶下板的表面设计了两个圆弧焊盘,用于焊接电池正极的连接弹簧
焊接时建议多加点助焊剂,并使用马蹄头等大热熔烙铁头进行焊接,从而确保弹簧稳定连接。
设计了非常简单的反接指示功能,接反以后电流通过二极管使得蜂鸣器直接报警,简洁明了
其他所有焊盘及螺丝孔位均写了标注,方便进行连线焊接
三、上灯板
上灯板,顾名思义,是装在上层的灯板,主要承担了以下三个功能:
1、电池负极:
通过环形触点与电池仓盖进行连接,从而使电池导通
为了保证接触良好,这一圈环形触点也建议堆锡处理
划重点:“堆”锡
2、上灯丝连接
设置有灯丝负极的焊接焊盘,通过开孔插入灯丝,随后进行焊接(将上灯丝的负极压平后焊接在“上LED-”对应的椭圆形焊盘上)。需要注意的是,不要焊接到直插焊盘上面去了,那个是焊接和底板的连接线的(可以使用硅胶线或是长铜丝)
组装方式如下图所示:
3、RGB彩灯环形灯板
一共设计了64个1010封装的WS2812灯珠
众所周知,64是个整数,这样可以方便编程(
照片拍出来的效果不太好,WS2812的效果演示视频请看附件
感谢嘉立创SMT帮我焊接灯板(下图为2020版本灯板,但由于发热较高,目前换成了1010的灯珠)
补充一张WS2812-1010的实拍照片,真漂亮
(如果要自己焊接的话建议使用恒温加热台,不要使用热风枪,热风枪容易把灯珠吹变色了,很不好看)
灯板最高亮度测试
可以看到满功率(三色都开到最高亮度,显示效果为白色)情况下,功率为10W+
因此不建议长期满功率运行,容易过热
四、负极弹簧连接板
这个好像没什么好解释的,焊接好弹簧(焊接注意事项和转接板的弹簧一样),然后用胶水粘在顶盖中即可
为了保证接触良好,环形触点需要堆锡处理
五、底部盖板
采用立创面板打印进行制作,板厚为1.0,不需要背胶
以下底板中使用的图片(除了正中间的这张三圈半LOGO)均来源自网络,仅作为外观装饰使用,不涉及售卖及盈利,如有侵权,请联系我进行删除,谢谢
在我的设计下方,我还留了空白的板框,大家可以插入自己喜欢的图片,制作个性化的底部盖板
软件说明
一、软件部分总体说明(简介)
通过STM32与5328进行iic通信,获取充放电数据,并在打包后通过BLE透传
其中充电数据为外部电源对“萤辉”夜灯的充电情况
其中放电数据分为USB Type-C的放电情况,以及灯光部分的耗电情况
通过STM32对灯丝以及WS2812进行控制
通过BLE与手机APP连接,实现对“萤辉”的掌上控制
二、嵌入式系统软件
嵌入式软件说明将会根据软件任务编写,以便对程序进行理解。
软件代码在项目附件压缩包中!
1、初始化任务
1.1. 改变蓝牙名称
可以根据自己的需求修改蓝牙名称,蓝牙模块默认名称BT-11,程序初始化默认名称YingHui
1.2. 等待电源控制芯片被激活
若第一次装入电池,则需要充电激活
若已经完成充电激活后单片机重置,则单击电源按钮激活
1.3. 激活成功指示灯亮
单片机下方的指示灯,硬件标注为INIT
若安装夜光环或其他透光材质/颜色的装饰环,可以在调试结束后拆除这颗指示灯
1.4. 删除初始化任务
2、看门狗任务
从功能上说它可以让微控制器在程序发生意外(程序进入死循环或跑飞)的时候,能重新回复到系统刚上电状态,以保障系统出问题的时候可以重启一次。说的简单一点,看门狗就是能让程序出问题是能重新启动系统
3、按键任务
用于在离线模式下控制灯丝
按键任务会判断蓝牙是否连接,只有在蓝牙未连接情况下才能进入离线状态,(蓝牙)在线状态 下则不能通过按键控制防止冲突
4、LED任务(LED1和LED2相同)
注:如果有需要还可以开启LED3通道
具体逻辑如下:
4.1.根据灯丝模式获取亮度,模式分别为固定值和随机值
4.2.线性改变灯丝亮度(否则直接跳会很难看)
4.3.改变指定定时器通道占空比
5、蓝牙任务
若蓝牙未连接挂起LED任务即离线模式;若蓝牙已连接恢复LED任务即在线模式,并模拟打开充电宝
这一段听起来不好理解,但看了代码就明白了,下面为模拟打开充电宝核心代码:
HAL_GPIO_WritePin(KEY1_CONTROL_GPIO_Port, KEY1_CONTROL_Pin, GPIO_PIN_RESET);
osDelay(600);
HAL_GPIO_WritePin(KEY1_CONTROL_GPIO_Port, KEY1_CONTROL_Pin, GPIO_PIN_SET);
其实非常好理解,就是使用开漏输出模拟点击充电宝按键
6、WS2812控制
RGB转HSV:HSV用更加直观的数据描述我们需要的颜色,H代表色彩,S代表深浅,V代表明暗。此处转换易于编程。
由RGB到HSV的转换详解: https://zhuanlan.zhihu.com/p/67930839
注:一开始没有找到这个方法,使用了用函数计算数组的方法做出颜色变换,但是由于过于占用空间,就把最早使用的G0换成了F411,但后续找到了这个转HSV的好方法,大大降低了程序复杂度,不过由于PCB已经定型,就没有改设计
7、WS2812任务
通过上位机APP选择WS2812可编程逻辑灯珠模式,程序中中暂时实现的模式有默认模式(默认选择默认模式(这听起来好像是一句废话)),流光溢彩,颜色渐变,和混合模式(混合了流光溢彩和颜色渐变两个模式)
8、电源控制芯片IP5328P输出控制任务
监控系统状态:主要检测是否为5V放电,开启或关闭寄存器vout通路,避免高压烧毁灯光部分
这一部分说起来比较复杂,会涉及5328的快充与其他模式,程序部分为了减轻工作量,就采用了直接读取5328自身模式寄存器的方案,其实这种情况下可能会存在误判,但在灯光部分的硬件部分设计了过压保护防止意外,详解见硬件部分的说明
注:5328通信部分参考了以下链接内的程序,特此向原作者表示感谢!另,原作者部分程序可能存在bug(也有可能是我没有理解原作者的编程思路),已经进行修改,但不保证是否会引入新的bug
https://gitee.com/chaojiwangba/IP5328P
https://www.amobbs.com/thread-5736047-1-1.html
https://blog.csdn.net/qq_36300069/article/details/109401007
https://www.cxymm.net/article/qq_36300069/109401007
寄存器部分请参考5328的datasheet和寄存器手册(不得不抱怨一下,写寄存器手册的真的是谜语人,好多描述写的又“简单”又难以理解,准确的说是描述不够精准,所以不保证我的程序没有问题)项目涉及的参考文档会打包放在评论区
3D模型说明
项目所有需要打印的3D模型均在“萤辉3D模型.zip”压缩包内,建议使用光敏树脂就行打印,可以使用不同颜色进行拼色
注1:“萤辉电池仓.stl”为26650转21700套筒,如果你使用26650电池则不需要打印
注2:“开盖内六角扳手.stl”随便打就行,他只是一把开盖扳手
如果你需要对设计文件进行修改,本项目使用了Fusion360进行建模,原始文件已经导出上传,详见附件“萤辉建模.f3d”
以下为3D建模说明:
上方的图为整体说明,部门零件名字和stl文件名不完全匹配,理解一下是什么意思就好
也是供装配的时候参照结构
外壳(灯罩)采用亚克力管切割而成
亚克力切割尺寸:外径60壁厚2mm,长度83mm
上下两个转接固定环都有设计密封圈安装槽位,可以减少因为亚克力外筒切割公差带来的晃动
灯丝对接区用于对接上下两根灯丝的正极,对接完成后可以使用盖板/小徽章之类的东西盖住此处
其他3D模型问题可以参考建模说明部分,或打开原始设计文件(附件中)自行领悟
内部电池转接桶使用透明3D打印(会比较贵)或亚克力柱切割(会轻微晃动,有强迫症的话可以改一下主桶的模型)
亚力克切割尺寸:外径26内径22的亚克力管,80mm长切割一段
这样可以透过转接桶看见内壁的蜂窝结构
装饰环可以使用夜光材料进行打印,从而实现更好的效果
上图为我使用夜光PLA打印的效果(使用手电筒对夜光材料充能后进行拍摄)
开瓶器(打开电池仓使用,文件在附件的压缩包中
开瓶器建议使用自己(或群友)的FDM打印机,没有必要使用光固化进行打印,因为是实心的会很重(很贵)
迷你开瓶器(夜光版
迷你开瓶器设计有钥匙扣环,可以当作吊坠挂在钥匙串上
其他复刻注意事项
请按照下图中的数字顺序对主板进行焊接调试:
(上文中有说明,此处配图是为了方便整体查看)
早期我也使用外挂单片机进行测试,如果板载单片机有问题可以这样飞线调试
灯丝焊接中心点焊接方法如下:提前镀锡再进行焊接(建议使用硅胶线)
若采用三维猴打印3D零部件,并使用嘉立创SMT焊接上灯板(经济型SMT),整体成本约为200元(此处按单个计算,已考虑损耗,单个组装成本较高,多个可以均摊一下)
其他
对项目或在复刻过程中有任何疑问或建议欢迎加入我的交流群!
交流群:1016193632
欢迎关注我的B站账号:@何电工
致歉
本项目从2022年年底就开始构思,2023年初就报名了星火计划,并在3月完成大部分硬件设计验证工作、4月完成了软硬件联调,但是后来由于工作需要经常出差,加上我本人的种种原因,项目的拍摄及视频制作工作迟迟没有开展,这也导致了我一直没有开源本项目,奈何2023年已经接近尾声,为了避免我再接着咕下去,便决定把本项目先进行开源。
另一方面,本项目主要的设计在差不多一年前,在这一年中我学习到了许多新的硬件知识,也设计了“多功能测试笔”项目,在这过程中我学习到了许多新的硬件知识,现在我再回看“萤辉”,发现其中存在许多不足,但又没有什么时间进行完善。
因此本项目现阶段的开源并不完整,包括视频尚未完成、开源工程部分内容写的不够完善、软件也存在一定bug,在此向各位期待本项目的电子爱好者、以及嘉立创星火计划的组织与支持表达歉意。
关于本项目的视频,我相信实际呈现效果会远好于开源工程中的照片,因此我会尽快抽空完成并发布于B站。
致谢
特别鸣谢以下朋友、网友在相关领域为本项目做出的帮助及贡献:
软件:@零度
硬件:@港记跑得快、@脐橙
外观:@人类观察日记、@飞翔的小猪、@圣晶石杀手、@爱迪生
影像:@耿先生工作室、@Horizon__苟岂泡茶
再次感谢在项目设计调试过程中为我答疑解惑以及提供设计的朋友们!
评论