OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4660|回复: 0

疯壳AI开源无人机串口(光流获取)

[复制链接]

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
发表于 2020-4-13 15:16:15 | 显示全部楼层 |阅读模式
本帖最后由 fengkesz 于 2020-4-13 15:17 编辑

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

包头
字节数
光流数据
和校验
环境质量
结束标识符
0xFE
0x04
DATA0
DATA1
DATA2
DATA3
SUM
SQUAL
0xAA0xBB
其中DATA0DATA1flow_x拆分出来的低8位数据和高8位数据,即flow_x=(int16_t)(DATA1<<8)|(DATA0)DATA2DATA3flow_y的低8位和高8位,即flow_y=(int16_t)(DATA3<<8)|(DATA2),其中和校验为DATA0~DATA3的累加值,即SUM=DATA0+DATA1+DATA2+DATA3SQUAL为地面环境质量,数值越大表示地面环境质量越高;最后一个字节是结束符,有两种:常规模式下固定是0xAA(Y引脚接高电平)、偏航模式下是固定的0xBBY引脚接低电平)。
二、串口光流数据获取实验
串口光流数据获取实验使用STM32的串口2UART2与光流模组相连,串口1UART1通过USB转串口模块连接电脑,把串口2获取到的光流数据通过串口1传输到电脑端的串口调试助手显示出来。串口2的引脚如下图所示:
图片2.jpg 图片3.jpg

两个串口引脚分别与PA2PA3引脚相连,那么我们就对PA2PA3引脚进行配置,串口1的配置可以参考《串口(基础收发)》,配置代码(通过调用官方库)编写的思路如下:


代码思路
1
管脚配置
1、定义结构体;
2、使能时钟;
3、填充结构体;
4、装载结构体。
2
串口配置
1、定义结构体;
2、使能时钟;
3、填充结构体;
4、装载结构体;
5、开启中断;
6、使能串口。
3
中断优先级管理
1、定义结构体;
2、填充结构体;
3、装载结构体。
4
逻辑处理
1、等待接收以及发送数据。
串口2初始化代码如下:
图片4.jpg
串口2接收到光流模组的数据就转发到串口1,串口2中断函数代码如下。
图片5.jpg
设置串口2的波特率为19200,代码如下:
图片6.jpg
保存、编译、下载代码,确保串口2接上了光流模组,然后再把串口1接上USB转串口模块,最后接到电脑的USB端口,如下图所示:
图片7.jpg
然后在把USB转串模块插到电脑的USB口,打开电脑端的串口调试助手,找到对应的COM口(前提是安装了USB转串口驱动),设置波特率为115200,打开,可以看到串口在不断打印光流模组发送的数据,如下图所示。
图片8.jpg

2.飞控开发基础-【4】串口(光流数据获取).pdf

1021.87 KB, 下载次数: 18

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表