一款多功能露营专用氛围灯

2023-11-29 02:28

本文主要是介绍一款多功能露营专用氛围灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、主要功能

  • 使用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电容”,大家可以根据耐压需求换成别的电容型号

GCqtmBZLJhjRUtvBmZ5q9ptY4P29Z6epwdVKNWjm.png

在主控板的背面(主控板与转接板的夹层中),需要焊接一颗固态电容

3、“灯”的控制

灯丝及WS2812的供电部分如下(包括灯丝的调光控制电路)

升压(BAT转5V)输出部分使用mos进行控制,mos管可以基于5328的基本控制逻辑进行控制,也可以使用单片机进行iic通信,操作寄存器进行控制

需要注意的是,5328具有快充输入输出功能,VMID总线电压最高为12V,因此在单片机的程序中,会通过寄存器读取,判断5328是否处于快充充电宝模式,此时会强制关闭MOS防止高压输入“灯”的部分,防止损坏PWM控制器与2812灯珠,但考虑到程序可能存在bug或程序跑飞等特殊情况,还增加了LP5300B6F过压保护芯片,保护后级电路安全(不得不吐槽一些LP5300B6F的引脚设计是真的很离谱,为什么6个引脚给了4个GND,输入输出只是给给了1个,这里的GND根本不走大电流啊,流通路径全在输入输出,只能怀疑是不是为了兼容别的什么芯片进行这样的设计了)

注:上图的“底部灯圈”这一路输出目前没有使用,只是我一开始挖的坑(本来还想在底部做个环形灯圈手电筒功能)

灯丝也可以直接使用主板进行测试,不需要其他PCB,建议在组装前进行测试防止反工

灯丝的实际亮灯效果测试:

InKFXE91bNzRJ9u2gZH4lRI3D2ss9p6bfP454dRx.jpeg

4、单片机供电

对于单片机与蓝牙部分供电是通过RT6150芯片对电池电压自动升降压,从而实现3.3V的稳压输出

注:该芯片现在涨价了(涨的比5328主控都贵了,有点离谱),大家可以换成别的升降压芯片

RT6150芯片的PS引脚是用于控制PSM工作模式的,具体效果请查看数据手册

UT54R0ErKrGu8EPsLKJOdePkkQEpIgPydi55cvG7.png

焊接好主板和主桶下板后,建议采用长螺柱进行测试(这样可以在保证电气连接的情况下,也能使用万用表、示波器表笔对关键节点进行测试,不然全部装配好以后就没办法测试主控板背面的电气节点了)

可以先使用USB表等设备测试充电功能是否正常,再测试别的功能

底部盖板制作

嵌入式系统软件

嵌入式软件说明将会根据软件任务编写,以便对程序进行理解。

软件代码在项目附件压缩包中!

1、初始化任务1.1. 改变蓝牙名称

可以根据自己的需求修改蓝牙名称,蓝牙模块默认名称BT-11,程序初始化默认名称YingHui1.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的转换详解: 三分钟带你快速学习RGB、HSV和HSL颜色空间 - 知乎

注:一开始没有找到这个方法,使用了用函数计算数组的方法做出颜色变换,但是由于过于占用空间,就把最早使用的G0换成了F411,但后续找到了这个转HSV的好方法,大大降低了程序复杂度,不过由于PCB已经定型,就没有改设计

7、WS2812任务通过上位机APP选择WS2812可编程逻辑灯珠模式,程序中中暂时实现的模式有默认模式(默认选择默认模式(这听起来好像是一句废话)),流光溢彩,颜色渐变,和混合模式(混合了流光溢彩和颜色渐变两个模式)

8、电源控制芯片IP5328P输出控制任务监控系统状态:主要检测是否为5V放电,开启或关闭寄存器vout通路,避免高压烧毁灯光部分

这一部分说起来比较复杂,会涉及5328的快充与其他模式,程序部分为了减轻工作量,就采用了直接读取5328自身模式寄存器的方案,其实这种情况下可能会存在误判,但在灯光部分的硬件部分设计了过压保护防止意外,详解见硬件部分的说明

注:5328通信部分参考了以下链接内的程序,特此向原作者表示感谢!另,原作者部分程序可能存在bug(也有可能是我没有理解原作者的编程思路),已经进行修改,但不保证是否会引入新的bug

IP5328P寄存器数据读写 IP5328P程序: 一个完整的keil5工程,包含对IP5328P芯片的寄存器数据读写代码。工程基于stm32f103c8t6,使用了UCOSII,以及一些其他附属代码段,包括:开关机按键、显示屏等。

请教IP5318芯片在电量检测方面,是否区分I2C版与非I2C版。 (amobbs.com 阿莫电子论坛 - 东莞阿莫电子网站)

快充芯片IP5328P的寄存器数据读写[用于DIY数显快充充电宝]_ip5328p 寄存器-CSDN博客

【精选】快充芯片IP5328P的寄存器数据读写[用于DIY数显快充充电宝]_ip5328p 寄存器-程序员宅基地 - 程序员宅基地

寄存器部分请参考5328的datasheet和寄存器手册

原理图

PCB

