当前位置: 首页 > news >正文

K210视觉识别模块学习笔记1:第一个串口程序_程序烧录与开机启动

今日开始学习K210视觉识别模块:简单的认识与串口程序

亚博智能的K210视觉识别模块......  

固件库版本:  canmv_yahboom_v2.1.1.bin

既然K210作为一个视觉识别外设模块来使用,我认为第一个程序 就没必要学点灯之类的了,直接学习串口如何配置开始为妥,毕竟后面都要用到.....

在研究过程中也发现K210程序的烧录与启动也与一般的Openmv不太一样,比较麻烦......

目录

K210产品认识与简介:

CAN_IDEK开发界面:

开发环境的配置:

串口接线与提示:

1、注意K210有俩个串口连接:USB串口与 外扩串口:

2、外置串口的接线:

CanMV IDE 编写串口发送例程:

1、新建Python工程与测试步骤:

2、测试效果截图与解释:

3、例程测试提示:

开机启动程序 与 Py库文件导入K210 TF卡:

 Py库文件导入K210 TF卡:

1、不借助读卡器:

2、借助读卡器:

 网上查阅资料贴出:


K210产品认识与简介:

该处解释来自于文档:K210视觉识别模块简介.pdf

1.按键K1               硬件连接到 IO16 ,可自定义按键功能。
2.RGB 灯:              可编程显示红、绿、蓝、白等颜色。
3.TF 卡槽:              用于插入 TF 卡,金手指朝向模块,保存程序和模型等文件。
4. 固定铜柱:           总共四个固定铜柱, M3 尺寸。
5.K210 核心模组:   包含 K210 芯片最小运行系统。
6. 摄像头:               采集图像。
7. 模组接口:           连接 K210 核心模组和底板。
8.RST 按键:           复位按键,用于重启 K210 芯片。
9. 外扩串口:           连接其他串口设备,输出自定义数据。
10.microUSB 接口:下载固件、串口调试、连接 IDE 等。
11.CH340 芯片:      与 microUSB 接口连接,将 USB 信号转化成 TTL 信号。

CAN_IDEK开发界面:

①菜单栏:       操作文件,使用工具等。
②快捷按钮:    区域①中的 文件 编辑 中部分功能的快捷方式。
③连接设备:    连接设备和程序控制按钮。
④代码编辑区:编辑要运行的代码。
⑤串行终端:    显示串口打印的调试信息。
⑥图像预览:    显示摄像头的图像预览。
⑦固件信息:    显示连接的串口号以及固件的相关信息。

开发环境的配置:

检查电脑是否有以下环境:

1、CH340的驱动安装

2、下载CAN_IDE上位机开发软件:https://github.com/kendryte/canmv_ide/releases

(注意找到适合自己系统的进行下载!)

3、烧录出厂固件

4、MicroPython API说明文档

https://developer.canaan-creative.com/index.html?channel=developer#/word 

串口接线与提示:

1、注意K210有俩个串口连接:USB串口外扩串口

它俩不是同一个串口,如果在python程序中进行编程输出打印,一个需要调用串口库并创建串口通信的实例对象,另一个可以直接调用Print(“ ”)进行打印:

有关程序部分下面编程部分会进行提示

2、外置串口的接线:

3、

CanMV IDE 编写串口发送例程:

1、新建Python工程与测试步骤:

首先在IDE中新建文件:

编写一个串口测试程序如下:

from modules import ybserial #从modules导入ybserial
import timeserial = ybserial() #创建ybserial的对象,并命名为serialserial.send_byte(0x31) #通过外置串口发送一个字节数据,参数 data 的范围为0-255。
serial.send_byte(0x0D) #通过外置串口发送一串字节数组,参数 array 为字节数组。array = [0x30, 0x31, 0x32, 0x33, 0x0D]
serial.send_bytearray(array) #表示通过外置串口发送一串字节数组,参数 array 为字节数组。text = 'Hello Yahboom'
num = serial.send(text) #通过外置串口发送字符串,返回值是字符串的长度。
print("num:", num)num = 0 #
count = 0 #记录串口发送次数
#用于交替发送测试的俩个字符串
CMD_1 = "$A#"
CMD_2 = "$BB#"while True:time.sleep_ms(1000)count = count + 1if count % 2 == 1:num = serial.send(CMD_1)else:num = serial.send(CMD_2)print("num:%d, count:%d" % (num, count))

然后进行保存:

然后连接俩个串口到电脑俩个串口:

然后打开一个额外的串口助手:

