K210开发1--简介

news/2024/11/13 15:14:28/

基于Sipeed Maixduino 开发板 开发
因为对python熟悉,先由maixpy进行开发,在使用boss的固件系统开发。

硬件

在这里插入图片描述
型号:Maixduino
芯片:k210-AI模块 esr32-WiFi+蓝牙
模组:

项目说明
CPURISC-V双核64比他、内置FPU、400Mhz标准频(可超频),内置神经网络处理器
内存8M 64bit SRAM
存储16M Flash

在这里插入图片描述
引脚参考

步骤1安装串口驱动
安装开发环境
相关需求网址
在这里插入图片描述
因为对python熟悉,所以安装MaixpyIDE
1、下载maixpy固件,选最新的完整版下载就好

如 maixpy_v0.5.0_34_ga1b47a3_with_lvgl.bin

2、下载烧录软件kflash
3、下载IDEmaixpy,选最新的
也可以直接串口连接了写

MicroPython背景知识

MaixPy基于MicroPython开发构建的,而MicroPython是Python3的精炼版,语法一致,但只实现了Python的标准库

第一个程序:使用屏幕和摄像头

相关程序含义可调阅API手册

import sensor,lcd#导入内置sensor库和lcd库
sensor.reset()#初始化摄像头,失败查看硬件
sensor.set_pixformat(sensor.RGB565)#设置摄像头为RGB565格式
sensor.set_framesize(sensor.QVGA)#分辨率为QVGA,即320×240
sensor.run(1)#开始运行,在现在的版本中也可以不调用,在上面设置完成后,摄像头会自动开始运行
sensor.skip_frames()#摄像头刚启动是,图像质量不稳定,所以跳过一些图像
lcd.init(freq=15000000)#初始化LCD,这里传入一个参数freq频率,是指定驱动LCD的时钟频率,这里是15MHz,根据硬件性能调整
while(True):lcd.display(sensor.snapshot())#从摄像头取一帧数据,返回一张图像的对象并显示到lcd

第二个程序:点亮LED aduino没有,感受程序对硬件的抽象操控

K210的引脚和片内外设功能(GPIO,I2C,SPI等)的绑定是任意映射,普通单片机是固定的,比如规定了I2C就只能用Pin9或Pin10这样。

from fpioa_manager import fm
fm.register(28,fm.fpioa.GPIO0)#将28引脚映射为GPIO0功能
#fm.unregister函数可解除绑定
#注,Pin和外设只能唯一对应

#点亮LED红灯

from fpioa_manager import fm
from Maix import GPIO
io_led_r=13#将io_led_r赋13,即将Pin13/IO13脚取了个名字,13脚控制着LED红灯
fm.register(io_led_r,fm.fpioa.GPIO0)#使用fm来注册芯片外设和引脚的对应关系led_r=GPIO(GPIO.GPIO0,GPIO.OUT)
led_r.value(0)#设置高低电平输出,这里设置了低电平,原理图中说低电平导通,LED灯亮

注:
GPIO和IO的区别:
GPIO-通用输入和输出端口,可有变成状态决定其状态,MCU的IO 就是GPIO,
IO-泛指所有类型的输入输出端口,包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口

存储系统介绍

maixpy的存储系统大致如下:
在这里插入图片描述
Maipy中的存储介质主要由Flash,SD卡组成,分为三块区域,分别是Maixpy.bin固件区,xxx.kmodel
模型区,文件系统区:Flash上为spiffs,SD卡为Fatfs
1、MaixPy.bin固件区
用来存储MaixPy.bin固件,起始于0x000000,因为K210会从0x000000地址开始运行程序。
2、xxx.kmodel模型区
通常起始于0x300000,模型文件之所以不烧录在Flash文件系统,有以下原因:
1、Flash中文件系统拥有的内存并不够大,不足以放入大模型,更大的模型可以放入SD卡中
2、直接读取模型文件比经过文件系统读取速率更快
该区域没有文件系统管理,需要根据烧录时的起始地址操作文件,例如当模型烧录在0x500000时的读取方法:

KpuTask=kpu.load(0x500000)

3、文件系统区
通常从0xD00000开始,该区域交由文件系统管理,Flash末尾的3M空间由spiffs管理,另外支持FAT32(Fatfs)的SD卡,这些文件系统提供接口使我们通过文件名便可以对文件进行读写操作,而不需要如模型区一样,使用文件起始地址操作,同时帮助我们有效管理存储介质。
4、MaixPy文件系统的使用
因为Flash和SD卡的文件系统不同,接口不一致,操作时需要调用不同的接口,使用MaixPy中的虚拟文件系统(VFS)可以解决,VFS可以挂载多个不同类型文件系统,并为用户操作提供统一接口。在uos模块中实现。

import uos#类似os
print("files:",uos.listdir("/flash"))
with open("/flash/test.txt","w") as f:f.write("hello text")
print("files:",uos.listdir("/flash"))
with open("/flash/test.txt","r") as f:content=f.read()
print("read:",content)

spiffs文件系统会自动挂载在/flash目录,只需要访问/falsh目录即可
插上SD卡后,Fatfs自动挂载在/sd下,使用时需满足以下条件:

  • 支持SPI模式,市面上大多数正版卡都支持
  • 分区为MBR(msdos)
  • 格式化为FAT32
  • 大小测试过最大128G可用,断电后插入SD再上电,自动挂载再/sd,如果由多个分区,第二给分区名为/sd2
  • 注:/ 根目录不能写入数据,只能/flash或者/sd写入数据,开机如果有SD卡,会自动将当前目录下切换到/sd,如果没有,则会自动切换到/flash

