# BikeMetric多功能码表 **Repository Path**: gie-studio/bike-metric ## Basic Information - **Project Name**: BikeMetric多功能码表 - **Description**: 简易码表方案,包含轨迹记录、常用数据显示等功能,可连接禧玛诺DI2电变方案显示档位(例如7170) - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-12-08 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BikeMetric多功能码表 ![Main](/pic/BikeMetric.jpg) ### 介绍 码表方案,包含轨迹记录功能,主界面显示日期时间、本次里程、坡度、均速、移动时间、温度、海拔、速度、总里程。数码管默认显示速度和本次里程,如果成功连接禧玛诺DI2电变(例如7170),将切换为档位显示 ### 仓库结构 /Bin 编译好的固件,以及蓝牙协处理器的固件 /Code 基于MDK521和CubeMX的码表源代码 /Hardware 硬件PCB和原理图 /pic readme所使用的图片 Schematic.pdf 原理图PDF导出 Shell.SLDPRT 外壳3D建模(SolidWorks 2020) Shell.STL 外壳3D建模已导出(可直接交商家生产) Panel.epanm 面板导出文件(可直接交立创生产) Panel.svg 面板矢量图导出 Panel.pdf 面板PDF导出 ### 主要器件 * **STM32WB55RGV6** 主控&蓝牙SoC,价格现在已经打到十块了,容量大、带一个独立的M0的蓝牙协处理器,片上资源丰富 * **L26KA** 移远的多星座定位模块,低成本带AGPS、定位快,引脚兼容带惯导的L26DR-UDR,但不建议升级L26DR,如果不加良好避震,在自行车的场景下惯导很快就跑飞了 * **CSNP4GCR01** 雷龙的512MB SLC Nand存储器,和SD卡协议兼容,本项目中用SPI方式读写,配置文件、轨迹等都存储在其中 * **BME280** 气压计芯片,可用于更精准探知高度变化量,可加快码表对坡度变化的响应 * **DS18B20** 温度传感器,从最前端伸出,避免被本机温度影响,安装完毕后需在其周围灌胶避免溅水进入壳内 ### 其他器件 有几个器件在原理图中不能看出具体型号,下面将其规格列出 * LED:实际证明2x5x7的指示灯实在太大了,选用的是封装兼容的1x3x4mm的小灯,**这个和原理图封装不一致**,需要注意 * OLED显示屏:中景园电子 1.54寸OLED显示屏 SSD1309方案 * 天线:有源GPS北斗双模天线 尺寸20*6mm 接口类型IPEX 1代 线长13cm * 电池:604060 2500mAH聚合物锂电池带保护板 * 底座:佳明公座 孔距20-22mm ### 硬件安装 电路板尺寸70x42.5mm,四层板,以STM32WB55RGV6为核心器件,主要的软件和蓝牙协议栈都在它上面实现的,对外使用串口接L26定位模块的数据,SPI接flash存储器的数据,IIC控制屏幕,数码管显示没有采用动态扫描的方式,用的比较豪华的74HC595配置,相当于可以静态控制到每一个笔画,显示不会频闪和亮度不均,但是也就导致电路略显复杂。TypeC接口目前也仅用作充电口,但保留和STM32的连接,可以用来透传定位数据等功能。电源方面,由于6206的输出电流比较低,数码管又比较耗电,所以将数码管单独分出来一个LDO供电,另外由于OLED使用的裸屏,还需要一个MT3608产生一个12V电压给OLED使用。 * 另外需要注意的就是预留的一个NOR Flash的位置,实际上并没有用到,可以不焊接。 * 在焊接时,**注意电源开关S1和温度探头U5先不要焊接**,电路板装壳的时候再焊接,不然会与外壳产生一定冲突。 原理图如下,高清图可以去看PDF文件或直接打开源文件: ![sch](/pic/sch.jpg) ### 软件修改和下载 本项目软件基于MDK521和CubeMX构建,MDK的工程文件位于\MDK-ARM\BikeMetric.uvprojx,CubeMX工程文件为Bike_Metric.ioc * 定位、码表、轨迹记录、配置等代码位于/user/odometer.c中 * 界面、 菜单有关代码位于Demoproc目录下 * 电变蓝牙地址配置目前没有做到界面中去,还需去源码中修改,位于/STM32_WPAN/App/app_ble.c * 本项目GuI部分基于Polarix开源的simpleGuI框架搭建,感谢原作者的付出 #### CubeMX重构代码注意事项 本项目蓝牙部分是基于STM32_WPAN的Router模板修改的,以确保能够连接电变获取档位的同时,还能连接手机,诸多修改仅使用CubeMX提供的用户代码区域已不能满足,所以使用CubeMX重构代码后,需要将BLE_BKP中的部分拷出覆盖,以免蓝牙失效。 #### 程序下载 因为STM32WB55RGV6内部有一个M0核心的协处理器用于运行蓝牙协议栈,还需要单独对其下载程序,需使用ST官方提供的STM32CubeProgrammer配合STLink进行,具体步骤网上可查阅,所需的文件放在/bin/BLE目录下。 目前新生产的WB55有概率默认刷的就是蓝牙固件,则不需要上述过程,直接烧录用户程序即可。 ### 关于外壳 外壳分面板和3D打印两部分,其中面板在立创定制的可直接使用Panel.epanm的生产文件,选亚克力0.8mm厚度无背胶正面打印工艺即可,其他商家则使用svg和pdf文件去沟通。 打印部分直接上传stl文件就行,立创定制的可以选一个喷漆细磨,会好看不少。 ### 关于颜色 主要是屏幕颜色和数码管颜色,由于OLED优势本就是阳光下可见,所以无论白色、黄色还是蓝色均可,但数码管不行,绿色数码管在白天不易看清,蓝色居中,还是红色在白天是最清晰的,根据情况自行选择吧。 ### 其他注意事项 本仓库为该码表第一版软硬件,目前蓝牙功能仅用于连接电子变速器,手机端App还待完善,硬件上已经能在手机端使用蓝牙助手连接码表并通信。 ### 开源项目引用 SimpleGUI:https://gitee.com/Polarix/simplegui FATFS:http://elm-chan.org/fsw/ff/00index_e.html