MicroPython 是 Python 3 语言的精简实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。

MicroPython是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。 MicroPython努力与普通的Python(称为CPython)尽可能兼容,这样如果你了解Python就已经知道了MicroPython。另一方面,您对MicroPython的了解越多,您在Python中的表现就越好。除了实现一系列核心Python库之外,MicroPython还包括用于访问低级硬件的“机器”等模块。
McrioPython的优势是什么?在MicroPython出世之前,单片机嵌入式大部分都是用C/C++语言开发的,还要了解各种寄存器知识。拿STM32来说,控制一个引脚,光定义就一堆,刚入门的新手用起来头大。MicroPython它干了啥事呢?它就是把那些C语言封装起来了,让用户可以用Python的语法去调用,这样会让之前从事Python开发工作的人快速进行单片机,同时也方便刚入门的新手学习,毕竟掌握Python比掌握C语言来的更简单和快捷。
目前AI人工智能是当下社会发展的主流,MicroPython的出现是一个时机,让很多像我这样的零基础的初学者,也有可以能自己做智能小车,或者尝试简单机器人,学习智能硬件,它比C语言学习更简单,更适合加入人工智能教育,人人都可以学编程,写程序,由此可以看出MicroPython未来市场前景是非常大的,是比Arduino更强大、更容易编程的开发系统平台。

MaixPy是将MicroPhon 移植到K210芯片的一个项目,支持MCU(比如这里做实验的Maixduino开发板)的常规操作,集成了机器视觉和麦克风等系列,是可以快速开发,成本极低,体积实用的AIOT(人工智能+物联网)领域智能应用优化平台,相关源代码在github。Maixpy 的目的是让 AIOT 编程更简单, 基于 Micropython 语法,运行在一款有着便宜价格的高性能芯片 K210 上。
勘智K210这款芯片由著名的矿机公司嘉楠科技基于RISC-V架构进行研发设计,可根据业务场景需求扩展基础指令,具备较强的可编程能力。同时,勘智K210具备机器听觉与机器视觉两种能力,可以灵活适配人脸识别、目标检测、语音唤醒及识别等场景,是国内ASIC领域为数不多保持一定通用性的芯片。作为嘉楠科技自主研发的边缘侧AI芯片,勘智K210兼具高能耗比和灵活性。
在算力方面,勘智K210可在0.3W的条件下提供1TOP的算力支持,充分适配在多数业务场景中低功耗约束下的算力需求。在芯片集成度方面,勘智K210采用视听一体化设计。在机器视觉上,芯片基于自主研发的神经网络加速器KPU,可完成基于神经网络的图像分类任务,进行人脸识别与检测,以及实时获被检测目标的分类。在听觉能力上,芯片自带APU语音处理单元,最高可支持8路音频数据及16个方向,无需占用CPU即可实现声源定向、声场成像、波束形成、语音识别与唤醒等功能。
在算法定制化方面,勘智K210在可编程能力上呈现出更高的灵活性。首先,相比ARM等架构,勘智K210采用RISC-V架构,拥有更强的可定制化能力,便于开发者根据具体应用场景定制算法。其次,芯片搭载FPIOA现场可编程IO阵列,支持TensorFlow、Keras、Darknet、Paddle和Caffe等主流AI编程框架,以及全面的开发文档,对开发者十分友好。
此外,该芯片内置64位双核处理器架构,分为计算核与应用核,能够为开发者提供足以应对复杂业务场景的计算资源。勘智K210可在仅为0.3W的功耗约束下提供1TOPS算力,能耗比优异。

目前对于嵌入式应用来说,较成熟的视觉识别方案大致为以下三种:
提示:TOPS(Tera Operations Per Second),1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。KPU是K210芯片内部的一个神经网络处理器(Neural Network Processor),它是专为低功耗环境下实现机器视觉和深度学习任务而设计的。
由于第一次搞这个方向,这里还是选用保险点的国产K210 了,他在性能上比 openmv 强,但是他的软件库要比 openmv 落后不少,有些能在 openmv 上执行的语句在 K210 上是执行不了的,不对对于找色块对它来说就是小菜一碟。了解了如何获取到色块中心坐标后,就再运行一下他提供的串口例程然后修改它让他可以传输色块的中心坐标,可以用串口助手在电脑上收到 k210 发送过来的色块坐标信息后基本就可以了。
01 Studio CanMV-K210 AI+lOT ESP32视觉听觉开发套装:

首先用数据线连接连接K210板子,在设备管理器里观察是否找到设备。

官方提供的MaixPy IDE标准界面:

打开IDE,选择开发板,确定连接电脑串口(不同电脑串口号并不相同)

测试运行,hello world!


# Hello World Example
#
# Welcome to the MaixPy IDE!
# 1. Conenct board to computer
# 2. Select board at the top of MaixPy IDE: `tools->Select Board`
# 3. Click the connect buttion below to connect board
# 4. Click on the green run arrow button below to run the script!
print('hello world')
运行结果:
hello world
MicroPython v0.6.2-84-g8fcd84a58 on 2022-08-26; Sipeed_M1 with kendryte-k210
Type "help()" for more information.
>>>
第一个maxipy程序。
# Hello World Example
#
# Welcome to the MaixPy IDE!
# 1. Conenct board to computer
# 2. Select board at the top of MaixPy IDE: `tools->Select Board`
# 3. Click the connect buttion below to connect board
# 4. Click on the green run arrow button below to run the script!
import sensor, image, time, lcd
import gc
lcd.init(freq=15000000)
sensor.reset() # Reset and initialize the sensor. It will
# run automatically, call sensor.run(0) to stop
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000) # Wait for settings take effect.
clock = time.clock() # Create a clock object to track the FPS.
while(True):
clock.tick() # Update the FPS clock.
img = sensor.snapshot() # Take a picture and return the image.
lcd.display(img) # Display on LCD
print(clock.fps()) # Note: MaixPy's Cam runs about half as fast when connected
# to the IDE. The FPS should increase once disconnected.
gc.collect() #调用垃圾回收程序释放内存
