MaixPy-v1 文档简介

新版 MaixPy (v4) 已经上线, 完整 Python3 支持,功能更强大, 请看: wiki.sipeed.com/maixpy
全新硬件产品 MaixCAM,性能大升级,请看: https://wiki.sipeed.com/maixcam

Maix-I K210 系列正在被逐渐淘汰,如果你正准备购买 K210, 请立刻选择 MaixCAM;
也欢迎 K210 用户升级到 MaixCAM

本文档中(https://wiki.sipeed.com/soft/maixpy/zh/ 路径下)的所有 MaixPy 均代指 MaixPy-v1






maixpy ​​logo
sipeed logo micropython logo

关于 MaixPy-v1

MaixPy-v1(后文直接用 MaixPy 代之,注意与 MaixPy v4 区分) 是将 Micropython 移植到 K210(一款 64 位双核带硬件 FPU、卷积加速器、FFT、Sha256 的 RISC-V CPU ) 的一个项目; MaixPy 不但支持 MCU 常规操作, 还集成了硬件加速的 AI 机器视觉和麦克风阵列相关的算法。相应的高达 1TOPS 算力核心模块却不到¥50, 凭借着快速开发和较低成本与其较小的体积很适合 AIOT 领域智能应用

MicroPython 是基于 Python3 的语法做的一款解析器,包含了 Python3 的大多数基础语法, 主要运行在性能和内存有限的嵌入式芯片上。(注意 Micropython 不包含 Python3 的所有语法)

MaixPy 让我们在 K210 上编程更加简单快捷, 我们也将源代码开源在 github 点我跳转

使用 MaixPy 可以做很多有趣的事情, 具体可以 看这里

简洁的代码实例

比如我们需要扫描 I2C 总线上的设备,不需要复杂的开发环境和工程,只需要通过串口发送如下代码即可实现:

from machine import I2C                          # 导入内置库

i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29) # 定义一个I2C对象, 使用I2C0, 频率100kHz,SCL引脚是IO28, SDA 引脚是IO29
devices = i2c.scan()                             # 调用函数扫描设备
print(devices)                                   # 打印设备

同样,我们需要实现一个呼吸灯,只需要如下代码:

board_info 与板卡相关,不同板卡配置不同,使用前需要手动配置

from machine import Timer,PWM
from board import board_info
import time

tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
ch = PWM(tim, freq=500000, duty=50, pin=board_info.LED_G)
duty=0
dir = True
while True:
    if dir:
        duty += 10
    else:
        duty -= 10
    if duty>100:
        duty = 100
        dir = False
    elif duty<0:
        duty = 0
        dir = True
    time.sleep(0.05)
    ch.duty(duty)

实时拍照

import sensor
import image
import lcd

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
while True:
    img=sensor.snapshot()
    lcd.display(img)

AI 物体检测:

import KPU as kpu
import sensor

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))

model = kpu.load("/sd/mobilenet.kmodel")  # load model
while(True):
    img = sensor.snapshot()               # take picture by camera
    out = kpu.forward(task, img)[:]       # inference, get one-hot output
    print(max(out))                       # print max probability object ID

please read doc before run it!

这篇文档的内容

所有关于 MaixPy 的内容, 包括:

  • 如何选择并得到一款合适自己的模块或者开发板
  • 如何开始上手使用
  • 库和接口(API)文档查询
  • 详细的一步一步手把手教程
  • 来自社区的分享(教程或开源项目)

为了在学习过程中避免遇到难以解决的问题,请务必按照左边目录结构从上到下阅读,特别是写在前面的章节,不要跳过

可以运行MaixPy的开发板

首先我们需要选择一款适合自己的开发板,各个型号的 MaixPy 型号请点击:开发板与配件选购指南,同时目录下也有对应开发板的硬件参数和资料

要获得这些板子,可以访问Sipeed(矽速)官网www.sipeed.com,或者官方淘宝店

MaixPy 源码

MaixPy 源码是指 运行在 K210 上的 Micropython 语法解析器, 使用 C语言 编写, 源码托管在 github, 如果只是想使用 MaixPy,不需要了解源码, 但是也欢迎给 MaixPy 项目一个 star ;

如果想参与开发 MaixPy 的内置功能,可以下载进行开发,欢迎大家提交 PR

本项目主要由 ©Sipeed Co.,Ltd. 维护, 并接受来自开源社区的贡献, 具体贡献这见贡献者列表

反馈

关于本文档或者功能或者源码方面的问题,也欢迎提交issue:

交流

有问题尽量到上面的反馈地址提交issue,方便留下记录,其他人也可以查阅,提交前搜索一下是否有人提过相同问题

也可以去论坛发帖交流,方便按他人查询类似问题。

以下交流方式提供辅助:

交流方式 地址
issue https://github.com/sipeed/MaixPy-v1issues
BBS https://bbs.sipeed.com
MaixPy AI QQ 交流群 862340358
MaixPy AI QQ 交流群(六群) 636551897
telgram https://t.me/sipeed
E-mail(商业合作) email
网站导航 地址
MaixPy 唯一官方文档官网 中文站: wiki.sipeed.com
MaixPy 例程仓库 github: github/maixpy_script
国内:gitee/maixpy_scripts
MaixPy 源码 github: MaixPy
开发板资料下载 dl.sipeed.com
Sipeed WIKI wiki.sipeed.com