这里需要注意的是,要记得自己USB与外置串口分别连接了电脑的那个com口,我这里USB调试串口是连接的com 4,外置串口连接的是com 3,因此我这俩个软件打开的串口应如下:

然后按三角就可以进行测试了:

2、测试效果截图与解释:

从测试结果发现:

1、外设串口打印相关的函数如下:

2、USB串口打印相关函数如下:

3、例程测试提示:

这仅仅是将一个Python程序下载测试了一下,程序并未永久进入K210的内存!

断电后再连接,程序就会丢失!!!

请继续阅读下文可以解决这个疑问......

开机启动程序 与 Py库文件导入K210 TF卡:

开发板上电后会 自动执行 boot文件,然后再执行该处的 main.py,如果想让自己的程序开机自启动,可以将程序拷贝到boot中或者写入main.py。

SD卡在上电后会被挂载到/sd,值得注意的是只能将数据写入/flash和/sd下。

Python是支持将自定义py库(或者第三方py库)放到同一个目录下调用的,MicroPython也是支持调用自定义py库的。在调用自定义py库之前,需要提前将py库文件导入K210。

 Py库文件导入K210 TF卡:

 主流分为俩种方式: 

1、不借助读卡器:

在不拔出K210侧边挂载的TF卡的情况下使用CanMV IDE 进行导入:

需要我们先  连接好K210 在导入:

我们可以看到除了保存文件到CanMV Cam选项外(这个适合导入第三方库)

还有其余俩个选项:

其中如果选择了第二个选项(main.py)那就是能够使得这个Python程序开机自启动的!

别忘记保存成功后需要按下复位键!

2、借助读卡器:

借助读卡器的导入法更为简单粗暴,并且可操作性也更强,对于其中各个文件的把握也更全面.....

 网上查阅资料贴出:

K210系列第一个示例程序-CSDN博客

 K210-调用自定义py库_k210如何调用自定义py库-CSDN博客

K210——UART串口通信_k210串口-CSDN博客

相关文章:

K210视觉识别模块学习笔记1:第一个串口程序_程序烧录与开机启动

今日开始学习K210视觉识别模块:简单的认识与串口程序 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 既然K210作为一个视觉识别外设模块来使用,我认为第一个程序 就没必要学点灯之类的了,直接学习串口如何配置开始为妥&…...

[数据集][目标检测]脑溢血检测数据集VOC+YOLO格式767张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):767 标注数量(xml文件个数):767 标注数量(txt文件个数):767 标注类别…...

如何借VR之手,让展厅互动更精彩?

VR虚拟现实技术以其卓越的沉浸式体验为特点,引领用户踏入一个全新的虚拟世界,正因如此,它开始被广泛应用于展厅、商业等多个领域。那么,今天,让我们就来了解一下这种技术是如何为展厅带来精彩互动体验的吧!…...

微信小程序如何使用地图

微信小程序使用地图功能时&#xff0c;主要涉及到地图组件的引入、配置、以及相关的API调用。以下是一个详细的使用指南&#xff1a; 1. 引入地图组件 在微信小程序的.wxml文件中&#xff0c;通过<map>标签引入地图组件。你可以设置地图的经纬度、缩放级别、控件等属性…...

力扣 287. 寻找重复数

给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量…...

怎样清理Mac存储空间 苹果电脑内存不够用怎么办 苹果电脑内存满了怎么清理

在使用 Mac 电脑的过程中&#xff0c;用户经常会遇到磁盘空间不足的困扰&#xff0c;这时候就需要寻找有效的方法来清理苹果电脑内存了。 清理Mac存储空间可以通过多种方法进行&#xff0c;以确保你的Mac能够高效运行并释放宝贵的存储空间。以下是一些有效的清理和优化方法&am…...

网络遗忘权的实现方法

网络遗忘权的实现方法 目录 从禁书说起 从销毁硬件信息的方法得到的启示 现在网络遗忘权的实现方法 从禁书说起 古代有禁书的需求,直接的方法就是贴出告示,强行收缴,然后付之一炬. 这个方法的问题在于只要有一个人敢冒死藏书,再次手抄或者是印刷,就 会让之前的禁书努力,付…...

【Python内功心法】:深挖内置函数,释放语言潜能

文章目录 &#x1f680;一、常见内置函数&#x1f308;二、高级内置函数⭐1. enumerate函数&#x1f44a;2. eval函数❤️3. exec函数&#x1f4a5;4. eval与exec 中 globals与locals如何用☔4-1 globals 参数&#x1f3ac;4-2 locals 参数 ❤️5. filter函数&#x1f44a;6. z…...

JS-09-es6常用知识1