执行并编辑文件

编辑

os.listdir()查看当前目录下文件
方法一:使用内置编辑器 Micropython Editor(pye)
使用串口工具连接下位机
Linux推荐minicom windows推荐xshell
这款编辑器要求将BackSpace改为DEL功能,否则BackSpace和Ctrl+H一样功能(字符替换)
方法二:使用MaixPy IDE
打开MaixPy IDE里的Tool菜单中的 发送文件 功能来发送文件,会保存到开发板并且文件名和电脑上文件名相同。
方法三:使用工具uPyLoader 读取到PC上编辑后在保存到开发板
https://github.com/BetaRavener/uPyLoader/releases 下载地址
在这里插入图片描述
选择串口并点击Connect来连接板子,第一次运行需要初始化,点击File-Init transfer files 来完成初始化,这会在板子里创建两文件,分别是__upload.py和__download.py,然后双击文件名即可打开文件并编辑,编辑完成点击save保存到开发板。
方法4:使用工具rshell读取到PC上编辑后再保存到开发板
https://github.com/dhylands/rshell 地址

sudo apt-get install python3-pip
sudo pip3 install reshell
reshell -p /dev/ttyUSB1 #根据实际情况选择串口

编辑文件

ls /flash
edit /flash/boot.py#编辑器使用方法和vim一样

方法5:SD卡自动拷贝到Flash文件系统
将需要拷贝到Flash文件系统命名为cover.boot.py或cover.main.py,然后放再SD卡根目录,开发板断电插入SD卡,再上电,就会将其自动拷贝到/flash/boot.py或/flash/main.py。

执行

os.chdir()切换到当前目录到文件目录,如os.chdir("/flash")
方法一:import
执行 import hello
该方法只能被执行一次,且if __name__=="__main__"下的代码不会执行
方法二:exec()

with open("hello.py") as f:exec(f.read())

方法三:使用Maixpy IDE执行
连接串口,点击运行
这样和REPL(交互式编辑)类似,只是将程序发送到开发板,并没有保存到文件系统,是一次执行的
方法四:uPyLoader来执行
连接好后选中文件,点击excute按钮来执行文件
方法5:使用ampy来直接运行电脑上的文件
https://github.com/scientifichackers/ampy 地址
执行命令ampy run file_in_PC.py 来执行位于电脑上的文件(文件不会保存到开发板)
MaixPy不支持挂载文件系统到电脑


http://www.ppmy.cn/news/110760.html

相关文章

K210系列开发板介绍

勘智K210是一款什么样的芯片? 勘智K210是小编去年买的一块AIRV R3开发套件时接触的一款芯片。性价比不错,如下图所示:具有双核64位处理器,并自带独立FPU;有一块KPU用于神经网络加速单元;还有一块APU用于语音…

Kendryte K210板级支持包说明

Kendryte K210板级支持包说明 1. 简介 Kendryte K210 是集成机器视觉与机器听觉能力的系统级芯片(SoC)。使用台积电 (TSMC) 超低功耗的 28 纳米先进制程,具有双核64位处理器,拥有较好的功耗性能,稳定性与可靠性。该方案力求零门槛开发&…

K210入门必看(MAIX DOCK)(一)

目录 K210芯片上IO口 板子上的引脚 如何理解【引脚]映射[内部功能]? fpioa_manage 类 1、register(pin, func, forceTrue) 2、unregister(pin) 介绍 3、get_pin_by_function(pin) 4、 get_gpio_used() FPIOA类介绍 1、set_function(pin, func)函数 2、…

K210使用和测试

B站链接: https://www.bilibili.com/video/BV1ET4y1c7rw/ CSDN文件下载: https://download.csdn.net/download/qq_38649386/12920715 目录 前言 4 1 Kendryte开发 5 1.1 IDE环境 5 1.2 开发使用 6 1.2.1 驱动安装 6 1.2.2 使用教程 6 1.3…

K210入门教程

前言 历经了电赛,视觉部分由于openmv高昂的价格难以承担,于是将目光转移到了K210身上,这块一二百块钱即可拥有神经网络的摄像头,拿它做点小项目练练手。 提示:以下是本篇文章正文内容,下面案例可供参考 一…

【爬虫第二章】网络协议和HTTP协议

预计更新 一、 爬虫技术概述 1.1 什么是爬虫技术 1.2 爬虫技术的应用领域 1.3 爬虫技术的工作原理 二、 网络协议和HTTP协议 2.1 网络协议概述 2.2 HTTP协议介绍 2.3 HTTP请求和响应 三、 Python基础 3.1 Python语言概述 3.2 Python的基本数据类型 3.3 Python的流程控制语句 …

Tomcat文件夹属性

Tomcat安装完成后,其安装目录下包含bin、conf、lib、logs、temp、webapps、work等子目录,各个子目录简介如下: (1)bin目录。主要存放Tomcat的命令文件。(解压缩版点击bin下的startup.bat,即可运…

MyBatis 环境搭建+基本使用

目录 MyBatis创建MyBatis环境搭建MyBatis模式开发MyBatis 获取动态参数(查询操作)${} 直接替换#{} 占位符模式替换like查询(模糊查询)多表查询一对一的表映射一对多的表映射 增、删、改操作改操作删除操作增加操作添加用户添加用户…