AI硬件2——SIPEED MaixCube(Kendryte K210)基础使用

news2025/2/26 17:58:12

系列文章目录

官方网站
开发文档


文章目录

  • 系列文章目录
  • 前言
  • 一、特点介绍
    • 1、MaixPy
    • 2、KPU
    • 3、MaixPy IDE
    • 4、kmodel
  • 二、环境准备
    • 1、USB 驱动安装
      • 1)Linux
      • 2)Windows
    • 2、更新固件
    • 3、串口工具
      • 1)连接硬件
      • 2)Windows串口工具
      • 3)MaixPy IDE串口工具
      • 4)Linux串口工具
    • 4、简单测试
      • 1)实时屏幕连接摄像头进行拍摄


前言

SIPEED MaixCube(Kendryte K210)官方网站和开发文档

MaixCube嵌入式集成了摄像头、TF卡槽、用户按键、TFT显示屏、锂电池、扬声器麦克、扩展接口等, 用户可使用 Maix Cube 部署一些轻轻轻轻轻量级AI项目, 同时还预留开发调试接口, 也能将其作为一款功能强大的 AI 学习开发板。

在这里插入图片描述

在这里插入图片描述

一、特点介绍

1、MaixPy

MaixPy 是将 Micropython 移植到 K210(一款 64 位双核带硬件 FPU、卷积加速器、FFT、Sha256 的 RISC-V CPU ) 的一个项目; MaixPy 不但支持 MCU 常规操作, 还集成了硬件加速的 AI 机器视觉和麦克风阵列相关的算法。相应的高达 1TOPS 算力核心模块却不到¥50, 凭借着快速开发和较低成本与其较小的体积很适合 AIOT 领域智能应用。

2、KPU

在电脑上使用AI模型,通常是使用专用的图像加速卡即 GPU 来加速图形计算。

在一些嵌入式上则使用类似的AI硬件XPU,例如GPU, TPU, DPU, NPU, BPU等。

在 K210 上也有专门的硬件叫做 KPU 。

下面就来科普一下这些所谓的“XPU”

CPU全称:Central Processing Unit, 中央处理器;

GPU全称:Graphics Processing Unit, 图像处理器;

TPU全称:Tensor Processing Unit, 张量处理器;

DPU全称:Deep learning Processing Unit, 深度学习处理器;

NPU全称:Neural network Processing Unit, 神经网络处理器;

BPU全称:Brain Processing Unit, 大脑处理器。

回归正题:

KPU 实现了 卷积、批归一化、激活、池化 这 4 种基础操作的硬件加速, 但是它们不能分开单独使用,是一体的加速模块。

3、MaixPy IDE

一个类似openmv IDE的IDE,在MaixPy 中是使用 Micropython 脚本语法,所以不像 C 语言 一样需要编译,其实不用 IDE 直接使用串口终端工具编写也行,不过就没有很方便。

使用 IDE 则会方便在电脑上实时编辑脚本并上传到开发板以及直接在开发板上执行脚本,以及在电脑上实时查看摄像头图像、保存文件到开发板等。

在 MaixPy 里面,已经集成了推导模型的代码,同时使用了 KPU 进行计算加速,使用时无需编写很多代码,只需要调用几个函数即可快速运行模型。

4、kmodel

模型其实就是一组数据结构和参数数据,不同的XPU只能识别特定格式的模型, KPU 只认.kmodel格式的模型, 一般用电脑训练的模型则不是, 比如 tensorflow 是 .h5 格式或者 .tflite 格式, 要给 KPU 使用, 必须经过变成 kmodel 格式, 可以使用 nncase 这个工具来达到模型转换的目的。

在这里插入图片描述

二、环境准备

1、USB 驱动安装

正式使用 MaixPy 之前,我们需要先安装好串口驱动,才可进行下一步的开发与使用;因为板子是通过 USB 转串口设备与电脑连接(K210 没有 USB 硬件支持功能)。

根据板子的 USB 转串口芯片型号装驱动。

1)Linux

Linux 不需要装驱动,系统自带了,使用 ls /dev/ttyUSB* 即可看到设备号

2)Windows

Windows 用户需要安装 特定的驱动。

官方安装教程

2、更新固件

如果没有固件或者固件版本过于落后,需要自己烧写更新固件。

我手头的开发板已经有固件了,如果没有可以参考官方教程

打开 kflash_gui 应用

然后选择固件、设置选项, 点击下载即可, 更多特性介绍、使用说明见 kflash_gui 项目主页

使用时注意串口不能被其它软件占用,选择正确的开发板和串口号,可以适当降低波特率和使用低速模式来提高下载成功率

在这里插入图片描述

3、串口工具

1)连接硬件

连接 Type C 线, 一端电脑一端开发板

查看设备是否已经正确识别:

