今天是周五吗
Part Ⅰ
这是一个拖了很久的项目, 有很多废案. 隔一段时间想起来有这回事情,于是缝缝补补, 推倒很多次.
MCU从最开始使用的是ESP32, 也用过ESP32C3, 最后使用是CH582F.
起初他有很多功能,比如移植了一个lua解析器, 这样就可以动态的加载lua脚本, 以显示不同的内容.
也引入过FreeType, 用来解析.ttf字体, 以具有显示不同尺寸文字的效果.
尽管废案的完成度已经相当高了.但是实测续航表现十分糟糕. 一想到他要充电就让我感到无奈.
终于有一天看到了CH582F这款芯片. 唤起了重新实现Friday Ink的念头.
查了一些资料后, 那一刻我觉得这就是我要找的芯片. QFN28封装, 纽扣电池就能驱动, 二话不说斥巨资12元买入开发板着手开发.
Part Ⅱ
固件最开始是使用C开发的, 而且完成度也是很高, 只差休眠和蓝牙部分了. 结果这时候莫名其妙的加了一个Rust嵌入式的群, 群里面有个佬又正好做了CH582F的Rust适配.
于是决定试试Rust来开发.
显示部分直接用了bindgen把u8g2绑过来, bind就完事.
休眠部分, ch58x-hal没有封装, 所以这次只能手搓寄存器, 于是对着官方的休眠代码, 人肉翻译了起来. 好在最后能工作(当然能工作, 毕竟我只是翻译了一下)
Friday Ink的功能十分简单.
只要启动时候检测一下有没有按下按钮,按下就显示一张图片, 然后扫描周边的蓝牙广播,扫描到符合时间协议的就设置本地RTC然后重启.
如果没有按下按钮就检测今天是不是星期五, 执行刷屏, 然后设备休眠. 直到第二天00:00唤醒.
Part Ⅲ
用纽扣电池作为输入,然后接上合宙的电流表, 110小时后统计信息如下: