Maix Bit、K210超详细资料【保姆级教程】【学习与上手Maix Bit这一篇文章就够啦】
介绍:K210 号称最强单片机,其最突出的特点是可以达到1TOPS算力,这是树莓派4无法比拟的,所以目前用它来做视觉方面的项目是最佳的选择。OpenMV提供了机器视觉功能最核心和最复杂的部分(包括硬件和核心算法),使用者们可以把自己的精力放在自己的想法和产品设计上,实现自己的各种创意。
了解Maix Bit及Micro Python的知识,可以访问荔枝派官网 了解嘉南科技K210芯片知识,可访问嘉南开发者社区
当然,提到机器视觉,就不得不提星瞳科技OpenMV,在资料这一方面,有较大的参考价值。 了解OpenMV例程可访问OpenMV嵌入式图像处理文档 了解MP可访问MicroPython 函数库
优势
使用Maix Hub在线训练模型,使用起来真是如虎添翼。
文章最后有k210芯片资料百度云链接。
系列例程
Maix Bit K210 MaixPy IDE 点灯 Maix Bit K210 MaixPy IDE 定时器 Maix Bit K210 MaixPy IDE 人脸识别(内有获取机器码步骤) Maix Bit K210 MaixPy IDE 识别色块(确定目标颜色) Maix Bit K210在线训练模型
Maix Bit介绍
MaixBit开发板是SiPEED公司Maix产品线的一员,基于嘉楠堪智科技的边缘智能计算芯片K210(RISC—V架构 64位双核)设计的一款AIOT开发板。开发板设计小巧精悍,板载Type—C接口和USB—UART电路,用户可以直接通过USB Type-C线连接电脑进行开发,配置128Mbit Flash、LCD、 DVP、Micro SD卡等接口并把所有IO引出,方便用户扩展。
基本外设
这是SiPEED的开发板,里面包括一个板子、屏幕、摄像头、螺丝刀,与三颗螺丝。
项目说明CPU:双核 64bit RISC-V / 400MHz (双精度FPU集成)内存:8MiB 64bit 片上 SRAM存储:16MiB Flash, 支持 micro SDXC 拓展存储 (最大128GB)屏幕(套餐):2.4 寸 TFT, 屏幕分辨率:320*240摄像头(套餐):200W 像素(实际使用 30W),0V2640 型号 M12 摄像头TF 卡槽:多媒体资源扩展,支持大容量储存
我们可以看到Maix Bit 的外设,TypeC接口、麦克风、主控芯片、LCD接口、sensor接口、CH340、一块128Mbit的Flash,板子背面还有一块内存卡槽,内存卡最大支持128G。
尺寸样式
关于引脚信息看这张图 第一列为板载IO口,Maix Bit 引出来了36个引脚,另外的12各引脚分配给了LCD、摄像头。 第三行是缺省功能,为原始固件上电默认功能。在此也可以看出,0-3号引脚上是JTAG;4、5号引脚为默认串口;12-14号是RGB灯;16号引脚是BOOT键,接了10kΩ的上拉电阻;18-20号引脚接的是麦克风;26-28号引脚是用SPI协议实现的的读写TF card功能。 第五行为IO电压,IO引脚都是3.3V,Reset引脚电压为1.8V。
更新固件
更新固件,相当于给手机装个系统,对于Maix Bit这款产品,当我们用到不同功能的时候,也许就得另装一个固件。可以说是客制版K210,我们在spieed 下载站可以找到所有版本的各类固件
我们点击一个进入 不同后缀对应的类型:
文件名说明maixpy_vx.y.z_x_xxx*.bin默认版本的 MaixPy 固件,包含了大多数功能, 支持连接 MaixPy IDEmaixpy_vx.y.z_x_xxx*_m5stickv.bin针对 M5Stickv 定制的固件, 支持连接 MaixPy IDEmaixpy_vx.y.z_x_xxx*_with_lvgl.binMaixPy 固件, 支持连接 MaixPy IDE, 带 LVGL 版本.(LVGL是嵌入式 GUI 框架, 写界面的时候需要用到)maixpy_vx.y.z_x_xxx*_minimum.binMaixPy 固件最小集合,不支持 MaixPy IDE, 不包含OpenMV的相关算法和各种外设模块maixpy_vx.y.z_x_xxx*_minimum_with_ide_support.binMaixPy 固件最小集合, 支持连接 MaixPy IDE, 不包含OpenMV的相关算法和各种外设模块(运行各种模型,建议使用这个)elf_maixpy_vx.y.z_x_xxx*.7zelf 文件,普通用户不用关心,用于死机调试face_model_at_0x300000.kfpkg人脸模型,放置在地址位 0x300000, 可以和.bin分开多次下载,与固件不冲突
上图框选内容为readme.txt,与上面表格类似,但较之丰富,相当于说明书,解答了上面不同固件之间的区别与各自支持什么功能。当然也提到了如何定制自己的固件等等。 下载好之后,接着打开 kflash_gui 应用,然后选择固件、设置选项, 点击下载即可。 使用时注意串口不能被其它软件占用,选择正确的开发板和串口号,可以适当降低波特率和使用低速模式来提高下载成功率。 点击下载,之后就可看到屏幕上面、串口打印显示出对应版本号。
编译环境MaixPy IDE
如果你熟悉STM32,那么你一定知道Keil,而Maix Bit有对应的开发工具MaixPy IDE。
首先需要弄清: MaixPy 使用 Micropython 脚本语法,所以不像 C 语言 一样需要编译,其实不用 IDE 也能愉快使用: 使用串口终端工具,前面已经安装了 使用 IDE 则会方便在电脑上实时编辑脚本并上传到开发板以及直接在开发板上执行脚本,以及在电脑上实时查看摄像头图像、保存文件到开发板等 当然, 使用 IDE 因为压缩、传输需要耗费一部分资源,所以性能会有所降低,而且如果MaixPy宕机也没有串口终端好发现问题 要使用 MaixPy IDE , 固件必须是 v0.3.1 版本以上, 否则MaixPyIDE 上会连接不上, 使用前尽量检查固件版本和 IDE 版本,都更新到最新版以保障能正常使用
下载地址
点击:下载地址,文件列表等说明 请看 最新版本文件夹下的 readme.txt 文件, 如果下载速度慢请使用 cdn 链接下载
Maix Py IDE 使用
打开 MaixPy IDE, 上方工具栏里面选择开发板的型号。amigo,cube 开发板请选择 Maixduino 进行连接。 连接成功之后,链接按钮会由绿变红;连接按钮下方是运行按钮,会执行当前编辑区的py文件;再次点击运行按钮(红色), 停止运行当前代码。
常见问题及解决方法
1.MaixPy 与 C 开发有什么异同,我该怎么选择
MaixPy 是基于 Micropython 的脚本语言, 不需要编译,在运行时解析,编写起来更简单方便,只是运行时时实性不如 C 语言。 所以如果是快速验证、新手、只会 python、头发少等都可以用 MaixPy; 追求极限性能效率或者熟悉 C ,以及对 MaixPy 的长期运行的稳定性不太有信心的都可以使用 C 语言开发
2.MaixPy IDE 无法成功连接开发板
现象: 开发板到手之后,一直无法连接 MaixPy IDE,首先检查: 检查固件是否支持 IDE, 早期的固件以及名字带minimum的固件都不支持; 检查串口是否被占用(其它软件也打开了串口); 点击连接后,不用和终端工具同时使用,否则会出现串口占用无法打开;
如果一直无法成功连接成功,再检查: 开发板型号是否选择错误; 观察开发板屏幕是否有变化,如果没有反应可能是串口选择错误; 尝试升级到最新的 master 分支固件, 以及最新的 MaixPy IDE 软件; MaixPy 版本号低于 0.5.0_v0 不支持连接 MaixPy IDE。
如果端口未被占用,IDE可以连接,串口连接按复位键可以查看打印信息,但是一直提示握手失败 连接的端口(如COM13)但是报错by’-p 3’, 这种情况,请在开发版选择中选择带MIC的板子。
3.Micro SD 卡读取不到
Micro SD 读取不到现象及解决方法: 确认 SD 能否在电脑上正常使用,如果不能即 SD 已损坏,电脑能够正常使用,读取 SD,但 MaixPy 开发板无法使用: 1.SD 卡未格式化为 MBR 分区 FAT32 格式。 2.电脑能够正常使用 SD 卡,也确认 SD 卡的磁盘格式为 FAT32,但 MaixPy 开发板依旧无法使用。 可能存在的原因:部分 SD 出厂时,sd 中没有磁盘分区表,或者磁盘分区表类型不是 MBR 解决的方法:使用第三方磁盘管理软件,将 sd 分区表类型转换为 MBR, 并且将 sd 格式格式化为 FAT32
4.使用 SD 加载文件、模型不成功
现象:我们在使用过程中可能遇到加载模型提示错误,可能存在的问题原因: sd 不兼容,挂载不成功 验证 sd 卡是否挂载方法:
import os
print(os.listdir("/"))
>>['flash'] # 没有挂载 SD 卡
>>['flash', 'sd'] # 挂载 SD 卡成功
5.为什么 IDE 上预览的摄像头图像很模糊#
K210 没有 USB 外设, 因此只能使用串口与 IDE 通信, 速度不如 USB 设备快, 因此对图片进行了压缩,如果需要看清晰的图像请在开发板的屏幕上看,或者保存成图片传到电脑查看,所以 IDE 的图像预览功能主要是给教学和演示使用, 平时建议使用屏幕, 可以使用以下代码来设置预览图质量
sensor.set_jb_quality(95)
这样就将预览图的质量设置为了 95%, 但是帧率会有明显降低
6.怎么提高摄像头帧率#
换更好的摄像头,比如 ov7740 帧率会比 ov2640 高一点。 但前提是摄像头电路必须与开发板的电路兼 容。 增加摄像头时钟频率(sensor.reset(freq=)),但是注意不要太高,太高会让画面变差。 可以自己编译源码,打开摄像头双缓冲选项(默认打开),并且 sensor.reset(dual_buff=True),帧率会有所增加,但是相应地,耗费的内存也会增加(大约为 384KiB )。
7.烧录 MaixPy 之后,MaixPy 出现无法启动#
现象:我们在使用过程中可能遇到烧录 MaixPy 之后,MaixPy 出现无法启动(表象为 无法点亮屏幕,白屏 等), 问题原因: 出现这种现象很大一部分是内部文件系统中的配置文件读取出错,或者我们设置的系统配置值(如 gc heap 值过大)出错导致系统无法启动。 解决方法:擦除文件系统(擦除全部 flash) 使用 kflash_gui 右上角选择擦除功能,然后加载MaixPy 文件系统模板,地址变成0xD00000, 长度变为3MiB,或者下载擦除固件: erase.fpkg/flash_erase_16MB.bin/erase_spiffs.kfpkg。
附件及资料
另外附上图内文件:k210 datasheet、Kendryte IDE及使用手册、 Standalone SDK编程指南的下载链接: https://pan.baidu.com/s/15V0hWCz8YqtPTjymrd1MTg 提取码: pmgk来源:Z变换