在 Linux 下可以通过 ls /dev/ttyUSB* 或者 ls /dev/ttyACM* 来查看, 如果没有可以 ls /dev 来找找,具体的设备名跟串口芯片和驱动有关. 也可以用sudo dmesg来看是否有设备挂载记录

在 Windows 下可以打开设备管理器来查看

在这里插入图片描述

如果没有发现设备, 需要确认有没有装驱动以及接触是否良好。

上电后出现白屏、黄屏、绿屏、蓝屏、闪屏为错误现象。

2)Windows串口工具

Windows 常用的串口终端软件有 mobaxterm,xshell,mpfshell-lite 等工具

在这里插入图片描述

3)MaixPy IDE串口工具

打开 MaixPy IDE,在 IDE 没有连接板子的时候选择通过串口终端进入开发板,cube 开发板请打开工具->选择开发板,选择 Maixduino 进行连接。

提示Permission 错误,可能是串口被占用,将使用过的串口程序关闭掉,或者重启电脑刷新串口。

点击左上角的工具栏->打开终端->新终端,可以连接串口终端。
在这里插入图片描述

点击左下角的connect图标,可以连接 MaixPy IDE,连接成功后图标变红。
在这里插入图片描述

4)Linux串口工具

Linux 常用的串口终端软件有pyserial、putty等工具

在这里插入图片描述

在这里插入图片描述

4、简单测试

1)实时屏幕连接摄像头进行拍摄

开发板有配套的摄像头和屏幕,请在上电前检查硬件连接是否正确

控制命令:
  Ctrl-A        --在空白行上,输入原始REPL模式
  Ctrl-B        --在空白行上,进入正常REPL模式
  Ctrl-C        --中断正在运行的程序
  Ctrl-D        --在空白行上,对电路板进行软复位
  Ctrl-E        --在空白行上,进入粘贴模式
