草庐IT

Maix Bit(K210)保姆级入门上手教程---环境搭建

Silent Knight 2023-05-20 原文

Maix Bit(K210)快速上手系列—环境搭建

Maix Bit(K210)保姆级入门上手教程—外设基本使用

Maix Bit(K210)保姆级入门上手教程—自训练模型之云端训练

这是K210快速上手系列文章,主要内容是,设备连接,环境准备,运行第一个程序

阅读文章前提:python基础,K210是使用Micropython脚本语法的,因此需要一些python基础,如果无python基础,可以先去学习。


文章目录


一、简介

1、K210是什么?

K210是一款 64 位双核带硬件 FPU、卷积加速器、FFT、Sha256 的 RISC-V CPU 的;我们使用的是MaixPy( Micropython 移植到 K210的项目),所以学习是是需要python基础的。

2、Maix Bit是什么?

Maix Bit是一款基于K210的最小系统版,系统引脚全部引出,上手的话推荐这个,主要是便宜。
官网购买链接

3、MaixPy能做什么?

上面说了,我们是使用MaixPy来操作K210款芯片的,MaixPy是使用Micropython,语法的。从Micropython,就可以知道我们操作是使用python来进行操作的,python语法简单,容易上手。因此基于MaixPy的项目,能迅速上手,而且容易理解语法简单。

我们已经理解了,MaixPy简单容易上手,那么到底能做什么呢?

MaixPy支持常规MCU操作+AI硬件加速+麦克风阵列算法,而且算力很高(高达 1TOPS 算力核心模块),适合AIOT领域的应用。说人话就是,它可以搞MCU的东西,比如ADC、GPIO、PWM等操作,也可以搞图像识别,可以跑YOLO算法,人脸识别等,也可以搞声音处理,对声波进行过滤等。使用MaixPy最重要是上手简单快速,这个是它最大的优势。

当然也可以不使用它,可以使用C语言进行开发,使用官方的SDK即可。
K210官方SDK

4、简单感受MaixPy的便捷和快速上手

普通MUC使用C语言操作I2C(基于STM32 HAL库)

// I2C初始化

#include "i2c.h"

I2C_HandleTypeDef hi2c1;

void MX_I2C1_Init(void)
{
  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 400000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
  hi2c1.Init.OwnAddress1 = 0;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    Error_Handler();
  }

}

void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(i2cHandle->Instance==I2C1)
  {

    __HAL_RCC_GPIOB_CLK_ENABLE();

    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    __HAL_RCC_I2C1_CLK_ENABLE();
  }
}

void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
{

  if(i2cHandle->Instance==I2C1)
  {

    __HAL_RCC_I2C1_CLK_DISABLE();

    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);

    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
  }
}

Maix Bit操作I2C

# 内容来自官网文档
from machine import I2C                          # 导入内置库
# I2C初始化
i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29) # 定义一个I2C对象, 使用I2C0, 频率100kHz,SCL引脚是IO28, SDA 引脚是IO29
devices = i2c.scan()                             # 调用函数扫描设备
print(devices)                                   # 打印设备

使用Python一句话就可以初始化I2C,进行使用了,而C语言需要很多语句,可以说十分的便捷了

二、Maix bit硬件

1、Maix bit需要用到的基本硬件

主板+2.4寸屏幕+摄像头+数据线+内存卡+读卡器

注意:官方标配并没有内存卡、数据线和读卡器,需要自己在官网上买

这个是官方推荐标配:

2、Maix bit硬件接线

注意,没接好线前,不要上电。接线的注意如下图已经标出,如图接线即可。

有一点非常需要注意:摄像头下面两端都需要装好螺丝和螺母,且摄像头底部不能接触到芯片,否则芯片可能会烧掉。

3、测试Maix Bit硬件

安装好就可以上电测试了,测试主要测试摄像头和屏幕正常不正常(这时候不需要装SD卡)

一开始上电正常

按下RESET键后迅速按下BOOT键一段时间,进入测试阶段,
测试可以扭动摄像头头部,这里可以手动对焦。

三、环境准备

1.github加速器

这个是必备的,因为我们需要访问github去下载源码,而国内访问github不使用加速器普遍比较慢,甚至不能访问,这里推荐一个加速器,最重要是免费和操作简单。

加速器链接

加速器基本使用,点击exe文件运行,然后点击设置

选择GITHUB加速选项,然后保存设置

点击重启后端即可正常访问github

2.驱动安装

新版用Maix Bit的使用的驱动是CH552,安装新版的就行,不必安装ch340 ch341 驱动

驱动下载链接


驱动安装:解压后,右键选择安装

驱动安装参考文章

3.固件下载

我们从一开始测试板子的时候就可以知道,已经是有默认的固件了,但是需求不一样,用到的固件不一样。我们需要学会如何去下载固件。

