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ū)動層解耦:
SimpleKV:簡單的 Key-Value (鍵-值) 內(nèi)存數(shù)據(jù)庫框架,實(shí)現(xiàn)兩層的數(shù)據(jù)交互。使用鍵(Key)索引數(shù)據(jù),切斷應(yīng)用層和驅(qū)動層的數(shù)據(jù)耦合。
Lvgl: 使用 Lvgl 作上層應(yīng)用默認(rèn)圖形庫,及其文件系統(tǒng)接口
驅(qū)動層
HAL:外設(shè)驅(qū)動的對象抽象
Hardware Manager:硬件管理層。負(fù)責(zé)底層的 硬件初始化、運(yùn)行時的 狀態(tài)維護(hù)更新,例如自動睡眠、抬手喚醒、計(jì)步器更新等
USB MSC 模式:為了讀寫 SD 卡方便,同時按 電源 和 下 按鍵啟動時,會進(jìn)入 USB MSC 模式,SD 卡會被掛載成 U盤,接上 USB 即可直接讀寫
應(yīng)用層
App 基類、安裝卸載框架:所有 App 的對象基類,描述了 App 的基礎(chǔ)框架。安裝卸載框架實(shí)現(xiàn)簡單的 App 列表管理
App 生命周期管理:支持前后臺的 App 運(yùn)行生命周期 調(diào)度器 (單線程,單前臺,多后臺) ,使用 狀態(tài)機(jī) (FSM)實(shí)現(xiàn)
系統(tǒng)內(nèi)置 APP:都是在 App 層之上實(shí)現(xiàn)的應(yīng)用,但 啟動動畫 和 啟動器 會被 Framwaork 框架特殊調(diào)用
用戶自定義表盤
watch_faces 目錄下的每一個文件夾都視作一個表盤
background 目錄:存放表盤背景資源 (png、gif)
number 目錄:存放從0~9的時間數(shù)字資源 (png)
face.json :資源描述文件,如時間數(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 外殼模型