我爱玩垃圾:19元儿童电话手表自己动手改表盘( 二 )


我爱玩垃圾:19元儿童电话手表自己动手改表盘
文章插图

好在,偶然在github上发现一套RDA的开发代码(感谢大佬)。
RDA8955_W17.44_IDH
研究一番,也可以用安信可的编译环境进行编译,应该是同一套RDA公司提供的源码,安信可也仅仅是再此基础上进行了二次封装并阉割掉了一些电源管理的功能。按照目录结构看,st7735s驱动也是有的,详细的指导书,也是都有的。在此略去不表了,自己看就行了。特别详细了。
唯一没有的,就是GUI库。。。又一个大坑。。。
嗯??灵光闪现。。好像?安信可的sdk中集成了一套LVGL的GUI库,把它搬过来不就行了嘛。
果断移植过去,发现是可以用的,但是这套LVGL库是v5版本的,显示个汉字都难,图片显示也不配套。坑。。。
于是去github上,下载了最新的LVGL,然后移植过去,然后此事可成了。。。
我爱玩垃圾:19元儿童电话手表自己动手改表盘
文章插图

7-制作表盘有了LVGL库的加持,制作表盘,这块原理就非常简单了,就是几个图片的叠加显示。。。
比如指针式的表盘,需要:表盘图一张,时针图一张,分针图一张,秒针图一张。
我爱玩垃圾:19元儿童电话手表自己动手改表盘
文章插图

然后按照顺序叠加显示,每隔xx毫秒,就去刷新指针角度就可以了。
创建时:
lvHour = lv_img_create(central);//造一个时针对象
lv_img_set_src( lvHour, &hour;);//时针对象设置图片源
lv_img_set_pivot(lvHour, 6, 62);//时针对象设置支点位置,
lv_obj_align(lvHour,LV_ALIGN_CENTER, 0, -18);//对齐到中间并调整位置
周期性更新时间时:lv_img_set_angle(lvHour, angle);//设置图片角度
太空人表盘,对比于指针式表盘也是更加的简单,只需要准备数字的图片,还有宇航员的动画序列图片就可以了。
宇航员飞翔,就是不断更换图片的过程,1秒内从fly0均匀刷到fly9。
我爱玩垃圾:19元儿童电话手表自己动手改表盘
文章插图

所以,各种表盘,,看着很高级的样子,,其实背地里都是在悄悄刷图片。
对于表盘这种应用来说,根本不用深入学习LVGL,只需了解个image对象就可以了。还是非常简单的。
我爱玩垃圾:19元儿童电话手表自己动手改表盘】至此,我的目标暂时也就全部达成了,可以佩戴19元的塑料手表上街了。


推荐阅读