《開源精選》是我們分享Github、Gitee等開源社群中優質專案的欄目,包括技術、學習、實用與各種有趣的內容。本期推薦的是一個智慧硬體專案:支援離線地圖和軌跡記錄的GPS腳踏車車速表——X-TRACK。
X-TRACK 是由 FASTSHIFT 設計製作的一款開源GPS腳踏車碼錶。其支援離線實時地圖顯示,支援記錄和顯示實時軌跡以及匯出標準GPX格式的軌跡檔案。
功能
- 支援速度、距離、時間、加速度、航向顯示
- 離線地圖,支援實時顯示,支援縮放
- 支援計步
- 支援經緯度、海拔高度
- 支援RTC自動根據GPS恢復
- 支援記錄軌跡,可匯出GPX格式的檔案
- 支援掉電自動儲存資料(JSON格式檔案)
- 四小時漫長(持續工作,始終亮屏)
- 支援在PC模擬,脫離硬體除錯(配置為Release x86 )
- 支援實時顯示
硬體配置
- 主控:AT32F403ACGU7(主頻:240MHz RAM:224KB ROM:1MB)
- 螢幕:ST7788 IPS 1.5inch SPI介面240x24049解析度60Hz重新整理率
- 儲存器:Micro SD CARD 32GB
- 輸入裝置:旋轉編碼器
- RTC:MCU內建RTC時鐘
- 計算機計步:LSM6DSM(支援硬體計步輸出)
- 地磁計:LIS3MDL
- GPS:ATGM336H(BDS + GPS + GLONASS + GALILEO + QZSS + SBAS)
- 電池:鋰離子3.7V 683030 700mAh
- 電源管理:LP5907-3.3 + MCP73831
- 外殼:3D列印光固化
軟體部分
軟體開發環境分為兩部分組成,Visual Studio 和 Keil MDK :
- 底層驅動部分,使用 Keil 進行開發除錯
- 應用層程式碼基於 LVGL 模擬器執行,功能驗證完成後,燒錄到MCU
- 兩個工程複用同一套程式碼,透過 HAL 層進行驅動隔離
功能架構
X-TRACK 整體軟體架構如下圖所示,系統由 HAL、Framework 和 APP 三層組成 :
- HAL 層負責底層晶片驅動和感測器原始資料獲取
- Framework 層是軟體核心部分,包括 LVGL、頁面排程和訊息框架三個模組組成,分別負責圖圖形渲染、頁面生命週期管理和訊息分發處理
- APP 層為使用者顯示介面,由地圖、錶盤和系統資訊三個部分組成
功能演示
- 實時軌跡顯示
- 匯出歷史軌跡
- 在高鐵上也能測速
- 檢視電量、騎行記錄、GPS定位、感測器等系統資料
該專案使用GPL3.0開源協議,更多內容大家可自行前往閱讀。
開源地址:https://github.com/FASTSHIFT/X-TRACK