我DIY了一个很酷的自行车码表!比外面卖的成本低,但功能更实用。
它支持计步,能显示速度、距离、时间、卡路里、航向:
它还可以离线导航,显示实时位置、轨迹,支持记录轨迹,可导出GPX格式的文件,支持缩放,支持经纬度、海拔显示,支持RTC自动根据GPS校准:
它能持续工作四小时,掉电会自动保存数据,支持在PC模拟器模拟,脱离硬件调试(配置为Release x86)。
设计方案如下:
设计图
硬件配置
- 主控:AT32F403ACGU7 (主频:240MHz RAM:224KB ROM:1MB)
- 屏幕:ST7789 IPS 1.54inch SPI接口 240x240分辨率 60Hz刷新率
- 储存器:Micro SD CARD 32GB
- 输入设备:旋转编码器
- RTC:MCU内置RTC时钟
- 加速度计: LSM6DSM (支持硬件计步输出)
- 地磁计: LIS3MDL
- GPS:ATGM336H (BDS + GPS + GLONASS + GALILEO + QZSS + SBAS)
- 电池:Li-ion 3.7V 683030 700mAh
- 电源管理: LP5907-3.3 + MCP73831
- 外壳:3D打印 光固化
外壳
源码
/**
* @file lv_disp.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_disp.h"
#include "../misc/lv_math.h"
#include "../core/lv_refr.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void scr_load_internal(lv_obj_t * scr);
static void scr_load_anim_start(lv_anim_t * a);
static void opa_scale_anim(void * obj, int32_t v);
static void set_x_anim(void * obj, int32_t v);
static void set_y_anim(void * obj, int32_t v);
static void scr_anim_ready(lv_anim_t * a);
static bool is_out_anim(lv_scr_load_anim_t a);
由于格式原因,代码无法完全展示,本项目是完全开源的,需要代码+电路源文件的小伙伴,请自取,无偿分享:
https://oshwhub.com/222465.255411/x-tracks-ma-biao#P2
本文参考资料:立创开源硬件平台《X-Track码表1.3寸屏版本》作者:勒瑟
https://oshwhub.com/222465.255411/x-tracks-ma-biao#P2
如果你认为这篇文章还不错,欢迎点赞、关注、转发、收藏~
我会持续更新优质开源项目!