Monica 智能手表基于樂(lè)鑫 EPS32-S3 開(kāi)發(fā)板,配置1.8寸LED 顯示屏,采用 Mooncake UI 框架開(kāi)發(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:簡(jiǎn)單的 Key-Value (鍵-值) 內(nèi)存數(shù)據(jù)庫(kù)框架,實(shí)現(xiàn)兩層的數(shù)據(jù)交互。使用鍵(Key)索引數(shù)據(jù),切斷應(yīng)用層和驅(qū)動(dòng)層的數(shù)據(jù)耦合。
Lvgl: 使用 Lvgl 作上層應(yīng)用默認(rèn)圖形庫(kù),及其文件系統(tǒng)接口
驅(qū)動(dòng)層
HAL:外設(shè)驅(qū)動(dòng)的對(duì)象抽象
Hardware Manager:硬件管理層。負(fù)責(zé)底層的 硬件初始化、運(yùn)行時(shí)的 狀態(tài)維護(hù)更新,例如自動(dòng)睡眠、抬手喚醒、計(jì)步器更新等
USB MSC 模式:為了讀寫(xiě) SD 卡方便,同時(shí)按 電源 和 下 按鍵啟動(dòng)時(shí),會(huì)進(jìn)入 USB MSC 模式,SD 卡會(huì)被掛載成 U盤(pán),接上 USB 即可直接讀寫(xiě)
應(yīng)用層
App 基類(lèi)、安裝卸載框架:所有 App 的對(duì)象基類(lèi),描述了 App 的基礎(chǔ)框架。安裝卸載框架實(shí)現(xiàn)簡(jiǎn)單的 App 列表管理
App 生命周期管理:支持前后臺(tái)的 App 運(yùn)行生命周期 調(diào)度器 (單線(xiàn)程,單前臺(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)畫(huà) 和 啟動(dòng)器 會(huì)被 Framwaork 框架特殊調(diào)用
用戶(hù)自定義表盤(pán)
watch_faces 目錄下的每一個(gè)文件夾都視作一個(gè)表盤(pán)
background 目錄:存放表盤(pán)背景資源 (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 外殼模型