有关特定对象的进一步帮助,请键入help(obj)
要获得可用模块的列表,请键入help('modules'

然后上电,打开串口终端, 按键盘Ctrl+E,然后粘贴以下代码:

import sensor, lcd

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames()

lcd.init(freq=15000000)

while(True):
    lcd.display(sensor.snapshot())

在这里插入图片描述

在使用过程中可能遇到加载模型提示错误,

可能存在的问题原因: sd 不兼容,挂载不成功

验证 sd 卡是否挂载方法:

import os
print(os.listdir("/"))
>>['flash'] # 没有挂载 SD 卡

>>['flash', 'sd'] # 挂载 SD 卡成功

验证模型是否读取成功:

import KPU as kpu
task_fd = kpu.load("/sd/xxx.kmodel")

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

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

相关文章

「优质Verilog刷题网站推荐」HDLBits

目前 集成电路领域算是风口行业之一 因此需要大量的芯片设计人才 而数字集成电路是其中的前端部分 设计数字集成电路所使用的主流语言是Verilog 然而 不像传统的编程语言C Java Python等有大量的刷题网站如力扣、牛客网等 支持Verilog刷题的网站不算很多 优质的就更少了 牛客网…

精选顶级期刊中的三幅可复现图表

简介 最近在阅读文献时,发现了一些出色的可视化案例,特此与大家分享。这些图共同的特点是:1. 易懂明晰; 2. 信息丰富; 3. 配色优雅。 小编有话说:以下三幅图选自领域内顶级期刊,虽然并非采用R语…

【ChatGPT】提示设计的艺术:使用清晰的语法

探索清晰的语法如何使您能够将意图传达给语言模型,并帮助确保输出易于解析 All images were generated by Scott and Marco. 这是与Marco Tulio Ribeiro共同撰写的关于如何使用指导来控制大型语言模型(LLM)的系列文章的第一部分。我们将从基…

快速了解云计算与云原生

快速了解云计算与云原生 云计算云原生DevOps容器持续交付微服务 云计算 在讲云原生之前,先来讲讲云计算 其中云原生属于技术架构理念,而云计算提供应用所需的基础资源,云计算是云原生的基础,两者是相辅相成的 云计算简单来说&a…

2024--Django平台开发-Web框架和Django基础(二)

day02 Web框架和Django基础 今日概要: 网络底层引入,到底什么是web框架?常见web框架对比django快速上手(创建网站)常见操作:虚拟环境、django项目、多app应用、纯净版逐点剖析:路由、视图、模…

SpringBoot基于Redis(7.2)分片集群实现读写分离

文章目录 一、前置提要二、集群搭建三、SpringBoot访问分片集群 一、前置提要 SpringBoot访问Redis分片集群和Redis哨兵模式,使用上没有什么区别。唯一的区别在于application.yml配置上不一样。 二、集群搭建 首先,无论如何,得先有一个Red…

零配置,零麻烦:MapStruct 的轻松对象映射之旅

欢迎来到我的博客,代码的世界里,每一行都是一个故事 零配置,零麻烦:MapStruct 的轻松对象映射之旅 前言MapStruct是什么快速上手:基础映射高级映射技巧1. 针对复杂类型的映射:2. 自定义映射逻辑&#xff1a…

【Sublime Text】| 01——下载安装注册

系列文章目录 【Sublime Text】| 01——下载软件安装并注册 【Sublime Text】| 02——常用插件安装及配置 失败了也挺可爱,成功了就超帅。 文章目录 前言1. 下载2. 安装3. 注册3.1 通过修改应用程序注册3.2 通过替换应用程序注册 感谢 前言 轻量代码编辑器有很多 之…

并发(4)

目录 16.sychronized修饰方法在抛出异常时,会释放锁吗? 17.多个线程等待同一个sychronized锁的时候,JVM如何选择下一个获取锁的线程? 18.sychronized是公平锁吗? 19.volatile关键字的作用是什么? 20.vo…

一文读懂 $mash 通证 “Fair Launch” 规则(幸运池玩法解读篇)

Solmash是Solana生态中由社区主导的铭文资产LaunchPad平台,该平台旨在为Solana原生铭文项目,以及通过其合作伙伴SoBit跨链桥桥接到Solana的Bitcoin生态铭文项目提供更广泛的启动机会。有了Solmash,将会有更多的Solana生态的铭文项目、资产通过…

2024年【危险化学品生产单位主要负责人】复审模拟考试及危险化学品生产单位主要负责人作业模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年危险化学品生产单位主要负责人复审模拟考试为正在备考危险化学品生产单位主要负责人操作证的学员准备的理论考试专题,每个月更新的危险化学品生产单位主要负责人作业模拟考试祝您顺利通过危险化学品…

二、医学影像云平台(云PACS-RIS和HIS接口和检查登记)

和HIS接口 RIS和HIS或集成平台的对接,主要是用来获取检查信息,确认状态以及报告回传等工作。这里的接口文档一般都是由HIS来提供,文档里会给出很多概念,可能有病人ID号,身份证号,门诊号、住院号、体检号、…

数据矩阵集成可提高印刷电路板识别的准确性

在复杂的印刷电路板 (PCB) 世界中,准确的电路板元件识别对于简化故障排除至关重要。它确保电子设备高效运行。 本文将探讨数据矩阵码在提高 PCB 零件识别效率方面的作用。数据矩阵码提供了一种简单的解决方案来编码和解码与 PCB 组件相关的信息,在简化识…

添加jdk 11到环境变量的一种方法

添加jdk 11到环境变量的一种方法 1.jdk11可以直接在android studio 中下载, File --> Settings --> Build, Execution, Deployment --> Build Tools --> Gradle 下载jdk 11 ,确认好下载路径 2.jdk11 添加到环境变量添加到环境变量 多个…

AI小蜜批量写作助手:多级指令,插件,GPTs满足不同写作需求

为什么会开发这个脚本? 爆文项目的核心是矩阵怼量 具体怎么做这里介绍很清楚了: AI爆文撸流量主保姆级教程3.0脚本写作教程(解放双手) 我在刚做爆文项目时候,都是手动操作,复制指令,组合指令…

设计模式之过滤器模式

目录 1.简介 2.过滤器的实现 2.1.过滤器的角色 2.2.类图 2.3.具体实现 3.过滤器模式的优点 4.过滤器模式的不足 5.适用的场景 1.简介 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种结构型设计模式&…

静态代理还是动态代理?来聊聊Java中的代理设计模式

代理模式(Proxy Design Pattern)是一种结构型设计模式,为一个对象提供一个代理对象,然后使用代理对象控制对原对象的引用。即通过代理对象访问目标对象。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 一、…

JavaWeb——新闻管理系统(Jsp+Servlet)之jsp新闻查询

java-ee项目结构设计 1.dao:对数据库的访问,实现了增删改查 2.entity:定义了新闻、评论、用户三个实体,并设置对应实体的属性 3.filter:过滤器,设置字符编码都为utf8,防止乱码出现 4.service:业务逻辑处理 5.servlet:处…

Spring AI和Ollama

概述 Spring AI 不仅提供了与 OpenAI 进行API交互,同样支持与 Ollama 进行API交互。Ollama 是一个发布在GitHub上的项目,专为运行、创建和分享大型语言模型而设计,可以轻松地在本地启动和运行大型语言模型。 Docker环境安装Ollama 1.获取D…

第13课 利用openCV检测物体是否运动了

FFmpeg与openCV绝对是绝配。前面我们已经基本熟悉了FFmpeg的工作流程,这一章我们重点来看看openCV。 在前面,我们已经使用openCV打开过摄像头并在MFC中显示图像,但openCV能做的要远超你的想像,比如可以用它来实现人脸检测、车牌识…