Maix Bit(K210)保姆级入门上手教程

news2024/12/25 9:12:34

Maix Bit(K210)快速上手

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

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


文章目录

  • Maix Bit(K210)快速上手
  • 一、简介
    • 1、K210是什么?
    • 2、Maix Bit是什么?
    • 3、MaixPy能做什么?
    • 4、简单感受MaixPy的便捷和快速上手
  • 二、Maix bit硬件
    • 1、Maix bit需要用到的基本硬件
    • 2、Maix bit硬件接线
    • 3、测试Maix Bit硬件
  • 三、环境准备
    • 1.github加速器
    • 2.驱动安装
    • 3.固件下载
      • a:固件本体
      • b:安装固件软件
      • c:安装固件
    • 3.串口工具
      • a.串口工具下载
      • b.连接串口
    • 3.MaixPy IDE下载
  • 四、第一个程序
    • 1、使用串口调试助手运行第一个程序
    • 2、MaixPy IDE 运行第一个程序
  • 四、总结
  • 五、参考资料


一、简介

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.串口工具

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

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

a.串口工具下载

命令:pip install mpfshell-lite	

在这里插入图片描述

b.连接串口

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

命令:mpfs

在这里插入图片描述

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

命令:open

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

第一个命令:
hello world
在这里插入图片描述

命令:exec print

3.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程序

# 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资料下载
K210官方SDK
Sipeed开源社区
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ5.0.0部署与实例

一、Idea调试1.相关配置文件在E:\rocketmq创建conf、logs、store三个文件夹。从RocketMQ distribution部署目录中将broker.conf、logback_namesrv.xml、logback_broker.xml文件复制到conf目录。如下图所示。其中logback_namesrv.xml、logback_broker.xml分别是NameServer、Brok…

纯C语言实现动态爱心(详解,初学者也能看懂)

文章目录✍动态爱心实现💖一段小故事:爱心函数的由来🎈 创建动态爱心的准备(非小白可以跳过)1.爱心字符2.对easyx库里面的基础函数的认识①initgraph函数②settextcolor、settextstyle、setbkmode、outtextxy四种函数③…

PostgresSQL数据库的使用

PostgresSQL数据库的使用 下载安装 数据类型 使用指导 数据库操作 连接控制台 psql -h <实例连接地址> -U <用户名> -p <端口号>参数描述实例连接地址RDS PostgreSQL实例的连接地址&#xff0c;本机可用localhost或者127.0.0.1用户名创建的RDS Postgre…

ES语法扩展

剩余参数 剩余参数本质 // 剩余参数的本质const add(x,y,...args)>{console.log(x,y,args);}add();add(1);add(1,2);add(1,2,3,4,5); 剩余参数的注意事项 箭头函数的参数部分即使只有一个剩余参数&#xff0c;也不能省略圆括号使用剩余参数替代arguments获取实际参数剩余…

4.Isaac Jetson Nano 入门

Isaac Jetson Nano 入门 本节介绍如何在 Jetson Nano 设备上运行 Isaac SDK 示例应用程序。 有关如何开始使用 Nano 的一般说明&#xff0c;请参阅 Jetson Nano 开发工具包入门。 文章目录Isaac Jetson Nano 入门获取 IP 地址在 Jetson Nano 上运行示例应用程序PingOpenCV 边缘…

Pytorch CIFAR10图像分类 EfficientNet v1篇

Pytorch CIFAR10图像分类 EfficientNet v1篇 文章目录Pytorch CIFAR10图像分类 EfficientNet v1篇4. 定义网络&#xff08;EfficientNet&#xff09;EfficientNet介绍EfficientNet性能比较EfficientNet的baselineEfficientNet模型混合缩放方法其他版本的EfficientNet(B1-B7)判断…

错题 3jxn (8253复杂)

A 指示型指令 C 比如 ,跟C语言的return 一样&#xff0c;可以由多条&#xff0c;但是返回的位置都是一个地方 JN NEXT RET NEXT: RET A 可以重复 EQU不可以重复 C 中断向量&#xff1a;中断服务程序的入口地址 向量中断&#xff1a;识别中断你的方法 接口 编程题&#xff…

Redis关键知识点总结

Reference: http://redis.cn用处缓存数据库分布式锁&#xff08;Redission的redlock&#xff0c;自定义的lock等&#xff09;过滤器&#xff08;布隆过滤器/增强的带计数的布隆过滤器/布谷鸟过滤器等&#xff09;大规模的计算辅助&#xff08;bitmap&#xff09;消息订阅/监听 …

PyQt5入门学习(一)【小白入门系列】

PyQt5入门学习 介绍&#xff1a;PyQt5是Python较好的图形库&#xff0c;与C的Qt不同的是PyQt5封装得较为简单&#xff0c;上手也更加的方便。下面话不多说&#xff0c;开始学习PyQt5吧&#xff01; 安装过程 安装方法有两种&#xff0c;一种是下载PyQt5最新源码进行编译安装…

初识Kafka

1.1 定义 Kafka传统定义: Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue&#xff09;&#xff0c;主要应用于大数据实时处理领域。 发布/订阅: 消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只…

[数据结构基础]二叉树——堆的概念、结构、接口函数及经典的Topk问题和堆排序问题

目录 一. 堆的概念及结构 1.1 堆的概念 1.2 堆的结构及在内存中的存储 二. 堆的主要接口函数 2.1 堆初始化函数HeapInit 2.2 堆销毁函数HeapDestroy 2.3 向堆中插入数据函数HeapPush&#xff08;以小堆为例&#xff09; 2.4 删除堆根节点数据函数HeapPop&#xff08;小…

C++ 夺冠!成为 TIOBE 2022 年度编程语言

目录&#xff1a;C夺冠—成为TIOBE2022年度编程语言一、前言二、C 摘得桂冠三、Top 10 编程语言 TIOBE 指数走势&#xff08;2002-2023&#xff09;四、历史排名&#xff08;1987-2023&#xff09;五、编程语言“名人榜”&#xff08;2003-2022&#xff09;六、说明一、前言 2…

vitepress(三):自动生成目录

上一节我们将自己的网站发布到了git pages上&#xff0c;但是现在我们需要每次更新一篇文章就重写一次目录&#xff0c;操作上十分的繁琐和不方便&#xff0c;所以我们需要一个方法去自动生成我们的侧边栏结构&#xff0c;方便我们每次只需要更新我们的项目即可。这里我们要知道…

【每日一题】【LeetCode】【第六天】【Python实现】加一

加一的解决之路 题目描述 测试案例&#xff08;部分&#xff09; 第一次 1这个很好理解&#xff0c;唯一的难点就是个位1导致的进位的问题&#xff0c;可能会只会导致十位1&#xff0c;也有像8999这样产生多次进位的情况。 为了解决进位问题&#xff0c;自己想到了第三天学…

mysql三表查询15个例子带你搞懂它

mysql三表查询30个经典案例创建三个表a、b、c表a中的数据表b中的数据表c中的数据1.查询出学习成绩70分以上的学生姓名与成绩与学科&#xff1b;2.查询姓名以mi结尾的学生姓名及其任课老师姓名&#xff1b;3.选修课名为math的学生学号与姓名;4.选修课号为C4的学生学号&#xff1…

QEMU调试Linux内核环境搭建

一个最小可运行Linux操作系统需要内核镜像bzImage和rootfs&#xff0c;本文整理了其制作、安装过程&#xff0c;调试命令&#xff0c;以及如何添加共享磁盘。编译内核源码从 The Linux Kernel Archives 网站下载内核源码&#xff0c;本文下载的版本为4.14.191&#xff0c;4.14.…

危险程度(并查集)

有 nn 种化学物质&#xff0c;编号 1∼n1∼n。 其中&#xff0c;有 mm 对物质之间会发生反应。 现在&#xff0c;要将这些化学物质逐个倒入同一个试管之中&#xff0c;具体倒入顺序不限。 我们需要计算一下试管的危险值。 已知&#xff0c;空试管的危险值为 11&#xff0c;…

【UE4 第一人称射击游戏】21-添加动态扩散准心

素材资料地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg密码&#xff1a;jlhr上一篇&#xff1a;【UE4 第一人称射击游戏】20-添加瞄准十字线本篇效果&#xff1a;步骤&#xff1a;将资源移至FPS项目文件夹内移入后发现多了一个名为“WBCro…

【web安全】——报错注入

作者名&#xff1a;Demo不是emo主页面链接&#xff1a; 主页传送门创作初心&#xff1a; 舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

如何查看sqlite数据库的 .db文件中的表的内容数据

在使用 qt 的sqlite 数据的时候,对于创建的数据库的 .db 文件的内容的查看我们可以按照下面的步骤安装工具进行查看 下载所需的sqlite 查看工具 下载:链接&#xff1a;https://pan.baidu.com/s/1KSl9w61zaEyemhR1Ir04_A 提取码&#xff1a;6666 只需要解压即可,其中安装包内…