MaixUI 基础使用指导
如何正确的食用 MaixUI 项目?
1. 为什么要开发它?它的意义和存在价值是什么?
在任何芯片下永远存在对 UI 框架的基本需求,但由于 K210 无法在支持 Ai 功能的情况下继续使用 LVGL 环境,导致 UI 失去了本来存在的意义。
也就是在不能用 QT 也不能用 LVGL 的时候,又希望能够使用 Python 编写 UI 应用,所以才诞生了基于 image 的 MaixUI UI 框架。
2. 对 MaixUI 的要求
在最新 MaixPy 固件的基础上 2020年10月7日 满足如下要求。
-
确保 MicroPython 的 GC 内存在任何时候都是使用可回收可控的。
-
确保 UI 组件代码独立,不包含在固件,可被调试修改。
-
确保系统稳定性,保证代码和硬件资源均可重入,不会出现 core dump 现象。
-
运行可重入,也就运行动态代码展示 UI 样式,类似 HTML5 / CSS 的设计。
-
Python 的异常捕获实时反馈到屏幕上,快速定位出错行。
-
UI 相关的绘制函数可被多处装饰使用,也可独立运行。
-
框架提供的所有 MicroPython 硬件驱动均可独立运行相应的单元测试。
-
框架运行时允许动态加载外部符合结构的 UI 应用,可以从 storage 或 network 上获取用户自定义应用。
所以在最基础的示例中,它将严格控制内存占用控制在 512k ~ 1M ,并将绘图性能保持 15 ~ 24fps 之间。
3. 如何食用?
来,我们从最简单的入口代码开始说起,完整的代码在这里 app_main.py 。
# This file is part of MaixUI
# Copyright (c) sipeed.com
#
# Licensed under the MIT license:
# http://www.opensource.org/licenses/mit-license.php
#
import time, gc, math, sys
try:
from core import agent, system
from dialog import draw_dialog_alpha
fr