发作品签到
专业版

五面爆竹灯

工程标签

1.1k
0
0
1

简介

13个7219,68个2812

简介:13个7219,68个2812
”暖冬创趣迎新年“
复刻成本:150

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-12-13 10:36:07更新时间:2025-01-20 09:46:57

描述

省流:外面全是灯

MCU核心板包括ATMEGA88PA、蜂鸣器、按键、TYPEC供电接口和连接排针,为彩色丝印板,顶层主题:春节,底层主题:个性化、工艺测试。

端面板包括1个1088AS点阵屏、8个WS2812,同时起到了对四个侧面PCB电气连接、加固机械结构的作用。

侧面主显示板包括3个1088AS点阵屏、15个WS2812,构成整体的结构。

三个PCB均为1.6MM。

1088AS点阵屏均由MAX7219驱动,可以选择上海国芯/信路达/深圳汉芯的芯片。

PCB文件说明:

板子内的文件是原始设计文件,切缝拼为端面板和侧面板的拼接,喷锡工艺可过机审。侧面板原始设计文件更新了在阴角处的打孔,预期降低装配难度,未验证。

PCB焊接前处理:

1、切缝拼分板:先对连接位外侧约100MIL剪出压痕,在两面内侧分别划出约0.5MM切口,然后掰断,再贴边剪掉大部分连接位,打磨至不凸出。

2、阴角配合削边:榫卯结构需要配合的四个阴角需要削,4个PCB并排,凭感觉削至平直、配合时插入不卡。(如果选用有钻孔的新设计,可能不需要,未验证)

焊接流程:

1、焊接四个主显示板的、一个核心板、一个端面板的元件(点阵屏最后焊接,排母、点阵屏需要注意精确定位,点阵屏有类似过盈配合现象为正常,对准丝印即可,注意剪引脚)

2、拼接四个主显示板并插上端面板,焊接开口的八个固定点(注意不要短路,靠内侧的是VCC)

3、取下端面板,焊接另外八个固定点(注意不要短路,靠内侧的是VCC)

4、再次插上端面板,焊接4条*8个=32个连接点,注意点阵屏不要挡住主显示板边缘

5、核心板下载程序,插入测试

硬件设计思路:春节->喜庆->点灯->多点一些灯->尽可能点最多的灯->正好有大量7219资源->做成传统爆竹形状,五面显示->有缝不美观->否决了削屏幕的方案->加2812/2815->否决了外贴灯条的方案->板子上贴2812->继续细调PCB设计,榫卯结构边加宽贴2812->底面空间容纳焊接手指,只能削减2812数量

PCB实物图(核心板:彩色丝印(旧版长度计算错,以新版为准),切缝拼:红色,喷锡):

陈列图

切缝拼分板示意图

旧、新两版彩色丝印板

裸板装配示意图

pcb装配示意图(后面)

pcb装配示意图(端面)

核心板装配图

核心板正面

核心板背面

成品图

裸PCBA成品图

成品图,带部分外壳,流星图样,下侧面

成品图,带部分外壳,爆竹图样,上侧面

成品图,带部分外壳,烟花图样,顶面

外壳设计为半成品。之后可能继续更新。如果直接打印,注意需要修剪才能安装上。

复刻成本为粗略估计,有向上取整,主要成本在MAX7219、1088AS、WS2812。ISP烧录器价格未计入。

硬件在2天内完成设计,但软件程序优化过程很复杂(因为使用的是MEGA88PA),最终终于装下了(另一方面,如果换成328P,可能可以增加6倍以上的动画和音乐容量)

程序代码简介:

C++程序为单片机程序,使用ATMEL STUDIO编译后用编程器烧录。

PYTHON程序为生成动画和音乐数据代码用的,包含了生成部分代码和音乐代码变换的代码。

HEX文件可直接用于烧录,注意熔丝位设置:除了SPIEN和EESAVE为0(programed)以外,全部为1(unprogramed)。烧录流程:擦除、编程FLASH、校验FLASH,熔丝建议提前写入。

动画相关数据简介:

titlelist存储MAX7219显示数据(线性排列,小数组为每一行的)

colorlist存储WS2812显示数据(线性排列,小数组为RGB排列的值)

indexlist存储每一帧的信息(对MAX7219和WS2812的内容序号、持续时间/10ms、使用的序号后处理编号)

seqlist存储每个动画序列的信息(起始帧号、循环起始帧号、循环结束帧号、音乐编号)

hclcslist存储序号后处理用的参数(10个加数、2个模数、4组拆分处理参数、2组显示限制参数)

MUSICPROGRAM存储音乐数据

目前已制作3组动画(第4个clip是全串一遍)、3首歌,对应关系如下:

流星样式→春节序曲(普及版)

爆竹样式→拜新年

烟花样式→恭喜发财

程序功能简介:

按键功能:显示动画序列的编号和音乐是否播放的数据存在EEPROM中,并可通过按键调节,形成了“非易失按键调节”效果。其中动画序列编号可以双向、循环调节。EEPROM无需烧录,程序会自动对新芯片初始化。

动画显示原理:显示第X帧时,内存中有X+1帧编号、序列编号、X帧的计时,帧计时归零时装载X+1帧的计时和X+2帧编号,同时在主函数执行发送X+1帧显示数据、装载X+2帧数据。帧计时以10ms为单位,由TIM1计时。装载数据过程:读取两个序号,进行加、模处理,再进行拆分处理得到10个显示偏移量,同时计算并装载显示限制,然后按照显示偏移量和显示限制读出显示数据并改变顺序存放在缓冲区。发送数据过程:直接按顺序发送缓冲区所有数据,WS2812数据在发送一个字节的过程中会禁止中断。

音乐播放原理:发声频率由TIM2计时,同时有计数变量控制音符时长和发声时长(防止同音高粘连),乐谱数据中除音符外,还包括音乐流程控制的数据。本程序中音乐播放程序为特殊改造,原版会在之后开源。按照原版规则(不含部分流程控制种类)编写的乐谱可以用PYTHON程序变换为本项目可用的代码。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
5MBZD-PartBody.stl
3
2
代写C++代码.py
2
3
CLNYLED.cpp
3
4
CLNYLED.hex
3
5
CLNYLED1.mp4
7
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航