1. 什麼是 MaixPy
MaixPy 是將 Micropython 移植到 K210( 一款64位雙核帶硬件FPU和卷積加速器的 RISC-V CPU, ) 的一個項目, 支持 MCU 常規操作, 更集成了機器視覺和麥克風陣列, 以快速開發具有極低成本和體積實用的 AIOT
領域智能應用。
MicroPython 是基於 Python3 的語法做的一款解析器,包含了 Python3 的大多數基礎語法, 主要運行在性能和內存有限的嵌入式芯片上。(注意 Micropython 不包含 Python3 的所有語法)
K210 在硬件上集成了機器視覺和機器聽覺能力, 是一款定位 AI 和 AIOT 市場的SoC,同時也是一顆方便的MCU, 性能強勁的同時卻有着極低的價格。
Micropython 讓我們在 K210 上編程更加簡單快捷, 我們也將源代碼開源在 github 上。
比如我們需要尋找I2C總線上的設備,只需要使用如下代碼即可實現:
from machine import I2C
i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
devices = i2c.scan()
print(devices)
同樣,我們需要實現一個呼吸燈,只需要如下代碼:
from machine import Timer,PWM
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)
2. Maix Camera能做哪些事
大多數是在 MaixPy 上已經有 API, 部分可能來自 Maixduino 或者其它開發者~
- 人臉檢測
- MobileNet 物體識別
- tiny yolov2 20分類
- 識別顏色值、找形狀、找直線、面部識別等
- MNIST 手寫數字識別
- Feature map 顯示
- 視頻播放和錄製
- NES 遊戲模擬器 (FC 紅白機)
- GBA 遊戲模擬器
- 遊戲 Quake I
- 遊戲 Doom
- MMD 3D 實時渲染
- GUI 界面 littlevGL
- 雲臺臉部跟蹤
- 麥克風陣列
- FFT 頻譜圖
3. 移植了OpenMV的機器視覺庫
支持單目攝像頭和雙目攝像頭,傳感器模塊,進行攝像頭配置及圖像抓取等,用於控制開發板攝像頭完成攝像任務。
DIY相關的項目製作,比如追蹤小球的車,雲臺,或者解魔方的機器人。
對成本要求很高的嵌入式工業方案,比如流水線物品的分揀。
視頻錄製、視頻播放、音頻錄製、音頻播放、人臉識別、人眼追蹤、特徵檢測等等,大量的圖像處理功能
4.最簡單的攝像頭圖像例程
例程說明:實時採集並顯示圖像在TFT屏上,並獲取和顯示實時幀數
import sensor
import image
import lcd
import time
clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick()
img = sensor.snapshot()
fps =clock.fps()
img.draw_string(40,2, ("%2.1ffps" %(fps)), color=(128,0,0), scale=2)
lcd.display(img)
5.MaixCAM攝像頭模塊