目录 1 模板字符串 1.1 模板字符串基本用法 1.2 模板字符串解决了一些痛点 2 解构赋值 2.1 对象的解构赋值 2.2 函数参数的解构赋值 2.3 补写&#xff1a;属性的简写 3 rest参数 3.1 arguments 3.2 rest参数 3.3 补充&#xff1a;判断数据类型 4 箭头函数 4.1 …...

SpringBoot 基础之自动配置

SpringBoot 自动配置 SpringBoot 通过 自动配置 简化了大量的繁复的配置信息。 启动类 Application 中有两处特别之处&#xff1a; 注解&#xff1a;SpringBootApplication run 方法&#xff1a;SpringApplication.run(…) SpringBootApplication 注解至少等价于以下三个注…...

Oracle dblink 发现Network 等待事件的分析 enq: KO - fast object checkpoint

所有的sql 通过dblink 查询全部等待中&#xff0c; 同一个SQL 20多个session 在跑&#xff0c;等待事件network&#xff0c;可能怀疑是不是网络断开了&#xff0c;导致没有返回 执行sql 如下&#xff1a; BEGIN Xdblink ; END; 去到dblink 所在的db&#xff0c;发现20多个sql在…...

SpringMVC:向三大域对象存数据

1. 简介 Servlet中的三个域对象 请求域&#xff1a;request会话域&#xff1a;session应用域&#xff1a;application 主要是通过&#xff1a;setAttribute getAttribute方法来完成在域中数据的传递和共享。 点击跳转Servlet详细概念 // 向域中存储数据 void setAttribute(St…...

如何用python做一个用户登录界面——浔川python社

1 需解决的问题&#xff1a; 1.1如何用python做一个用户登录界面&#xff1f; 1.2需要用到哪些库、模块&#xff1f; 2 问题解决&#xff1a; 2.1 回答 1.1 &#xff1a;合理即可&#xff0c;无标准回答。 2.2 回答 1.2 &#xff1a;tk库&#xff08;缩写&#xff09;、GUL界面…...

Python知识点9---推导式

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python提供的推导式&#xff0c;只对列表、字典、集合三种数据类型生…...

用C++做一个跑酷游戏

要用C创建一个跑酷游戏是一个相对复杂的任务&#xff0c;因为它涉及到图形渲染、用户输入处理、物理模拟等多个方面。由于C本身并不直接支持图形渲染&#xff0c;我们通常需要使用一个图形库来帮助我们实现这一点。 一个常用的选择是使用SFML&#xff08;Simple and Fast Mult…...

基于字典树可视化 COCA20000 词汇

COCA20000 是美国当代语料库中最常见的 20000 个词汇&#xff0c;不过实际上有一些重复&#xff0c;去重之后大概是 17600 个&#xff0c;这些单词是很有用&#xff0c;如果能掌握这些单词&#xff0c;相信会对英语的能力有一个较大的提升。我很早就下载了这些单词&#xff0c;…...

TypeScript 中的命名空间

1. 命名空间的概念 命名空间是 TypeScript 提供的一种组织代码的方式&#xff0c;它类似于其他编程语言中的模块化系统&#xff0c;但有一些不同之处。命名空间可以包含变量、函数、类等&#xff0c;并且可以嵌套使用&#xff0c;从而更好地组织和管理代码。 2. 定义命名空间…...

[C++] 小游戏 斗破苍穹 2.2.1至2.11.5全部版本(上) zty出品

大家好,今天zty整合了斗破苍穹2.2.1到2.11.5的所有版本 我这么辛苦,就要50个赞吧 2.2.1 #include<stdio.h> #include<ctime> #include<time.h> //suiji #include<windows.h> //SLEEP函数 struct Player //玩家结构体,并初始化player { char name[…...

单元测试的心法分享

大家好&#xff0c;我是G探险者&#xff01; 今天我们简单聊聊单元测试的哪些事儿~ 两天时间我玩明白了单元测试的套路。 这里我分享一下思路。 在我眼里单元测试室什么&#xff1f; 请看这张草图&#xff1a; 单元测试主要关注单个代码单元&#xff08;通常是类或方法&am…...

【python】多线程(3)queue队列之不同延时时长的参数调用问题

链接1&#xff1a;【python】多线程&#xff08;笔记&#xff09;&#xff08;1&#xff09; 链接2&#xff1a;【python】多线程&#xff08;笔记&#xff09;&#xff08;2&#xff09;Queue队列 0.问题描述 两个线程&#xff0c;但是不同延时时长&#xff0c;导致数据输出…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...