Framework又包括三个模块,分别负责图形渲染、页面生命周期管理和消息分发处理。

其中消息框架模块提供数据的分发和处理。

使用订阅发布机制,将HAL层的接收到的传感器数据发布,转发给对应的订阅者进行数据处理。

以GPS为例,GPS数据处理节点每秒读取一次卫星数据,然后发起publish,由消息框架将 GPS 数据推送给订阅者。

在运动数据处理节点中订阅GPS数据。在收到GPS数据之后,运动数据处理节点根据 GPS 数据计算总里程,平均速度等信息。在表盘页面中,拉取运动数据节点信息,将其显示在表盘页面中。

ps. 地图软件为GPXSee。

实现主要有7步:

1、首先是硬件设计。

用AD(Altium Designer)进行PCB板线路设计:

电路图和PCB文件也可以在GitHub详细查看。

2、然后就是被大家纷纷夸赞的UI设计:

设计软件是Adobe AI。

3、接着在3ds MAX上进行外壳设计:

4、再然后就是软件设计了:

编程语言为C++:

5、再使用模拟器直接在PC上模拟效果。

码表的图形界面采用了免费开源的GUI图形库LVGL。

成品使用了许多LVGL提供的基础控件,例如在地图页面的轨迹显示中使用了line控件,地图显示使用了image控件,在表盘页面的页面切换选择,使用了button控件。

6、调试调试,没问题就可进行编译下载。

这里用的是Keil。

7、最后,将最终程序烧录到单片机(AT32F403ACGU7)上运行,再连上ST-Link进行调试。

另外可能很多人不知道,UP主用的这个AT32系列MCU是国产‍设计(重庆雅特力),可替代意法半导体STM32F103系列,主频更高、RAM更大。

全部硬件配置如下:

内存有32GB,存下一个1GB多的北京地图不是事儿。

另外,除了开头提到的功能以外,它还支持地图缩放、计步功能、导出标准GPX格式的轨迹、RTC自动根据GPS校准、掉电自动保存数据(JSON格式文件)、不过续航为4小时(持续工作,始终亮屏)……

整个设计的硬件和软件部分都已开源。

连“竞品”佳明都来点赞

怎么样?学会(废)了吗?

不少围观群众觉得这样一个UI颜值爆表、功能丰富的自行车码表如果真的能有厂商合作生产的话,那还有佳明这些产品什么事儿?

有人在评论区@Garmin佳明,没想到还真把它引过来了:这下好了,连“竞品”都给X-TRACK点赞。

有人还算了一笔账,在某宝按教程买这些配件一共需要不到300元,比佳明上千的价格是便宜不少(虽然续航能力低一点)。

催量产的网友真的非常非常多,不过真要商业化的话,除了续航能力,有自行车骑行爱好者认为还需支持ant+、踏频、心率、功率设备的连接、防尘防水等功能,以及考虑现在的屏幕在阳光下的能见度等问题。