我爱玩垃圾:19元儿童电话手表自己动手改表盘
0-效果展示
首先,来一个效果展示图。
1-入手
儿童电话手表,是为小孩子设计的。可以定位、可以语音、甚至可以拍照。一般不需要功能花里胡哨的,不要有什么视频啊游戏的。基本上一般三五百块钱比较合理,性价比就还可以。但最近在大妈家见到了几款19元的儿童手表(一般标价219,领取叠加优惠券:满212减200元)。去了10元邮费,还剩9元的成本,令人惊掉下巴。。。墙裂的好奇心,促使我买了一单,尝个鲜儿。
2-外观展示
整体做工还可以,玩具级别,中规中矩,对于19元来说是绝对值得买的。
3-套餐问题
开机之后,跳出的是个二维码,需要扫码激活交费,开通套餐。套餐倒是也不是很贵,但是看评论好多家长都反应,充值了激活不了,反复充值激活,还存在有时乱扣费的问题。希望商家能积极改善服务。
然鹅,值得一提的是,所谓的内置卡并不能用普通的手机卡代替,必须激活自带的儿童手表专用卡并购买套餐 。果然,变的有意思了。。。
4-拆机
关于套餐问题,话不多说了,就当啥都不知道了,直接一拆到底,看看19元的硬件到底是何方妖怪 。
HS8225L
HS8225L是一款完整的CMOS高功率,高效率發射模組,適用於低成本四頻TX(GSM850 / EGSM900 / DCS1800 / PCS1900)/雙頻RX GSM / GPRS手機。
RDA8955
紫光展锐旗下锐迪科微电子(以下简称“RDA”)推出一款物联网2G芯片RDA8955。该芯片具有全球最小尺寸及超低功耗的特点,是2G物联网市场最具性价比的解决方案。不查不知道,这个芯片性能还是非常强劲的,配置足够强大。简单说下参数:32位XCPU RISC core , 312MHz 。32Mb PSRAM 32Mb SPI NOR Flash。外围继承了相机、Audio、SD卡、USB1.1、LCD、37个GPIO口。尤其内部集成了电源管理模块,可以管理锂电池充电。也可以配置LDO输出用于支持LCD、键盘背光等。这比平日玩的单片机、aduino等不论是性能还是配置的丰富程度都不是一个级别的。
我没有看到GPS相关芯片,说明仅仅是通过2G基站进行定位的,也就意味着定位精度不会很高。
5-刷机
必须激活套餐才能用,何解?。。。
通过对主板的一番观察,发现主板上存在串口的测试点,并且印刷上了标注Tx,Rx,于是果断飞线,连接上串口转USB输出的模块,连接电脑,打开串口。开机,此时串口的输出就像脱了钢的野马,一顿狂奔。。。
其中,最重要的就这句log了,直接告知了LCD屏幕的具体型号:
[23:13:57.700] SXR 01 : ST7735S(0x89f0): lcd read id is 0x89f0
此刻我想刷个机。。。然鹅,搜遍全网,貌似没有对应固件。
6-写固件
看来只能另起炉灶了,搜啊搜,搜啊搜……
就看到了安信可的一个2G物联网GPS定位模块A9/A9G,用的也是RAD8955这一款芯片,是有支持二次开发的SDK。
安信可提供的SDK,功能还是非常强大的,同时模块的卖点定位也是非常明确的,就是做一个定位模块可能对其他的支持比较弱,比如:LOD输出是没有的。而这一点对于屏幕的点亮却很重要。导致我换了开发SDK。
通过安信可的二次开发sdk,也能实现自己的一些想法。比如,在微信里跟踪手表的位置,还有安信可自己开发的app也可以显示位置。
19元的儿童手表,有屏幕,有电池,有外壳。比单买这个模块都要更香一些,定制完自己的固件,也可以按照自己的想法实现一些特殊功能,比如隔一段时间唤醒自己上报一次位置,这样待机时间就会大大延长啦,你看他是个屏幕不亮的儿童手表,其实它是个定位器,还能指挥录音和拍照,简直是个神间谍。。。
前面说过,安信可这套SDK是没有LOD输出的,所以屏幕没法点亮,运行的测试程序可以输出,但是屏幕背光是不亮的,还得拿手电筒照它,才能看见字,这怎么能行呢。。。我可不能做达文西第二。。。
好在,偶然在github上发现一套RDA的开发代码(感谢大佬)。
研究一番,也可以用安信可的编译环境进行编译,应该是同一套RDA公司提供的源码,安信可也仅仅是再此基础上进行了二次封装并阉割掉了一些电源管理的功能。按照目录结构看,st7735s驱动也是有的,详细的指导书,也是都有的。在此略去不表了,自己看就行了。特别详细了。
唯一没有的,就是GUI库。。。又一个大坑。。。
嗯??灵光闪现。。好像?安信可的sdk中集成了一套LVGL的GUI库,把它搬过来不就行了嘛。
果断移植过去,发现是可以用的,但是这套LVGL库是v5版本的,显示个汉字都难,图片显示也不配套。坑。。。
于是去github上,下载了最新的LVGL,然后移植过去,然后此事可成了。。。
7-制作表盘
有了LVGL库的加持,制作表盘,这块原理就非常简单了,就是几个图片的叠加显示。。。
比如指针式的表盘,需要:表盘图一张,时针图一张,分针图一张,秒针图一张。
然后按照顺序叠加显示,每隔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。
所以,各种表盘,,看着很高级的样子,,其实背地里都是在悄悄刷图片。
对于表盘这种应用来说,根本不用深入学习LVGL,只需了解个image对象就可以了。还是非常简单的。
至此,我的目标暂时也就全部达成了,可以佩戴19元的塑料手表上街了。
[已注销]
校验提示文案
只想七休
校验提示文案
那时风雨
校验提示文案
wiwyl1000
校验提示文案
值友8774637539
校验提示文案
泡在河里的石头
校验提示文案
值友5659955273
校验提示文案
健康每一天
校验提示文案
zsbdzsbd
校验提示文案
唛叔叔
校验提示文案
Renson
校验提示文案
浩淼锋
校验提示文案
batch2000
校验提示文案
Semmer2
校验提示文案
值友2580009334
校验提示文案
柚子柠檬火龙果
校验提示文案
predator
校验提示文案
狐步翩翩
校验提示文案
darkengine
校验提示文案
荣泽
校验提示文案
值友2390912082
校验提示文案
值友8184699561
校验提示文案
值友8184699561
校验提示文案
值友8184699561
校验提示文案
jeit
校验提示文案
打人专打脸
校验提示文案
福旺财旺身体旺
校验提示文案
陈隆巴斯
校验提示文案
值友6486032731
校验提示文案
超逸绝尘
校验提示文案
蛇么个玩意
校验提示文案
值友2431603416
校验提示文案
学学学无止境
校验提示文案
怪叔叔肖昂
校验提示文案
浣花洗剑录
校验提示文案
Docee
校验提示文案
Docee
校验提示文案
鳄打嗝不当大哥好多年
校验提示文案
值友1160496515
校验提示文案
白仙人
校验提示文案