"); //-->
一、光流模块简介
光流(optical flow)是指的是空间运动物体在观察成像平面上的像素运动的瞬时速度。
光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。
通常将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。
一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。
当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像一种光的“流”,故称之为光流。光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。
COCOFLY无人机采用的光流模组是基于PMW3901,PMW3901是一款光学运动跟踪传感器,该传感器体积小、功耗低、精度高。如下图所示为该光流模组的实物图如下图所示。

光流模组上已经把PMW3901的数据处理好,并且通过串口周期传输,波特率为19200,该光流模组的串口传输的协议如下表所示。
包头 | 字节数 | 光流数据 | 和校验 | 环境质量 | 结束标识符 | |||
0xFE | 0x04 | DATA0 | DATA1 | DATA2 | DATA3 | SUM | SQUAL | 0xAA(0xBB) |
其中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的引脚如下图所示:


两个串口引脚分别与PA2与PA3引脚相连,那么我们就对PA2与PA3引脚进行配置,串口1的配置可以参考《串口(基础收发)》,配置代码(通过调用官方库)编写的思路如下:
代码思路
1 | 管脚配置 | 1、定义结构体; 2、使能时钟; 3、填充结构体; 4、装载结构体。 |
2 | 串口配置 | 1、定义结构体; 2、使能时钟; 3、填充结构体; 4、装载结构体; 5、开启中断; 6、使能串口。 |
3 | 中断优先级管理 | 1、定义结构体; 2、填充结构体; 3、装载结构体。 |
4 | 逻辑处理 | 1、等待接收以及发送数据。 |
串口2初始化代码如下:

串口2接收到光流模组的数据就转发到串口1,串口2的中断函数代码如下。

设置串口2的波特率为19200,代码如下:

保存、编译、下载代码,确保串口2接上了光流模组,然后再把串口1接上USB转串口模块,最后接到电脑的USB端口,如下图所示:

然后在把USB转串模块插到电脑的USB口,打开电脑端的串口调试助手,找到对应的COM口(前提是安装了USB转串口驱动),设置波特率为115200,打开,可以看到串口在不断打印光流模组发送的数据,如下图所示。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
[求助]在uClinux下需不需要自己写i2c的驱动
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
世界纪实摄影之父——亨利·卡蒂埃.布列松逝世!发其代表作纪念
AI需求火爆,Cerebras上调IPO发行价和发行股票数量
[求助]
C6474多核处理器在医疗应用领域
恩智浦 NCJ39 高性能安全元件:赋能智能汽车数字钥匙与安全接入
F28335 和入门套件演示
电风扇模拟自然风电路(十七)
TMS320DM365 数字媒体处理器技术概览
迫于美政府强硬要求,特斯拉拟将AI6.5芯片代工订单从台积电转至英特尔
一些语句读不懂,请指点,多谢!
电风扇模拟自然风电路(十八)
莫仕收购Teramount,聚焦共封装光学(CPO)业务
摩尔线程 × 光轮智能|强强联手,共筑国产具身智能仿真底座
电风扇模拟自然风电路(十三)
PIC18F87J10 系列单片机
智能路灯该选什么样的无线通信技术?
TMS320DM365 数字媒体处理器示例
专为客户设计的高性能器件系列
距计划18天芯片厂罢工仅剩10天,三星与工会恢复谈判
电风扇模拟自然风电路(十四)
PSD8XXF 可编程单片机外围器件
PIC编译器
电风扇模拟自然风电路(二十一)
有关windML的问题请教!!!
NVIDIA追求模块化出货 台达电领军全球大扩产
PIC18FXX2 增强型闪存单片机
pspice学生评估版
ARM Axion 处理器加持谷歌第八代 TPU,云端全面转向智能体 AI 架构