MaixCAM MaixPy 应用开发和应用商店

哪里找应用

开机后会自动进入应用选择界面,内置各种应用均发布在 MaixHub 应用商店, 可以在这里找到对应应用的介绍和使用说明。

哪里找源码

源码可以在应用商店应用页面看到源码链接(如果有)。
官方集成的应用源码都在 MaixPy/projects 目录 或者 MaixCDK/projects

安装应用

有几种方法:

在线扫码安装

可以先设置语言 设置 -> 语言, 以及 设置 -> WiFi

应用商店可以用来升级和安装应用,连接上可以连接互联网的 WiFi 后即可在MaixHub 应用商店扫码安装应用。

本地安装

上传应用安装包到设备,然后命令行使用app_store_cli install 安装包路径命令安装应用。
或者执行脚本 MaixPy/examples/tools/install_app.py 来安装应用, 注意修改pkg_path变量的路径。

本地扫码安装电脑上的安装包

  • 可以在电脑利用 maixtool deploy --pkg 安装包路径 起一个服务,然后在设备端的应用商店应用中扫码即可实现安装电脑上的安装包。
    需要电脑先pip install maixtool 安装 maixtool 工具。
  • 如果是使用MaixPy开发的应用,在项目根目录(包含app.yamlmain.py)执行maixtool deploy会弹出一个二维码,保持设备和电脑在同一局域网,设备使用应用商店扫描对应的局域网地址二维码就能在线安装。
  • 如果是使用MaixCDK开发的应用,在项目根目录执行maixcdk deploy也会出现二维码,保持设备和电脑在同一局域网,设备使用应用商店扫描对应的局域网地址二维码就能在线安装。

卸载应用

在设备端应用商店应用中,选择卸载应用功能即可。

另外也可以执行脚本MaixPy/examples/tools/uninstall_app.py,设置app_id变量为要卸载的应用 ID。
app_id可以执行MaixPy/examples/tools/list_app.py脚本来查看已安装应用的 ID。

应用生态简介

为了让开发板做到开箱即用,以及方便用户无门槛地使用,以及方便开发者分享自己的有趣应用,并且能有有效的渠道获取到反馈甚至是收益,我们推出了一个简易的应用框架,包括:

  • 应用商店: 开发者上传分享应用,用户无需开发直接下载使用,开发者可以获取到一定的现金收益(来自 MaixHub 官方以及用户打赏)。
  • 出厂内置大量应用: 官方提供了一些常用的应用,比如找色块、AI 物体检测追踪、找二维码、人脸识别等等,用户可以直接使用,也可以作为串口模块直接使用。
  • MaixPy + MaixCDK 软件开发包:使用 MaixPy 或者 MaixCDK 可以用 Python 或者 C/C++ 语言快速开发嵌入式 AI 视觉听觉应用,超高效率实现你的有趣想法。
  • MaixVision 配套电脑端开发工具: 全新的电脑端代码开发工具,快速上手、调试、运行、上传代码、安装应用到设备,一键式开发,甚至支持图像化积木式编程,小学生也能轻松上手。

大家可以多多关注应用商店,也可以在应用商店中分享自己的应用,大家一起共建活跃的社区。

打包应用

  • MaixVision 打包:参考MaixVision 使用文档 打包应用部分。
  • 手动打包:你也可以在项目根目录手动添加app.yaml文件,参考 Maix APP 规范, 然后执行maixtool release(MaixPy 项目) 或者 maixcdk release(MaixCDK 项目) 来打包应用。

退出应用

如果你只是写了比较简单的应用,没有做界面和返回按钮,默认可以按设备上的功能按键(一般是 USER 或者 FUNC 或者 OK 按钮)或者返回按钮(如果有这个按键,MaixCAM 默认没有这个按键)来退出应用。

应用开发基本准则

  • 因为默认都配了触摸屏幕,推荐都写一个简单的界面显示,最好有触摸交互。实现方法可以在例子里面找找参考。
  • 界面和按钮不要太小,因为 MaixCAM 默认的屏幕是 2.3寸 552x368分辨率,PPI 比较高屏幕比较小,要让手指能很容易戳到并且不会点错。
  • 每个应用实现的主要功能实现一个简单的串口交互,基于串口协议例程),这样用户可以直接当成串口模块使用,比如人脸检测应用,可以在检测到人脸后通过串口输出坐标。

设置应用开机自动启动

参考 应用开机自启

系统设置

系统设置应用里面有一些设置项,比如语言、屏幕亮度等,我们可以通过maix.app.get_sys_config_kv(item, key)来获取这些设置项的值。
比如获取语言设置项:

from maix import app
locale = app.get_sys_config_kv("language", "locale")
print("locale:", locale)

backlight = app.get_sys_config_kv("backlight", "value")
print("backlight:", backlight, ", type:", type(backlight))

这里注意,所有设置项的值都是字符串类型,使用时需要注意。

系统设置的配置被保存在/boot/configs 文件,你也可以在未开机情况下修改,不过要小心格式。
格式遵循maix_<item>_<key>=value,变量要让shell能使用,所以注意等号两边不要有空格。

文件内容示例(注意不是所有配置,具体以 /boot/configs 为准):

# All configs user can edit easily
# Format: maix_<item>_<key>=value
#         all key charactors should be lowercase
# Full supported items see documentation of maixpy at:
#      https://wiki.sipeed.com/maixpy/doc/zh/basic/app.html

### [language]
maix_language_locale=en

### [wifi]
# can be "ap" or "sta" or "off"
maix_wifi_mode=sta
maix_wifi_ssid=Sipeed_Guest
maix_wifi_passwd=qwert123
# encrypt default auto detect, you can also set it manually:
#   can be "NONE", "WPA-PSK", "WPA-EAP", "SAE"
# maix_wifi_encrypt="WPA-PSK"

### [comm] Maix comm protocol
# can be "uart" or "none"
maix_comm_method=uart

## [backlight] Screeen backlight, from 0 to 100
maix_backlight_value = 50

### [npu]
# for maixcam2, enable AI ISP(1) or not(0),
# enalbe AI ISP will get better camera quality and occupy half of NPU.
maix_npu_ai_isp=0