发新帖我要提问
12
返回列表
打印
[创新制造展示]

【21ic第二届设计大赛】+互联网信息展示器-LED点阵屏-源码....

[复制链接]
楼主: chongdongchen
手机看帖
扫描二维码
随时随地手机跟帖
21
没有源程序什么的啊?

使用特权

评论回复
评论
chongdongchen 2018-8-19 16:24 回复TA
你好,代码已经上传,27楼 
22
chongdongchen|  楼主 | 2018-7-21 20:55 | 只看该作者
zhaor 发表于 2018-7-21 18:36
没有源程序什么的啊?

你好,朋友。我会在适当的时候开源。请关注。

使用特权

评论回复
23
chongdongchen|  楼主 | 2018-8-2 21:40 | 只看该作者
发现热点新闻的服务器不是很稳定,可能对方在升级吧。
想了想又增加了今日油价的显示,视频展示如下:


使用特权

评论回复
24
源和| | 2018-8-3 11:04 | 只看该作者
chongdongchen 发表于 2018-8-2 21:40
发现热点新闻的服务器不是很稳定,可能对方在升级吧。
想了想又增加了今日油价的显示,视频展示如下:

不错哦

使用特权

评论回复
25
电技| | 2018-8-4 18:37 | 只看该作者
不错

使用特权

评论回复
26
chongdongchen|  楼主 | 2018-8-10 09:59 | 只看该作者

时间过的很快,比赛马上就要结束了,一直没时间写总结,昨晚上加班后稍微写了点,弄得比较晚,早上又加了点。
这个设计从功能上来说是一个很简单的东西,就是从互联网获取了一些信息,再从LED点阵屏上播放出来。下面就简单地总结一下吧。
先列一个硬件清单
1、 LED点阵双色屏(半屏16*64);
2、 STM8S103(和003一样用)最小系统板(作为LED屏控制卡);
3、 字库芯片(提供汉字显示);
4、 ESP12F模块(主控是ESP8266,用于获取网络信息);
5、 人体感应模块(实现节电功能);
6、 5V/3A电源适配器;
7、 电阻、电容、导线、插针等等基本元件和耗材。
由于硬件电路比较简单,就没有画PCB,直接搭棚了;主要说下软件部分。
LED点阵屏的驱动。用STM8S103做主控,从功能上做了兼容设计,暂时使用不同的通讯协议加以区分:自由协议用作网络信息展示,MODBUS-RTU用作串口助手屏,这里就不介绍怎么用MODBUS命令设置串口助手屏的方法了,具体见程序。
驱动HUB08接口的双色点阵屏(半屏16*64)的显示;最高250帧的刷新频率(目前使用的是200帧,宏定义可调);亮度0-15可调(已经根据人眼优化);做了上下左右4个方向的字符串移动动画效果;并且根据网络信息展示内容,定制了一些显示效果。
上电是默认是网络信息展示功能,任何时候如果通过MODBUS协议传输有效的命令过来,则切换为串口助手屏功能,否则延时一分钟后退回到网络信息展示功能。这些功能在软件上都已经完成,不过由于硬件上串口被ESP12F模块占用,实际上串口助手屏功能暂时不能同时使用。等以后有时间了想再用一个ESP12F模块做一个无线串口发送器,把信息输入到这个ESP12F模块的串口,此模块再把信息通过WiFi转发到连接LED屏的ESP12F模块,再由它转成MODBUS协议传给STM8S103并显示,这样就实现了两个功能同时使用,并且还是无线串口。
由于需要显示中文,加了字库芯片,单片机RAM不够大(大部分用于显示缓冲、串口缓冲和显示内容缓冲),字符串长度也不固定,所以显示字符动画时都是实时地从字库芯片里取出再显示,这样对于STM8S103来说压力很大。
综合下来,STM8S103的flash和ram就用掉了大部分了,Code=7023,Ram=937,包括CPU也是满负荷运行,好在不是工业控制环境,就无所谓了,所以如果是商用或者追求更多功能或特效的话,STM8S103是不够的。
正因为小马拉大车,程序设计时一定要把握好逻辑顺序,要不然显示就会不稳定,所以刷新每一行LED都必须要定时间中断优先运行。其他功能都必须让道,这是非常关键的,就算是换了性能更好的单片机也一样。
ESP12F模块的网络信息获取。使用了开源的nodemcu进行二次开发,开发语言是Lua,第一次用,虽然程序写的不好看,但是学到了很多。
完成的功能有:网页WiFi配置、SNTP时间的同步、获取实时天气预报信息、获取实时新闻热点标题信息、获取今日油价信息。其实这些网络信息的获取方法大同小异,所以就挑了这几个“有点用”的信息用于展示了,开发过程主要是熟悉了nodemcu、Lua的使用、以及一些网络应用。
由于不熟悉,一些基本的操作也花了好多时间,比如怎么使用开源固件,怎么编辑上传Lua脚本,Lua如何使用,如何获取网络资源,怎么解决并防止程序弄错了老是重启等等的细节。
节电功能的实现。用人体感应模块,人来了就开,人走了延时再关。由ESP12F模块采集信号并整合成标志发给STM8S103,控制LED屏的显示开关。同时也决定ESP12F模块是否更新网络信息。
还有些细节就不一一在这里说了,源程序过几天分享给大家(毕竟比赛还没结束,对同个题目的参赛者不公平),有兴趣的同学可以看看,也可以做一个玩玩。有好点子也可以一起完善,有写的不好的地方也请尽量指出,一起学习成长!



