一、关于 MaixPy#
MaixPy 是将 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) # 打印设备
Copy
同样,我们需要实现一个呼吸灯,只需要如下代码:
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)
Copy
实时拍照:
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)
Copy
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
Copy
please read doc before run it!
三、这篇文档的内容#
所有关于 MaixPy 的内容, 包括:
如何选择并得到一款合适自己的模块或者开发板
如何开始上手使用
库和接口(API)文档查询
详细的一步一步手把手教程
来自社区的分享(教程或开源项目)
为了在学习过程中避免遇到难以解决的问题,请务必按照左边目录结构从上到下阅读,特别是写在前面的章节,不要跳过
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !