回复前五均有kcb
前言:
闲来无事,比赛也比完了,最近摸摸鱼,搞点之前一直想搞但又没时间搞的,这个当代艺术驱动器还是很有意思的,源工程是使用STC芯片,我换STM32了。
主要特色&可玩性:
0、优化代码逻辑和时钟速度,尽可能省电。
1、使用STM32F103C8T6(C6T6也是通用的,但是要注意,千万别图便宜买到假芯片了),去掉外围晶振电路,直接使用内部时钟。这一步停了挺久,我当时认为要设置参数那些,其实是不用的,STM32开始就是使用内部时钟,识别(这个词不一定准确)不到外部时钟会继续使用内部时钟。至于时序倒不用担心,我串口通信115200都没有问题,主打就是省电和尽可能减少外部器件。
2、优化布局,把大多数元器件隐藏到OLED屏幕下面,留出位置加图片和艺术字。
3、优化字库芯片算法(参考的开源文件里面关于字库芯片取字留了一手,导致取出的字是乱码)。务必注意购买的字库芯片的型号,GT20L16P1Y和S1Y的选址是完全不一样的,当时我就是被这里坑了。本工程使用的是GT20L16P1Y。
4、为了节省空间和美观,使用Micro-B安卓线接烧录器烧录,USB公头抽四根线出来就行,挺方便的。使用过0.5排线座接烧录器和烧录探针烧录的方法,前者焊接连锡太痛苦,刮锡搞半天,后者调试的时候不稳,卒舍弃。
5、显示你喜欢的句子or单词、短语,中英文皆可,按键随机切换到下一个(目前是使用定时器取余随机)。
6、带两个LED灯。
7、带金属化过孔,可以当做挂件装饰。
后续优化:
1、可以插入简单的开机动画,64K FLASH容量够大。
2、目前在想办法省电,CR1220电池能撑个几小时,如果换可冲电池又太贵了,电路也要重新搞。突然想到,可以接个io口出来使用STM32推挽模式PWM(能有几十毫安电流,按照0.1C充电,5mA左右的充电电流)+ADC采样电阻电压(获得电流)约等于电池充电管理。貌似又没必要这么麻烦,直接接AMS1117的3.3V输出然后加个恒流二极管充电得了。
3、简版谷歌小恐龙游戏,自带一个按键(有硬件消抖),基本的跳起是没问题的。 电池根本撑不住哇。
4、显示图片(例如二维码(我使用的是草料二维码,经验证,32*32插个活码网址进去没问题,静态文本几句英文也是足够的)二维码能插入很多有意思的,比如说一段文字,或者重定位到自定义网页对喜欢的女生表白【滑稽】)。
5、后续可以换成TFT屏幕,更便宜,分辨率更高,还是彩色的,但耗电也是个问题。 这个也是别想了,电池根本撑不住
后续测试过程中的问题:
功耗实在是太厉害了,芯片如果不进入停止模式,电流去到5mA左右,加上字库芯片工作电流4mA,OLED屏幕4mA,CR1220电池压根撑不住,电压拉下来显示很容易出错。缓解方法是降低OLED的显示亮度和降低屏幕的时钟分频比(0xd5寄存器)以及芯片进入停止模式(OLED照常显示),按键中断重新进入工作模式,刷新完显示之后重新进入停止模式。
调试到后面工作电流是12mA左右(持续1s左右),待机电流是2mA左右(左右是因为OLED显示的字越多耗电越多,只能给出一个大致范围)。
(这个图片不知道能不能显示出来,有时抽风好像显示不了)
so,谷歌小恐龙是别想啦,耗电太厉害了,1220根本撑不住,换成2032还可能可以搞搞。最好可能还是可充电纽扣电池(这玩意也是有坑的,满电4.2V,直接超了芯片3.6V最高电源电压,而且容量偏小,不及南孚1220(推荐使用这款纽扣电池,容量够大,放电电流也ok,天球1220质量不行,很快没电)的30%),lir2032,放电电流能满足需求。led作为一个充电显示还是不错的,如果使用电池点亮还是太耗电了。
嘉立创工程(立创EDA专业版):
代码(旧代码小概率会卡死,新代码修复了这个bug):
旧版效果图:
尝试白色,蓝色,黄色三种颜色的显示,还是黄色好看。
(顺带一提,助焊膏是真的难洗,黏糊糊,洗板水刷上去反而整块板都黏糊糊了。还不如松香,起码冷却之后不粘手(ps;发现是我洗版方式不对,不是刷子沾洗板水直接刷,是棉球沾洗板水刷一遍后扔掉棉球换的新的重复沾洗板水刷,这样助焊膏会在棉球上被带走))
新版效果图:
沉金还是很好看的,嘉立创上个月满20就可能可以嫖一张沉金劵了(ps:就那个月嘉立创发了沉金劵,后面没发了)。主要改进是优化布局、加两个LED、更换烧录接口(不使用排母座和type-c了,连锡太痛苦)
Q&A
1、如果字体出现残缺一般是电池电压不够了。
2、后面继续更新完善。
参考工程:
[修改于 5个月3天前 - 2024/06/21 19:50:09]
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。