a:固件本体

一般有这几类固件,我们需要下载最新和最全那个

固件下载链接
这里下载第15个,第15个是拿到板子默认的那个。在readme.txt有不同版本固件的描述

参考资料

b:安装固件软件

安装固件,我们需要用到kflash_gui软件,下载最新的即可。这里需要访问github,记得使用加速器加速(上面有加速器的下载和使用)

kflash_gui下载链接

c:安装固件

选择下载的固件,我这里下载的是V0.6.2和默认固件版本是一样的,所以屏幕显示和测试时候屏幕显示一样
端口选择:带USB的那个
其他选项默认即可

3.mpfs串口工具

我们需要与开发板进行连接,而我们安装的驱动的CH552,也就是串口驱动,我们能够通过它与开发板上的串口进行通信。

有了驱动,还需要一个向驱动发送数据的工具,就是串口工具,这里使用mpfs,使用命令行进行下载

a.mpfs串口工具下载

命令:pip install mpfshell-lite	

b.mpfs连接串口

输入命令mpfs即可看到有什么串口就可以进行操作

命令:mpfs

使用open COMX,即可连接到相应的串口

命令:open

这里我COM9就Maix Bit所在串口(有输出提示,USB Serial Port),命令行输入open COM9就连接到开发板了

第一个命令:
hello world

命令:exec print

4、普通串口工具使用

这里建议使用MobaXterm,使用它可以直接使用串口进行连接到开发板。使用普通串口工具作用就相当于使用python的命令行,类似PC端上使用python命令行,连接上一样是有>>>和能够使用python语法

类似下图

MobaXterm下载链接,下载免费的就够用了

安装好,连接上我们的开发板,这里COM9是开发板的端口,波特率115200

连接到开发板之后就会用>>>,我们就直接可以使用python语法进行操作了

直接使用print就可以打印东西,还可以使用help()查看有上面操作

5.串口工具连接不上的问题的解决

a:固件没刷好

解决方案一:重刷固件

b:驱动没装好

解决方案二:可能是串口驱动没装好或者不是新版的Maix Bit,是旧版用的CH340,CH341。这里可以通过查看设备管理器进行查看

这个是安装成功的样子,有USB Serial Port(带麦克风,新版的Maix Bit)

c:Python本身正在运行程序,一般是boot.py文件中(开机自动运行的程序)有死循环,而且没有休眠的操作

默认程序就是这样,这种情况下,一般是IDE能连接上串口(详细怎么使用IDE连接串口,看文章往下看,具体有怎么使用IDE连接到开发板),需要将默认的程序中的死循环去除,发送到开发板的boot.py文件


发送操作如下,记得把while True 去除


一般完成这个就可以通过mpfs进行连接了

d:串口被不知名进程占用

需要清楚注册表或者重启,一般清楚注册表就可以了

操作如下:打开命令行,输入regedit

找到目录:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\Devices,然后删除注册表(删除已经安装好CH552的串口,设备管理器中能查看),我这里是COM9,右键COM9,点击删除即可,然后重新拔插USB

6.MaixPy IDE下载

下载最新的exe文件安装即可
IDE下载

安装完成界面:

四、第一个程序

1、使用串口调试助手运行第一个程序

使用到的命令参考
我们直接使用串口调试助手在板子运行第一个程序

首先我们在任意位置需要创建一个py文件,内容:

print("hello world")

获取py文件位置:

将串口调试助手的工作目录切换到刚刚定位创建py的目录:

命令:lcd C:\Users\13029\Desktop\Temp\Graduation_Design\MaixPy

将文件上传到开发板:

命令:put ts.py

运行程序:

命令:execfile ts.py

2、MaixPy IDE 运行第一个程序

将默认程序注释,只留下我们的print程序,这里运行的程序是一次性的,关机就没有了。具体想要永久将文件存放到开发板和选择开机启动程序,可以使用mpfs或者IDE发送文件到开发板

# 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

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.
'''
print("hello world")


在工具栏中选择相应的开发板:

利用IDE连接串口:

连接成功后,点击绿色的运行按钮,开发板将运行IDE中的程序,并会在调试助手输出相应信息。会输出hello world 和固件信息

四、总结

至此,我们已经成功上手了Maix Bit这款板子,比较麻烦就是开发环境的搭建。搭建好环境,我们就能通过串口调试助手或者IDE去运行我们的第一个程序

五、参考资料

MaixPy文档简介
MaixPy精选文章
Maix Bit资料下载
Maix Bit入门视频
K210官方SDK
Sipeed开源社区
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

有关Maix Bit(K210)保姆级入门上手教程---环境搭建的更多相关文章

  1. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  2. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  6. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  7. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  8. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  9. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  10. ruby-on-rails - ruby gem如何在rails环境下工作 - 2

    我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge

随机推荐