k210和STM32、arduino通信

k210和STM32、arduino通信1.通信协议说明1.协议定义2.k210和stm32通信2.1 实验前提2.2 实验接线2.3 根据协议的封装,stm32的获取主要数据的代码如下:2.4实验现象3.k210和arduino通信3.1 实验前提3.2 实验接线2.3 根据协议的封装,arduino的解析主要数据的代码如下:3.4实验现象4.附录4.1 k210脱机运行操作方法4.2 串口助手数据解析

1.通信协议说明

1.协议定义

image-2023052600002

分析:

协议定义解析
$开始符
长度从开始符号之后到结束符号之前的所有字符的数量
例程编号两个字节,对应例程ID号,小于10的前面补零
例程组两个字节,默认为BB
数据量下面数据的个数
数据数据,数据后以逗号(,)隔开,有多少个数据量就有多少个逗号
校验位从开始符号之后到结束符号之前的所有字符的字节相加再向256取余
#结束符

 

2.k210和stm32通信

2.1 实验前提

本教程使用的是stm32C8T6,k210要运行K210-AI程序改写(stm32_pico_arduino)专用里面的程序才能开始实验 stm32 *1 k210视角模块 1(要有sd卡(里面有带AI的模型)、摄像头) usb转ttl模块1

2.2 实验接线

stm32usb转ttl模块
PA2RXD
GNDGND
STM32k210视角模块
PA3TXD
GNDGND
VCC5V

接线如图所示: image-2023052600001

这样的接线,k210的RXD和usb转TTL的TXD是不用接的,实验没有用到。

2.3 根据协议的封装,stm32的获取主要数据的代码如下:

根据代码可知:

2.4实验现象

  1. 连接好线后,k210视角模块可以脱机运行、也可以连接canmv ide运行,但有些实验是要脱机运行的,脱机运行的方法看附录
  2. 串口助手设置成如图的界面 image-2023052600004
  3. 然后跑相关的例程,串口助手就会打印出k210传输给stm32的重要信息,下图的现象是二维码识别的结果 image-2023052300005 xy是坐标,wh是宽度和长度,str就是二维码的识别出来的字符数据

3.k210和arduino通信

3.1 实验前提

本教程使用的是arduino,k210要运行K210-AI程序改写(stm32_pico_arduino)专用里面的程序才能开始实验 arduino *1 k210视角模块 1(要有sd卡(里面有带AI的模型)、摄像头) usb转ttl模块1

3.2 实验接线

arduinousb转ttl模块
TXDRXD
GNDGND
arduinok210视角模块
RXDTXD
GNDGND
VCC5V

接线如图所示: image-2023052300006

2.3 根据协议的封装,arduino的解析主要数据的代码如下:

由代码可以看到

3.4实验现象

  1. 连接好线后,k210视角模块可以脱机运行、也可以连接canmv ide运行,但有些实验是要脱机运行的,脱机运行的方法看附录
  2. 串口助手设置成如图的界面 image-2023052600004
  3. 然后跑相关的例程,串口助手就会打印出k210传输给adruino的重要信息,下图的现象是颜色识别的结果 image-2023052600007

会把识别到的颜色框的大小xywh的值在串口助手打印出来,xy是坐标,wh是宽度和长度

4.附录

4.1 k210脱机运行操作方法

4.2 串口助手数据解析

x:横坐标 y:纵坐标 w:宽度 h:长度 id:识别到的物体标签 str:识别到的内容信息