资讯详情

【飞控开发基础教程4】疯壳·开源编队无人机-串口(光流数据获取)

COCOFLY教程 ——疯壳·无人机·系列 串口(光流数据获取)

图1

一、光流模块简介 光流(optical flow)是指观察成像平面上像素运动的瞬时速度。 光流法是利用图像序列中像素在时间域的变化和相邻帧之间的相关性来计算相邻帧之间物体的运动信息的一种方法。 二维图像平面特定坐标点上的灰度瞬时变化率通常定义为光流矢量。 一般来说,光流是由前景目标本身的运动、相机运动或两者的共同运动引起的。 当人眼观察运动物体时,物体的场景在人眼视网膜上形成一系列不断变化的图像。这一系列不断变化的信息不断流过视网膜(即图像平面),就像光的流,因此被称为光流。光流表示图像的变化。由于它包含目标运动的信息,观察者可以用它来确定目标运动。 COCOFLY 基于无人机的光流模块 PMW3901,PMW3901 它是一种体积小、功耗低、精度高的光学运动跟踪传感器。光流模块的实物图如下图所示。 图2 已将光流模块放在光流模块上 PMW3901 波特率通过串口周期处理数据并传输 光流模块的串口传输协议如下表所示。 表1 其中 DATA0、DATA1 是 flow_x 拆分的低 8 位数据和高 8 位数据,即flow_x=(int16_t)(DATA1<<8)|(DATA0),DATA2、DATA3 是 flow_y 的低 8 位和高8 位,即 flow_y=(int16_t)(DATA3<<8)|(DATA2),其中和 DATA0~DATA3 累加值,即 SUM=DATA0 DATA1 DATA2 DATA3;SQUAL 地面环境质量, 数值越大,地面环境质量越高;最后一个字节是结束符,常规模式下固定有两种: 0xAA(Y 引脚接高电平),偏航模式固定 0xBB(Y 低电平引脚接头)。二、串口光流数据获取实验 实验使用串口光流数据 STM32 的串口 2 即 UART2 与光流模块相连, 串口 1 即 UART1 通过 USB 将串口模块连接到计算机,连接串口模块 2 通过串口获得的光流数据获得的光流数据 1 传输到计算机端的串口调试助手显示。 2 如下图所示: 图3 两串引脚分别与 PA2 与 PA3 引脚相连,所以我们是对的 PA2 与 PA3 引脚进行配置,串口 1 配置可参考串口(基本收发),配置代码(通过调用官方库)编写的思路如下: 表2 串口 2 初始化代码如下: 图4 串口 2 收到光流模块的数据转发到串口 1,串口 2 中断函数代码如下。 图5 设置串口 2 的波特率为 代码如下:19200: 图6 保存、编译、下载代码,确保串口 2 连接光流模块,然后串口 1 接上 USB 转串口模块,最后接到电脑 USB 端口如下图所示: 图7 然后在把 USB 将传串模块插入计算机 USB 打开电脑端的串口调试助手, 找到对应的 COM 口(前提是安装 USB 转串口驱动),设置波特率为 115200, 打开,可以看到串口不断打印光流模块发送的数据,如下图所示。 图8

标签: 300pa2pa传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台