当前位置: 首页 > 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;导致数据输出…...

Java开发常见基础问题

Java开发的多个方面&#xff0c;包括但不限于Java基础知识、多线程并发、JVM、框架使用、数据库、设计模式、网络编程等。 以下是一些常见的问题以及回答的方向&#xff1a; Java 开发技术常见问题&#xff08;一&#xff09; Java 基础知识 对象和类的区别是什么&#xff1…...

大数据组件doc

1.flink Apache Flink Documentation | Apache Flink 2.kafka Apache Kafka 3.hbase Apache HBase ™ Reference Guide 4.zookeeper ZooKeeper: Because Coordinating Distributed Systems is a Zoo 5.spark Overview - Spark 3.5.1 Documentation 6.idea组件&#xff08;…...

Docker Hub 国内镜像源配置

Docker Hub 国内镜像源配置 Docker Hub 国内镜像源是指在国内境内提供 Docker 镜像服务的镜像源。由于国际网络带宽等问题&#xff0c;国内用户下载 Docker 镜像通常速度较慢。因此&#xff0c;为了解决这个问题&#xff0c;一些国内的公司和组织提供了 Docker 镜像的国内镜像…...

持续总结中!2024年面试必问 20 道 Kafka面试题(一)

一、Kafka 的基础概念有哪些&#xff1f; Kafka 是一个分布式流处理平台&#xff0c;由 LinkedIn 开发&#xff0c;并于 2011 年成为 Apache 软件基金会的一部分。以下是 Kafka 的一些基础概念&#xff1a; Broker: Kafka 集群由多个 Broker 组成&#xff0c;每个 Broker 存储…...

Linux共享内存创建和删除

最近项目中使用到了共享内存记录下 创建共享内存: 删除共享内存: 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/stat.h> #include <u…...

微信小程序如何自定义tabbar

微信小程序自定义底部tabbar是一个提升用户体验和增加小程序个性化的重要功能。以下是自定义底部tabbar的步骤&#xff0c;以供参考&#xff1a; 一、自定义tabbar的重要性 微信小程序默认的底部导航栏&#xff08;tabbar&#xff09;样式和布局是固定的&#xff0c;开发者无…...

【并发程序设计】15.信号灯(信号量)

15.信号灯(信号量) Linux中的信号灯即信号量是一种用于进程间同步或互斥的机制&#xff0c;它主要用于控制对共享资源的访问。 在Linux系统中&#xff0c;信号灯作为一种进程间通信&#xff08;IPC&#xff09;的方式&#xff0c;与其他如管道、FIFO或共享内存等IPC方式不同&…...

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于软件开发人员和团队。使用此应用程序&#xff0c;您可以构建和调试现代Web应用程序&#xff0c;并利用扩展帮助探索几乎任何编程语言。…...

遥感影像信息提取

刘老师&#xff08;副教授&#xff09;&#xff0c;来自双一流重点高校&#xff0c;长期从事GIS/RS/3S技术及其生态环境领域中的应用等方面的研究和教学工作&#xff0c;并参与GIS的二次开发&#xff0c;发表多篇sci论文&#xff0c;具有资深的技术底蕴和专业背景。 专题一&am…...

LRU算法

文章目录 LRU算法LRU 如何实现LinkedHashMap来实现的LRU算法的缓存HashMap实现LRU算法的缓存 LRU算法 LRU&#xff08;Least Recently Used&#xff09;算法可以使用哈希表和双向链表来实现。哈希表用于快速查找数据&#xff0c;双向链表用于记录数据的访问顺序。以下是LRU算法…...