Monica 智能手表基于樂鑫 EPS32-S3 開發(fā)板,配置1.8寸LED 顯示屏,采用 Mooncake UI 框架開發(fā),內(nèi)置計(jì)步器、指南針、氣壓傳感。
主控:ESP32-S3,32M 外置 Flash
IMU:BMI270 + BM150 (抬手喚醒、計(jì)步器、指南針)
電源管理:AXP2101
其他:SD卡槽、RTC、蜂鳴器、MIC、氣壓傳感、按鍵
屏幕:1.8寸 Amoled 368*448
電池:402728 400毫安
Mooncake UI 框架將應(yīng)用和驅(qū)動(dòng)層解耦:
SimpleKV:簡單的 Key-Value (鍵-值) 內(nèi)存數(shù)據(jù)庫框架,實(shí)現(xiàn)兩層的數(shù)據(jù)交互。使用鍵(Key)索引數(shù)據(jù),切斷應(yīng)用層和驅(qū)動(dòng)層的數(shù)據(jù)耦合。
Lvgl: 使用 Lvgl 作上層應(yīng)用默認(rèn)圖形庫,及其文件系統(tǒng)接口
驅(qū)動(dòng)層
HAL:外設(shè)驅(qū)動(dòng)的對象抽象
Hardware Manager:硬件管理層。負(fù)責(zé)底層的 硬件初始化、運(yùn)行時(shí)的 狀態(tài)維護(hù)更新,例如自動(dòng)睡眠、抬手喚醒、計(jì)步器更新等
USB MSC 模式:為了讀寫 SD 卡方便,同時(shí)按 電源 和 下 按鍵啟動(dòng)時(shí),會(huì)進(jìn)入 USB MSC 模式,SD 卡會(huì)被掛載成 U盤,接上 USB 即可直接讀寫
應(yīng)用層
App 基類、安裝卸載框架:所有 App 的對象基類,描述了 App 的基礎(chǔ)框架。安裝卸載框架實(shí)現(xiàn)簡單的 App 列表管理
App 生命周期管理:支持前后臺(tái)的 App 運(yùn)行生命周期 調(diào)度器 (單線程,單前臺(tái),多后臺(tái)) ,使用 狀態(tài)機(jī) (FSM)實(shí)現(xiàn)
系統(tǒng)內(nèi)置 APP:都是在 App 層之上實(shí)現(xiàn)的應(yīng)用,但 啟動(dòng)動(dòng)畫 和 啟動(dòng)器 會(huì)被 Framwaork 框架特殊調(diào)用
用戶自定義表盤
watch_faces 目錄下的每一個(gè)文件夾都視作一個(gè)表盤
background 目錄:存放表盤背景資源 (png、gif)
number 目錄:存放從0~9的時(shí)間數(shù)字資源 (png)
face.json :資源描述文件,如時(shí)間數(shù)字坐標(biāo)等
watch_faces/
|
├──?AyanamiRei
│ ? ├── background
│ ? │ ? ├── background.png
│ ? ├── face.json
│ ? └──?number
│ ? ? ? ├──?0.png
│ ? ? ? ├── ~
│ ? ? ? └──?9.png
|
├──?FloatingNum
│ ? ├── background
│ ? │ ? └── background.png
│ ? ├── face.json
│ ? └──?number
│ ? ? ? ├──?0.png
│ ? ? ? ├── ~
│ ? ? ? └──?9.png
|
└──?PixelThinking
? ├── background
? │ ? ├── background.png
? ├── face.json
? └──?number
? ? ? ├──?0.png
? ? ? ├── ~
? ? ? └──?9.png
3D 外殼模型