这篇关于一款多功能露营专用氛围灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431104

相关文章

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

推荐一款强大的OCR软件,请低调使用!

今天给大家分享一款开源的OCR识别软件,可以提升大家的办公效率——Umi-OCR,支持window​和Linux系统。 Umi-OCR支持提取一张图片或者多张图片的信息,只需通过右边的功能页选择相应的功能。 点击左边的“截图OCR”进入页面 点击“截图”按钮选取截图区域,直接在右边的记录中​提取出截图中的信息。 批量OCR功能也一样,点击左边菜单的“批量OCR”菜单

828华为云征文|基于Flexus云服务器X实例的应用场景-拥有一款自己的ssl监控工具

先看这里 写在前面效果图华为云Flexus云服务器X实例介绍特点可选配置购买 连接服务器Uptime-kuma简介开源信息部署准备工作:docker部署命令访问uptime-kuma 基本配置总结 写在前面 作为一个个人开发者,相信你手里肯定也有不少自己的服务,有的服务呢也是https的。 以前ssl各厂都是可以免费申请一年的,我们更换的频率还好,比较小;但是最近,各厂都

AI文献综述神器,有这一款就够了!

我是娜姐 @迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 当前的AI辅助文献综述的工具有很多,如果说功能最强大的,娜姐无疑要推SciSpace了。 SciSpace利用强大的AI算法,理解并建立研究论文之间的联系,可以大大提升文献综述的质量和效率。并且其功能还在不断更新和完善。        1 强大的语义搜索功能 传统的关键词搜索可能会遗漏相关文献,Sc

不同饭局,如何说开场白才能打开氛围?教你一个万能公式

在人情社会中,饭局不仅是吃饱饭的场合,更是人际交往、情感交流的重要平台。无论是家庭聚会、商务宴请、朋友相聚还是同事联谊,一个恰当的开场白都能迅速打破沉默,营造温馨和谐的氛围。 针对现实生活中最常见的四种饭局,酱酒亮哥教你一个万能开场白公式,这个公式分为四步,当然,不是一步不落的照搬,需要灵活应用,挑其中的两步、三步就行了,只要打开氛围,我们的目的也就达到了。接下来我们一起学习一下,希望你在不同的

热泵专用压缩机与普通压缩机的区别

普通压缩机和低温压缩机在空气源热泵机组上应用对比: 1.普通压缩机 1.低温工况运行时,压缩机高压缩比、产生过热、润滑油变质、涡旋盘磨损等;高温工况运行时,电机过载、轴承磨损、电机绕组超过极限。 2.高水温运行时,高冷凝温度,电机过载、过热;润滑油变质,涡旋盘磨损、轴承磨损,电机绕组超过极限。 3.在低温工况时,能力不够和能效比低,经济性差,在-10度以下能力衰减可达40%以上,COP<1.5W/

一款云端测试平台是如何炼成的?

有一款应用,它具备了让人眼前一亮的创意和一个非常专业的初创团队,所有人都认为成功离它只有一步之遥。但在上线一两天内竟由于用户流量太大,导致应用频繁宕机,而不得不暂停服务。 当技术团队通宵达旦的查找问题时,却发现是当初设计的架构导致了今天的严重故障。在无奈的回炉再造后,新推出的版本不仅后台架构变了,UI 也变了,造成了非常大的人力和时间的浪费。甚至可能在回炉期间错过转瞬即逝的市场先机。 以上这个

思路与实现:一个人如何独立完成一款双端App

作为一名独立开发者,经常需要掌握各方面的技术与方法,无论是构思还是设计还是开发,都需要自己一个人去完成。 这时候,利用一些省力高效的诀窍便可以事半功倍,下面小编就来和大家分享一下小编的作品《跑车之家》的开发过程。 【灵感篇】 小编是名汽车迷,尤其是性能车、跑车迷,突然就想起做一款炫酷的跑车展览App,让用户以一种欣赏的方式去了解跑车。 首先想到的展览方式就是比较流行的卡片式滑动

胖哥的经验 | 一款普适的实时数仓架构设计

什么?胖哥的经验,没错这是来自我们大数据成神之路小伙伴的经验。有什么问题,欢迎大家加群讨论,公众号回复【加群】。 一、实时数仓的架构背景 首先我们来聊一聊实时数仓是怎么诞生的,在离线数仓的时候数据是T+1的也就是隔一天才能看到昨天的数据,这种形式持续了很久的时间,但是有些场景真的只有实时的数据才有用武之地。例如推荐、风控、考核等。那么这个时候实时指标也就应运而生,在最开始的时候,采用flink\

moonlight串流配置太复杂?推荐一款无需配置的宝藏串流软件GameViewer远程

moonlight支持将PC游戏实时串流到安卓、iOS、Apple TV、Chromebook、PS Vita甚至Raspberry Pi等设备上,让用户无需携带笨重的游戏设备,即可随时随地进行游戏。 但是moonlight的门槛较高,很多串流新手不懂得如何配置,同时如果没有IPV6内网穿透则无法使用,这也是很多玩家想尝试moonlight但是被复杂的设置劝退了的原因。如果你因为配置门