视频介绍:https://www.bilibili.com/video/BV1AP411Q7dk
硬件开源:https://oshwhub.com/eedadada/monica
['0x34', 0x38, '0x51', '0x68', '0x77']
I2C 7位地址 | IC | 备注 |
---|---|---|
0x34 | AXP2101 | 电源管理 |
0x38 | FT3168 | 需要禁用 monitor 模式 |
0x51 | PCF8563 | RTC |
0x68 | MPU | BMI270 运动传感器 (BMI2_I2C_PRIM_ADDR) |
0x77 | BMP280 | (0x76) 气压传感器 (BMP280_I2C_ADDRESS_1) |
-
icons:
-
https://www.freepik.com/author/freepik/icons/flat-circular-flat_9?t=f
-
https://lottiefiles.com/animations/a-botanical-wreath-loading-CJUS86nLib
- 主控:ESP32-S3,32M 外置 Flash
- IMU:BMI270 + BMM150 (抬手唤醒、计步器、指南针)
- 电源管理:AXP2101
- 其他:SD卡槽、RTC、蜂鸣器、MIC、气压传感、按键
- 屏幕:1.8寸 Amoled 368*448
- 电池:402728 400毫安
- 单面四层0.8MM,元件比较密集
- 1.27MM 母座用于下载和 USB 连接
- 引出串口和 I2C 接口等,预留用于底板拓展
- SimpleKV:简单的
Key-Value (键-值)
内存数据库框架,实现两层的数据交互。使用键
(字符串) 索引数据,切断应用层和驱动层的数据耦合。 - Lvgl: 使用 Lvgl 作上层应用默认图形库,及其文件系统接口
因此,只要设备适配 Lvgl ,就可以直接使用这套 Mooncake UI框架,如 Linux :
- HAL:外设驱动的对象抽象
- Hardware Manager:硬件管理层。负责底层的
硬件初始化
、运行时的状态维护更新
,例如自动睡眠、抬手唤醒、计步器更新等 - USB MSC 模式:为了读写 SD 卡方便,同时按
电源
和下
按键启动时,会进入USB MSC 模式
,SD 卡会被挂载成 U盘,接上 USB 即可直接读写
-
App 基类、安装卸载框架:所有 App 的对象基类,描述了 App 的基础框架。安装卸载框架实现简单的 App 列表管理
-
App 生命周期管理:支持前后台的 App 运行生命周期
调度器
(单线程,单前台,多后台) ,使用状态机
(FSM)实现 -
系统内置 APP:都是在 App 层之上实现的应用,但
启动动画
和启动器
会被Framwaork
框架特殊调用
watch_faces 目录下的每一个文件夹都视作一个表盘
- background 目录:存放表盘背景资源 (png、gif)
- number 目录:存放从0~9的时间数字资源 (png)
- face.json :资源描述文件,如时间数字坐标等
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
存在问题:
- 目前模型只能选激光烧结,树脂打印会有缝
- 按键位置有偏移,需要按靠上部位