使用特权

评论回复
27
chongdongchen|  楼主 | 2018-8-19 16:24 | 只看该作者
比赛即将结束,还没完成的同学要加油赶一赶了。
先把代码分享给大家,请大家多多指点。


STM8S003.rar

190.22 KB, 阅读权限: 10

nodemcu固件和Lua程序.rar

305.86 KB, 阅读权限: 10

使用特权

评论回复
28
zhaor| | 2018-8-21 08:45 | 只看该作者
怎么驱动LED点阵的啊?说说思路好吗?多谢了

使用特权

评论回复
29
chongdongchen|  楼主 | 2018-8-21 08:58 | 只看该作者
zhaor 发表于 2018-8-21 08:45
怎么驱动LED点阵的啊?说说思路好吗?多谢了

这个设计驱动的是HUB08接口的双色LED屏,16*64,就是16行,每行64的LED,双色就是两种颜色,那就x2。
驱动时就是行扫描点亮列LED,16行定时间循环扫描,大致是这样。。详细点的话要结合程序,你可以先看看程序

使用特权

评论回复
30
chongdongchen|  楼主 | 2018-8-21 09:00 | 只看该作者
zhaor 发表于 2018-8-21 08:45
怎么驱动LED点阵的啊?说说思路好吗?多谢了

如果有兴趣的话,建议你也买一个面板,学起来就比较快了,挺好玩的

使用特权

评论回复
31
zhaor| | 2018-8-21 09:19 | 只看该作者
LED点阵有了。

使用特权

评论回复
32
chongdongchen|  楼主 | 2018-8-21 09:24 | 只看该作者

也是我这种吗

使用特权

评论回复
33
ccswdwy| | 2018-8-30 13:37 | 只看该作者
您好我是无线电杂志的小编,我们觉得您的创意十分的好,如果您想在杂志上分享您的创意,方便的时候请联系我。我的QQ是260534978,手机微信是15510676333.
期待着您的好消息,感谢支持!

使用特权

评论回复
34
bogejiayou| | 2020-12-28 01:53 | 只看该作者
要找HUB08接口的信息,有幸看到了楼主的制作与分享过程,不得不夸楼主确实厉害!不到一个月,时间挺匆忙了,除了搬砖还要有时间来发贴,精神可嘉啊!
楼主现在从事那一方面的开发工作呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则