查看:
12117
回复: 13 |
参赛作品《32*64点阵电子钟》
|
|
发表于2018-05-17 09:25:16
|
显示全部楼层
1#
电梯直达
【报名阶段需要填写的内容】 1. 参赛者姓名(必填项): 宋磊锋 2. 单位或学校名称(选填项): 3. 当前职务或职称(选填项): 4. 参赛作品的名字(必填项): 32*64点阵电子钟 5. 简要陈述您的idea和作品(必填项): 比较喜欢点阵做的电子钟,奈何市面上没有卖的令自己满意的成品,自己也非常喜欢电子制作,之前也做过电子钟,不过都不太满意, 这次做的这个电子钟加入了目前想到的所有功能。 1.时间、日期、农历、节气、节日、生日显示,采用高精度时钟芯片DS3231。 2.语音报时,单片机自己解码Mp3、Wav文件进行播放,不需要硬件解码器,并将Flash模拟成U盘,插上电脑可以方便的替换语音文件。 3.支持汉字、数字、字母显示。将集成一个汉字字库,这样就不用取模显示任意字了。 4.掉电存储功能,断电后设置依然保存,单片机Flash模拟EEPROM存储设置参数,不需要硬件EEPROM。 5.温度、湿度显示(选的芯片是SHT30,由于是QFN封装,我自己手工焊不上去,目前使用的是DS3231的温度,家用的话精度够用,如果后期能焊上去将使用SHT30 的温湿度) 7.亮度手动调节功能、自动调节功能(自动标定) 8.频谱显示功能 9.红外遥控学习及控制10.引出串口来接GPS模块进行GPS授时或Esp8266模块进行网络授时 6. 拟用到的立创商城在售物料(必填项): STMF103RCT6、W25QXX系列存储器,DS3231,SHT30,AMS1117-3.3,8002B功放芯片 7. 拟用到的非立创商城物料或其它补充(必填项): GPS模块,ESP8266模块 8. 拟用到的EDA工具软件名称(必填项): 立创EDA 【作品正式发表(报名成功后进入设计阶段)需要填写的内容】 一、作品简介 1.作品的整机外观图片或焊接组装好的PCBA图片; 背面图 正面图 焊上元器件 装配图
2.作品的研究背景、目的和功能、市场应用前景; 做这款电子钟主要是家里父母喜欢语音报时的大字时钟,我自己也是个完美主义者,市面上现成的时钟不是这里不满意就是那里不满意,那就自己做一个吧,以前也做过数码管的,手里头有两个点阵屏,用这个显示能更大些,效果更好,最重要的是通过做项目可以学习很多新东西,这个收获不是拿钱能衡量的。 3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现? 项目题目起的非常平凡,所以亮点有吗?必须有啊,要不然做个电子钟我都不好意思拿出来参赛了,容我一一列举,图在下面 ① 单片机USB+SPI Flash模拟U盘可以方便的替换语音报时文件,字体文件;
② 单片机通过文件系统读取报时文件直接用DAC播放,没有用外部MP3播放芯片的方案(仅用了功放芯片),其实这个电子钟也是个小wav播放器。 ③ 自己设计了一套算法用单片机内部flash模拟EEPROM,并且做了磨损平衡、损坏自动恢复,寿命是flash寿命的n倍(n根据参与的扇区数量决定),而没有用EEPROM芯片,节省了成本与硬件连线。
④ 自己设计了一套非常容易维护的多级菜单系统,增减改删特别方便,如图像这样在菜单定义处调整即可,操作超时可以自动回到主界面
⑤ 幕显示毫无闪烁,包括遥控操作的时候,DIY论坛里面看到大家分享的hex文件,很多都避免不了闪烁,对于我,闪烁就是沙子,不能进我的眼睛。 ⑥ 亮度自动标定与控制,亮度标定程序会找出一天最亮和最暗的值,在此基础上更精确的控制自动亮度 ⑦ 先后用了两种操作系统,比较了两种系统的优缺点,这也是我第一次给项目中使用操作系统。 图-U盘模拟
图-flash模拟EEPROM
图-菜单定义 图-菜单内容页面 二、系统构架图
三、硬件部分的描述 立创EDA原理图: Schematic_Clock32x64Led_Clock32x64Led_20180508133450.pdf
立创EDA PCB:
实物图:
发现立创商城号召用立创EDA进行开发,所以我尝试了一下,容易上手,特别是封装库啥的都是在线的,不用自己维护不用自己画,非常方便,板子也是在立创打样的,这是我人生中的第一次打样,给了立创,以前都是洞洞板或者自己腐蚀,立创没有让我失望,速度快,质量好,我刚开始还怕我那些细线和细的过孔做出来有问题,收到板子焊上元件下载程序一次点亮,没有经过任何调整,这下我放心了,唯一遗憾的是我对打样的规则没有理解好,原来10*10内里面画两个相同的PCB是不算拼板的,为了省钱所以我中间没有放V割线,回来后苦逼的用美工刀一点点裁成两个。。。。 PS:同事看了我打的板子,后面也在立创打了两次板子。 本项目采用高精度时钟芯片DS3231计时,高精度温湿度检测芯片SHT30检测温湿度(奈何SHT30是QFN封装太小而且焊盘在下面,我手工实在焊不上去,目前温度可以菜单选择使用DS3231的温度或者外挂DS18B20),SPI Flash模拟成U盘存放语音、字体文件;遥控输入通过定时器的输入捕获解码,单片机读取音频文件DMA传输到DAC中进行整点语音报时。预留有串口与外部GPS模块或者ESP8266连接自动授时(不过经过这段时间的测试,DS3231的精度很高,不用自动授时完全可以),另外硬件设计时也是把它当做一个小开发板来做,所以该设计的都设计了,比如两颗外部晶振,预留的多个串口和SPI口。 四、材料清单(BOM列表)
BOM清单文件BOM_Clock32x64Led_20180423165300.rar 五、软件部分的描述(选填) 由于屏幕不能有任何闪烁感,所以屏幕刷新函数必须保证稳定的刷写率不被任何东西打断,包括其他中断,所以在此专门说明一下,本项目屏幕刷新函数是由一个定时器定时调用,屏幕刷新率60Hz,定时器优先级最高,所以目前的效果是一点都不闪,包括遥控解码的时候,但是注意,在退出主菜单列表时程序会卡一下,能看到闪烁,这是因为我将Flash作为EEPROM,退出菜单时保存数据写Flash,而写Flash的时候整个程序是阻塞不运行的,当然如果把设置保存的时机改成设置改变后凌晨再进行保存,也就看不到这个闪烁了。 文字字符显示实现了printf函数,可以在任意x,y位置开始显示字符,大大的提高了编程的难度降低了维护成本,比如经常见到的网友的做法显示“你好10”,最初级的做法是: display(x,y,font[0])-“你”, display(x,y,font[2])-“好”, display(x,y,font[3])-“1”, display(x,y,font[4])-“0”, 初次写的时候每个字的x,y都要计算,而且要查一下“你”在字模数组的第几个,如果中间有改动,比如改成“你10”,那后面三个字的x,y坐标又得重新算一遍,而在我这里直接 Screen_Printf (0, 0, FontsType_UserMix, SCREEN_COLOR_RED, SCREEN_UPDATE_NORMAL, "你好%d",10); 就可以了,只需要给出要显示的开始位置,并且同时控制了字体及字体颜色,在下图的菜单页面中也可以看到。菜单系统和设置界面的设计还是比较满意的,可以接收任意多按键的控制,逻辑可以非常清晰,容易维护与新增。比如下面是一个时间校准设置,menu键退出设置,up键加,down键减,ok键本页面未使用。
再贴一下目前的菜单结构,应该对本项目功能就有个大致了解了 0主界面 1日期设置 (设置阳历,农历自动计算) 2时间设置 -----------2.1时间调整 -----------2.2 24小时制 -----------2.3 时间校准 (用于时间隔一段时间自动加减几秒,PS:DS3231的精度够了,完全不用校准) 3语音设置 -----------3.1 播报模式 (详细模式,简洁模式) -----------3.2 播报时段 (设置几点到几点开启语音播报) -----------3.3 音量 4温度选择 (选择显示的文档来自哪一个传感器,并且在每个传感器里面可以设置各自的补偿) -----------4.1 DS3231 -----------4.2 DS18B20 -----------4.3 SHT30 5 显示效果 (目前使用的是渐变切换效果,感觉这个最入眼,什么滚动,百叶窗的个人不喜欢,留个接口后面慢慢加进去吧) 6亮度设置 ------------6.1 亮度模式 (固定亮度或者自动亮度) ------------6.2 亮度标定 (设置自动亮度时,最高光线和最暗光线对应的亮度值) ------------6.3 环境亮度 (获取环境的最高和最暗光线值) --------------------------6.3.1 自动学习 (24小时自动采集环境的最高和最暗光线值) --------------------------6.3.2 手动采集 (手动采集环境的最高和最暗光线值) --------------------------6.3.3 手动设置 (手动指定) 7 遥控设置 ------------7.1遥控开关 (使用完遥控后可在此关闭遥控的响应,这样用遥控控制原设备的时候就不会影响到时钟了) ------------7.2 遥控学习 8 字体设置 ------------8.1 字体选择 (选择时钟字体、菜单字体) ------------8.2 字体颜色 (选择时钟颜色、菜单颜色) 9 频谱 (考虑到会有网友仿制,所以把大家喜欢的频谱加进来,不过对我来说感觉没啥用啊,所以暂时没做,接口留着,后面慢慢加) -------------9.1颜色设置 -------------9.2 分频设置 -------------9.3 打开频谱 10 授时设置 (DS3231的精度足够,个人感觉不用浪费买个GPS或者网络模块进行授时,不过接口放在这里,可以在这里设置用什么模块授时,什么时候授时) 11 闹钟设置 (6组闹钟,可以单独设置周内的星期几响) -------------11.1闹钟一 -------------11.2闹钟二 -------------11.3闹钟三 -------------11.4闹钟四 -------------11.5闹钟五 -------------11.6闹钟六 12 屏幕检测 (考虑到LED点阵屏幕会有坏点,所以加了个屏幕检测功能,红-绿-黄-三色循环显示) 13 还原设置 14 版本信息 如果没有设计的那个菜单系统自主调用,这么庞大的菜单列表不把人累死啊,有了它,再加几倍也没事,而且还提供了快速访问的接口,可以根据菜单ID直接访问配置界面,有了这个菜单系统可以将很多项做成可配置项,满足不同人的各种口味。
六、作品演示 视频插不进来,放上地址好了 有广告地址→ https://v.qq.com/x/page/g0757e48rfx.html 无广告地址→ https://www.bilibili.com/video/av29067008/ 再放几张图片,现在没有外壳,比较丑,后面准备在前面加个黑色的亚克力板
七、总结 非常感谢立创提供这么好的机会和平台,媳妇每次说你花的钱和精力都够买一个了,没错,但这就是发烧,买的东西总有这里或那里不满足自己的心意,自己做的一个是完全为自己定制,而且可以提高自己的能力,学习新知识,另外看着自己做得东西在正常运行,就像有生命一样,非常有成就感,开发期间也创造了好几个模块比如EEPROM模拟模块,这个后面准备用到我们产品上,还有菜单系统,写的时候都是遵循高内聚低耦合的原则,便于移植;第一次用上了操作系统,确实好,后面的项目都会上操作系统;实现了USB优盘,语音播放,文件系统,这些都是第一次搞;为了后面升级方便,再用usb模拟个U盘可以把hex文件直接丢进去升级,这次项目结束好好多第一次,所以非常感谢立创。 由于两个儿子才一岁半,下班还要带娃,所以用于DIY的时间非常紧张,所以我先紧大部分功能完成,授时、频谱这些我用不到的功能后面慢慢搞,期待儿子快快长大,可以和我一块DIY了。。。。。。本届竞赛还没结束,下届的课题我已经定好了,并且已经慢慢筹备了,下届准备为自己定制一套航模遥控和接收机,以后可以控制航模、船模、车模,入坑模型,带着娃们一块玩,想想都开心,模型是个烧钱的坑,期待这次能得奖,作为后面DIY的资金池,最后再次感谢立创提供这么好的机会。 |
|
发表于2018-08-27 19:49:04
|
显示全部楼层
12#
您好,恭喜楼主获得第三届立创电子制作节优秀奖,我这边需要统计下您的个人信息,以便于发奖,因未有您的联系方式,请尽快与我沟通,添加我的QQ:2355740876,或者拨打我的电话:15088693453。
|
|