基于 HK32 的 10 X 10 雪花灯 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 基于 HK32 的 10 X 10 雪花灯

简介:一个基于 HK32 的雪花灯,尺寸较大、灯珠较多,提供上位机软件。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2021-03-07 19:06:05
更新时间: 2022-09-02 07:39:25
描述
# Snowflake Lights *一款基于 HK32F030MJ4M6 的雪花灯* ## 概览 **本文档包含** - **硬件介绍** - **固件介绍** - **上位机介绍** ### 介绍 采用 HK32F030MJ4M6 作为主控的雪花灯 --- ### 注意事项 本品 TYPE-C 母口会与雪花发生干涉,焊接时可使其斜向上翘起,避免较粗TYPE-C数据线无法接入的情况出现。 我认为当前采用的 TYPE-C 母座性价比较高,且上翘焊接也是一个可以接受的解决方案,我也没有在立创商城里找到一个更符合要求的母座。当然,如果大家有什么更好的建议,欢迎在评论区里提出 **本项目所采用的 WS2812 与商城所售 WS2812 在信号时序上存在一定区别:** 商城所售 WS2812: ![商城售 WS2812 时序](//image.lceda.cn/pullimage/9KaZXGgJAdU0JWOEXvYgAaPV4cPgS9KRU6YKdg9s.jpeg "商城售 WS2812 时序") 可见此 WS2812 在接收到 24 位数据后会依次将其解释为 **绿色、红色、、蓝色 (GRB)**。 而此工程所用 WS2812 则会将 24 位数据一次解释为 **红色、绿色、蓝色 (RGB)**。 当然,市面上所售的 WS2812 可能存在其他的情况。若您的 WS2812,并不是按 RGB 的顺序解释数据,请修改固件代码以适配您的硬件。 firmware\src\main.c 文件中第 338 行定义函数 ``void SN_WS2812_Transmit(uint8_t* color)``,为数据发送函数,每次更新颜色信息便会调用此函数,传入参数 color 为颜色数组,以相邻的3个数据为一组,分别为 R、G、B 数值。 您可以修改此文件第 **344 ~ 346** 行代码,即本函数中的第 **6 ~ 8** 行代码,原代码为 ```C R = (uint8_t)(color[3 * pos] * LED_light); G = (uint8_t)(color[3 * pos + 1] * LED_light); B = (uint8_t)(color[3 * pos + 2] * LED_light); ``` 其中,RGB 与位数的对应关系如下表: | 位 | 代码 | | :-: | :-: | |1| ``(uint8_t)(color[3 * pos] * LED_light);`` | |2| ``(uint8_t)(color[3 * pos + 1] * LED_light);`` | |3| ``(uint8_t)(color[3 * pos + 2] * LED_light);`` | 即,如果您所采用的 WS2812 按照 GRB 解释数据,则应将代码修改为: ```C G = (uint8_t)(color[3 * pos] * LED_light); R = (uint8_t)(color[3 * pos + 1] * LED_light); B = (uint8_t)(color[3 * pos + 2] * LED_light); ``` 此处我直接修改了前面的变量名,当然您也可以修改后方的数值。 --- ### 制造步骤 1. 使用 snowflake-lights/hardware/Gerber.zip 进行打板 2. 购买器件并焊接,焊接时请注意 - **先完成所有 WS2812 灯珠的焊接**,后焊接去耦电容,以避免去耦电容阻碍灯珠焊接。 - **上翘 TYPE-C 母座**。 3. 测试、上电 --- ### 工程详情 *以下链接定向至 Gitee 项目地址,可实时查看代码更新情况* | 工程 | 地址 | | :---: | :-------------------------------------------------------------------------------------------------------------------: | | 项目地址 | [snowflake-lights](https://gitee.com/snitro/snowflake-lights/#snowflake-lights) | | 硬件 | [snowflake-lights/hardware](https://gitee.com/snitro/snowflake-lights/tree/master/hardware#snowflake-lights-hardware) | | 固件 | [snowflake-lights/firmware](https://gitee.com/snitro/snowflake-lights/tree/master/firmware#snowflake-lights-firmware) | | 软件 | [snowflake-lights/software](https://gitee.com/snitro/snowflake-lights/tree/master/software#snowflake-lights-software) | ## Snowflake Lights Hardware ### 介绍 以下内容包含对 **原理图、PCB、GERBER** 的介绍 --- ### MCU 管脚分布 ![管脚布局](//image.lceda.cn/pullimage/ShBYTLs3qIft9v1nlfnEJaV81yTsybkj210VmhKk.jpeg "HK32F030MJ4M6.jpg") ### MCU 管脚功能映射 | 引脚序号 | 功能 | | :------: | :---: | | 1 | PD4 | | 3 | PD7 | | 7 | PA0 | | 8 | PD1 | --- ### 主要物料清单 | 编号 | 器件 | 备注 | | :----------: | :-----------: | :---------------: | | LED1 ~ LED49 | WS2812E | WS2812E灯珠 | | U1 | HK32F030MJ4M6 | 主控 | | U2 | CH340N | USB 转 串口 | | U3 | SPX3819 | LDO | | USB | TYPE-C 16P | 16Pin TYPE-C 母座 | --- ### 模型渲染 | 顶部 | 底部 | | :---------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | | ![2D顶部](//image.lceda.cn/pullimage/f4LCkYWkZdwmWpzhBCTBUao6qFP8AWMQHvuqZZNA.jpeg "snowflake-lights-2D-top.jpg") | ![2D底部](//image.lceda.cn/pullimage/r1JGDCnaWGTiNXaklYGItSBsWOyS6uE2C4HENAr1.jpeg "snowflake-lights-2D-bottom.jpg") | | ![3D顶部](//image.lceda.cn/pullimage/OSOAIWmKXBi038nUTzNj9QZ70lnYqnimQLWdByD7.jpeg "snowflake-lights-3D-top.jpg") | ![3D底部](//image.lceda.cn/pullimage/NMvGRjwjUv7T9q6bwpAcZSxdCrLUE3A96OuNiGpA.jpeg "snowflake-lights-3D-bottom.jpg") | ## Snowflake Lights Firmware ### 介绍 以下内容包含 **EWARM 工程** 介绍 --- ### MCU 管脚功能映射 | 引脚序号 | 功能 | AF | | :------: | :---: | :-------------: | | 1 | PD4 | SPI1 - **MOSI** | | 3 | PD7 | USART1 - **RX** | | 7 | PA0 | **EXTI0** | | 8 | PD1 | USART1 - **TX** | --- ### 外设配置信息 - SPI | 设置项 | 内容 | 备注 | | :-------------------: | :---------------------: | :----------: | | SPI_Direction | SPI_Direction_1Line_Tx | 单线发送 | | SPI_Mode | SPI_Mode_Master | 主机模式 | | SPI_DataSize | SPI_DataSize_10b | 10 Bits | | SPI_CPOL | SPI_CPOL_Low | 低电平空闲 | | SPI_CPHA | SPI_CPHA_2Edge | 第二边沿采样 | | SPI_BaudRatePrescaler | SPI_BaudRatePrescaler_4 | 4 分频 | | SPI_FirstBit | SPI_FirstBit_MSB | 高位先发 | - USART | 设置项 | 内容 | 备注 | | :----------------------------: | :----------------------------: | :--------------: | | USART_BaudRate | 115200 | 波特率 | | USART_HardwareFlowControl_None | USART_HardwareFlowControl_None | 不使用硬件流控制 | | USART_Mode | USART_Mode_Tx\|USART_Mode_Rx | 同时使用 TX RX | | USART_Parity | USART_Parity_No | 无奇偶校验位 | | USART_StopBits | USART_StopBits_1 | 停止位 | | USART_WordLength | USART_WordLength_8b | 数据位长度 | --- ### 二次开发 - 引脚7 - 默认作为 **复位按钮** 使用。 - 可复用为 **外部中断使用**,下降沿触发中断。 - 可复用为 **GPIO输入模式**,循环判断是否为低电平。 - 引脚8 - 默认作为 **SWDIO** 使用 - 可复用为 **USART1-TX**,此时**无法使用 SW 调试**,但是**可以通过 SW 下载** --- ### 注意事项 由于上电后会立即将 SWDIO 复用为TX,将 NRST 复用为外部中断,若需再次烧写代码,请按以下步骤操作 1. 下电设备。 2. 保持 **按钮** 处于**按下状态**,上电。 3. 继续保持 **按钮** 处于**按下状态**,使用调试器连接电脑与设备。 4. 继续保持 **按钮** 处于**按下状态**,开始下载程序。 5. 继续保持 **按钮** 处于**按下状态**,待屏幕出现 Flashing 字样时 **松开按钮**。 ## Snowflake Lights Software ### 介绍 以下内容包含 **上位机代码** 介绍 上位机使用 python3 开发,使用串口与雪花灯通信,波特率固定为 115200,当然用户也可以直接修改代码以更改波特率。 --- ### 窗口截图 ![窗口截图](//image.lceda.cn/pullimage/brgP4pueW1esuAlSST7D6uGJH4wwBMGKC67bXxsJ.jpeg "窗口截图") --- ### 配置文件 #### 目录结构 - 配置文件需放置在安装目录下 styles 文件夹中。 - 文件夹中应包含一个 db.csv 数据文件 - 建议将所有用到的图片文件放置在 styles 目录及其子目录中 #### db.csv 文件格式 | 列 | 功能 | | :---: | :----------------: | | 1 | 提示文字 | | 2 | 识别码 | | 3 | 展示图片或动画路径 | - 提示文字将会显示在下拉列表中,由于组件宽度固定,请修改提示文字后运行程序查看该提示文字是否能够完全显示在列表框中。 - 建议使用 **字母、数字** 作为识别码,以避免在文本编码、解码过程中还出现乱码的情况。 - 请在列 3 中填入相对路径以指定展示图片或动画,路径相对于 styles 目录,支持 **./ ../** 符号,但不建议将图片、动画文件放置在 styles 目录以外的地方。 - 展示图片支持常见图片格式,展示动画仅支持 gif 格式。 - 若列 3 留空,则将会在展示区域显示列 1 中所填写内容。 #### 默认 db.csv 文件内容 | 列1 | 列2 | 列3 | | :----------: | :---------------: | :------: | | 由内向外渐变 | 0x00 | 0x00.jpg | | 由外向内渐变 | 0x01 | 0x01.jpg | | 逆时针渐变 | 0x02 | 0x02.jpg | | 顺时针渐变 | 0x03 | 0x03.jpg | | 暖白色 | color 255 255 55 | | | 纯白色 | color 255 255 255 | | --- ### 通信协议 - 上位机、下位机发送请求时应与本机最近一次发送请求 **至少间隔 5ms** 。 - 在未特殊指明的情况下,本通信协议中所使用的所有字符、符号均应为 **英文半角** 格式。 - 在未特殊指明的情况下,下文中所有 **\n** 字符均代表 **一位换行符**, **\0**字符均代表 **一位空字符**。 - 在未特殊指明的情况下,下文中所有 **空格** 符号**不应连续出现**。 - 在未特殊指明的情况下,本通信协议中规定的所有字符串均应 **以 \n 结尾,\0 符号不作为有效的判断依据。** #### 握手 1. 上位机发送握手请求字符串 **sl connect query\n** 至串口。 2. 下位机收到握手请求后回复字符串 **sl connect successfully dev:"AAAAA" ver:"BBBBB"\n**。 - AAAAA 应替换为固件开发者姓名. - BBBBB 应替换为固件版本号。 3. 上位机收到回复后,将开发者姓名、固件版本号显示在屏幕上。 #### 更改风格 1. 上位机发送风格更改请求字符串 **sl code XXXXX\n** 至串口。 - XXXXX 应替换为所使用风格对应 **识别码**。 - 应保证 **上位机、下位机** 识别码一致。 - 修改 styles\db.csv 文件以修改上位机识别码对应关系。 - 欲修改下位机识别码对应关系,请直接修改固件代码。 2. 下位机收到风格更改请求后,解析出识别码并立即修改为对应风格。 #### 识别码格式 - 预留识别码 - 单色显示识别码 - 所有使用本通信协议的上位机、下位机均应支持本识别码。 - 识别码格式 **color RRR GGG BBB** - 请将识别码中 RRR GGG BBB 分别替换为色彩 **R、G、B** 值。 - 应保证色彩 **R、G、B** 值为 **0 ~ 255** 范围内的整数。 - 开放识别码 - 开放识别码用于识别特殊风格,应做到上位机下位机之间统一。 - 开放识别码应尽量 **减少空格符号的使用**,以避免被下位机识别为预留识别码。 - 建议使用一串不含空格的字母与数字组合作为开放识别码. #### 更改亮度 1. 上位机发送亮度更改请求字符串 **sl light XXXXX\n** 至串口。 - XXXXX 应替换为欲使用的亮度。 - 亮度应为 **0 - 1** 范围内的小数。 2. 下位机收到亮度更改请求后,解析出亮度值并立即更改为指定亮度。 - 修改亮度时不应修改显示风格。 - 此亮度设置应对当前及以后所有风格生效。 - 此亮度设置应在收到下一个亮度更改请求时失效。粗体
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 SPX3819 U3 SOT-23-5_L3.0-W1.7-P0.95-LS2.8-TL 1
2 TYPEC-304-BCP16 USB USB-C 1
3 0.1u C32,C9,C8,C5,C53,C52,C51,C50,C49,C48,C47,C46,C45,C44,C43,C42,C41,C40,C39,C38,C37,C36,C35,C34,C33,C1,C31,C30,C22,C23,C24,C25,C26,C27,C28,C29,C21,C20,C19,C18,C17,C16,C15,C14,C13,C12,C11,C10,C6,C4,C7 C0603 51
4 1u C2 C0603 1
5 10u C3 C0603 1
6 SNOW U4 SNOW 1
7 CH340N U2 SOP-8_L5.0-W4.0-P1.27-LS6.0-BL 1
8 TS-KG07S RESET SW-SMD_L6.3-W3.6-P7.9 1
9 HK32F030MJ4M6 U1 SO-8_L4.9-W3.9-P1.27-LS5.9-BL 1
10 WS2812E LED23,LED49,LED47,LED45,LED44,LED43,LED42,LED41,LED40,LED39,LED38,LED37,LED36,LED35,LED34,LED33,LED32,LED31,LED30,LED29,LED28,LED27,LED26,LED25,LED24,LED48,LED22,LED21,LED20,LED19,LED18,LED17,LED16,LED15,LED14,LED13,LED12,LED11,LED10,LED9,LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED46 LED-SMD_4P-L5.0-W5.0-TL_WS2812B-B 49
11 HDR-M-2.54_1x4 DEBUG HDR-M-2.54_1X4 1

展开

工程视频/附件
序号 文件名称 下载次数
1

snowflake-lights.rar

129
2

雪花灯展示.mp4

302
3

上位机展示.mp4

183
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP