基于STM32的IMU摄像机设计与实现.docx

上传人:飞****2 文档编号:54334912 上传时间:2022-10-28 格式:DOCX 页数:11 大小:502.70KB
返回 下载 相关 举报
基于STM32的IMU摄像机设计与实现.docx_第1页
第1页 / 共11页
基于STM32的IMU摄像机设计与实现.docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《基于STM32的IMU摄像机设计与实现.docx》由会员分享,可在线阅读,更多相关《基于STM32的IMU摄像机设计与实现.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于STM32的IMU摄像机设计与实现一、实验目的1、熟悉STM32的硬件组成及配置,了解ARM嵌入式体系编程流程;2、掌握中断、串口的数据传输和熟悉STM32控制使用PCT08串口摄像头采集图像的方法;3、掌握STM32采集IMU传感器数据的方法;4、掌握STM32通过Wi-Fi向PC机传输图像数据和IMU传感器数据的方法;5、进一步了解、熟悉、掌握嵌入式系统编程的思路和方法,为应用嵌入式MCU打下良好基础。二、实验设备神舟III号实验板、PCT08串口摄像头、MPU6050传感器模块、iTool工具盒、PC机、杜邦线若干。三、硬件结构设计图1:系统硬件连接框图如上图所示,系统分为两部分,

2、第一部分是下位机:主要模块有:1、图像采集模块,主要由 STM32控制串口摄像头(PCT08)实现;2、IMU传感器数据采集模块,主要由STM32控制IMU传感器(MPU6050)实现;3、Wi-Fi模块,实现STM32同PC机的无线通信,传输信息。第二部分是上位机,主要功能是对下位机上传的数据进行处理(显示等)。 四、系统模块功能介绍系统中主要的三个功能模块分别是:PCT08串口摄像头,MPU6050和Wi-Fi模块。各模块功能介绍如下:(一)、PCT08串口摄像头PTC08 是一款集图像采集、拍摄控制、数据压缩、串口传输于一体的工业级图像采集处理模块。其内置的高性能数字信号处理芯片实现了对

3、原始图像的高比例压缩。产品图像输出采用标准JPEG 格式,可方便地兼容各种图像处理软件;标准的三线式RS-232 通信接口以及简单的图像传输协议使得摄像头可以方便地实现与电脑以及各种嵌入式系统的连接;预留的红外补光功能接口可以外接红外灯板,在各种光照条件下清晰成像。1、使用说明PTC08 串口摄像头模块分为模块本体和串口连接线(可自行选配)两部分。两者之间用可任意插拔的4pin 2.0mm间距的标准插座连接,如下图所示:图2:PCT08完整视图2、 电路设计图3:PCT08电路图3、摄像头通讯协议a.复位指令:56 00 26 00 ;返回:76 00 26 00 +DSP版本信息(只需判断返

4、回的前4 个字节正确即可,版本信息不用理会)b.拍照指令:56 00 36 01 00;返回:76 00 36 00 00c.读所拍图片长度指令:56 00 34 01 00;返回:76 00 34 00 04 00 00 XX YY;XX YY -图片数据长度,XX 为高位字节,YY 为低位字节d.读取所拍图片数据指令:56 00 32 0C 00 0A 00 00 XX XX 00 00 YY YY 00 FF;返回:76 00 32 00 00 FF D8 。FF D9 76 00 32 00 00;00 00 XX XX - 起始地址(先高位字节,后低位字节。必须是8 的倍数);00

5、00 YY YY - 本次读的数据长度(先高位字节,后低位字节)。注意:完整的JPEG图片文件一定是以FF D8 开始,FF D9 结束。如果是一次性读出整张图片数据,则起始地址就是:00 00 00 00,本次读的数据长度就是c指令读出的整张图片的字节长度。读出的数据就是以FF D8 开头,FF D9结尾。如果要分多次读取图片数据,则第一次读的起始地址是:00 00 00 00,后几次读的起始地址就是上一次读取数据的末尾地址。e.清空图片缓存指令:56 00 36 01 02;返回:76 00 36 00 00f.设置拍照图片压缩率指令:56 00 31 05 01 01 12 04 XX;

6、 返回:76 00 31 00 00;XX 一般选36 (范围:00 -FF)g.设置拍照图片大小指令: (默认大小为:320 * 240)56 00 31 05 04 01 00 19 11320*24056 00 31 05 04 01 00 19 00640*48056 00 31 05 04 01 00 19 22160*120返回:76 00 31 00 00 xx;注意:设置图片大小指令后,需要复位一次,新的设置值才会生效!h.修改串口临时波特率指令: 56 00 24 03 01 XX YY;返回:76 00 24 00 00XXYY速率AEC8960056E4192002AF2

7、384001C4C576000DA6 注意:1、默认波特率为:38400;2、用该指令修改波特率后,重新上电时,又会恢复为38400。i.修改串口初始波特率指令: 56 00 31 06 04 02 00 08 XX YY;返回:76 00 31 00XXYY速率AEC8960056E4192002AF2384001C4C576000DA6 注意:修改串口初始波特率后,需要复位一次,新的设置值才会生效!执行指令强烈建议采用一问一答的交互方式, 以确保指令执行成功!2.4 PTC08 摄像头上电初始化流程:(1) 上电;(2) 延时2.5 秒;(3)复位指令;(4)设置拍照图片大小指令(可选,如

8、更改后需要复位一下才会生效);(5)设置拍照图片压缩率指令(可选)。拍照片的流程:(1)发送清空图片缓存指令;(2)发送拍照指令;(3)发送读取所拍图片长度指令;(4)发送读取所拍图片数据指令。(二)、 WIFI 串口服务器USR-WIFI232-6021、 硬件连接首先将DC5V 电源、232 线、天线接到USR-WIFI232-602 服务器上,232线另一端接到STM32的一个串口上。2、配置模块(1)、进入模块的内置网页:第一步:首先将电脑的WIFI 打开(如果本身没有带WIFI,可以用USB 无线网卡替代)。点击电脑右下角的“网络”图标。并在其中选择我们服务器的WIFI 网络“HF-

9、A11x_AP”并加入其中。第二步:打开电脑的浏览器,在地址栏输入模块的IP“10.10.100.254”,点击回车进入网页;进入网页后会有用户名密码的验证,模块默认的用户名是admin,密码是admin。(2)、设置模块的工作模式:在首页也就是“模式选择”页面将“Station 模式”选中,并点击“确定”。(3)、无线终端设置:点击“无线终端设置”,在无线终端设置页面,点击页面中的“搜索”按键。新弹出来的页面中是周围路由器的列表,选择你要加入的路由器,并点击“Apply”。选择“Apply”后,会回到“无线终端设置”页面,如果有密码会提示输入密码,之后填写密码,最后点击“确定”即可。(4)、

10、重启模块:点击“模块管理”,进入“模块管理”页面,并点击“重启”。3、数据传输协议设计(1)、基本传输命令a、下位机命令 0x00:StartPIC准备传输图片 0x02:PICDataLength传输图片数据长度 0x06:StartMPU准备传输MPU 0x08:MPUDataLength传输MPU数据长度b、上位机命令 0x01:ACKStartPIC 0x00的应答信号 0x03:ACKPICDataLength 0x02的应答信号 0x05:ACKPICData 完整接收图片数据应答 0x07:ACKStartMPU 0x06的应答信号 0x09:ACKMPUDataLength 0

11、x08的应答信号 0x0B:ACKMPUData完整接收MPU数据应答(2)、图片发送:a、STM32发送握手信号0x00,等待应答信号0x01b、PC发送0x01应答信号(握手成功),然后开始等待picture长度c、STM32发送“0x02+PICDataLength”d、PC响应0x03,说明接收成功e、STM32发送PICDataf、PC响应0x05,图片数据接收成功(3)、MPU数据发送a、STM32发送0x06,开始发送MPU的准备b、PC响应0x07c、STM32发送“0x08+MPUDataLength”d、PC响应0x09,说明接收成功e、STM32发送MPUDataf、PC

12、响应0x0B,MPU数据接收成功(三)、 IMU传感器MPU6050传感器模块采用高精度的陀螺加速度计MPU6050,通过处理器读取MPU6050的测量数据然后通过串口输出,该模块内部自带电压稳定电路,可以兼容3.3V/5V的嵌入式系统,连接方便。1、引脚说明 VCC的功能是模块电源,3.3 V或 5V输入;GND的功能是地线;RX的功能是串行数据输入,TTL电平TX的功能是串行数据输出,TTL电平SCL的功能是I2C时钟线SDA的功能是I2C数据线。 如上图所示,模块的轴向在上图的右上角标示出来,向右为X轴,向上为Y轴,垂直于纸面向外为Z轴。旋转的方向按右手法则定义,即右手大拇指指向轴向,四

13、指弯曲的方向即为绕该轴旋转的方向。2、与单片机连接,如下图所示: 图4、MPU6050与STM32连接图3、通信协议(1)、上位机至模块指令内容 功能 0xFF 0xAA 0x52角度初始化,使Z轴角度归零0xFF 0xAA 0x61使用串口,禁用I2C,掉电保存,建议使用上位机修改0xFF 0xAA 0x62禁用串口,使用 I2C接口,掉电保存,建议使用上位机修改0xFF 0xAA 0x63波特率,帧率100Hz,掉电保存,建议使用上位机修改。0xFF 0xAA 0x64波特率 9600,帧率20Hz,掉电保存,建议使用上位机修改说明:模块上电以后需先保持静止,模块内部的MCU会在模块静止的

14、时候进行自动校准,校准以后Z轴的角度会重新初始化为0,Z轴角度输出为0时,可视为自动校准完成的信号。出厂默认设置使用串口,波特率,帧率100Hz的配置可通过上位机软件配置,因为所有配置都是掉电保存的,所以只需配置一次就行。(2)、模块至上位机 模块发送至上位机每帧数据分为三个数据包,分别为加速度包、角速度包和角度包,三个数据包顺序输出。波特率时每隔10ms输出1帧数据,波特率9600时每隔 50ms输出一帧数据。加速度输出角速度输出角度输出数据编号数据内容含义数据编号数据内容含义数据编号数据内容含义00x55 包的开头00x55 包的开头00x55包的开头10x51标识此包是加速度包10x52

15、 标识此包是加角速度包10x53 标识此包是加角度包2AxLx轴加速度低字节2wxL x轴角速度低字节2RollL x轴角度低字节3AxH x轴加速度高字节3wxH x轴加速度高字节3RollH x轴角度高字节4AyL y轴加速度低字节4wyL y轴加速度低字节4PitchLy轴角度低字节5AyHy轴加速度高字节5wyH y轴加速度高字节5PitchHy轴角度高字节6AzL z轴加速度低字节6wzL z轴加速度低字节6YawLz轴角度低字节7AzHz轴加速度高字节7wzHz轴加速度高字节7YawHz轴角度高字节8TL 温度低字节8TL温度低字节8TL 温度低字节9TH 温度高字节9TH温度高字

16、节9TH温度高字节10Sum校验和10Sum校验和10Sum校验和五、程序设计在设计软件时,要考虑到各个模块是否能都正常工作,而后才能用STM32控制各个外设得到相应的数据,因此设计实验流程图如下:图5:程序流程图在进行软件设计前,应该对PCT08串口摄像头,MPU6050,Wi-Fi模块和STM32串口分别进行测试设备以确保的正常。程序流程如上图所示:在主函数中,定义中断和参量后,就要对系统的外设模块进行初始化,各个模块的初始化方法在系统模块中都进行了介绍。判断各个模块初始化是否成功,如果初始化失败,则再次对此模块进行初始化设定,直至其初始化成功。各个模块初始化成功后,进入while循环等待

17、摄像头请求中断的到来,收到中断后,串口1读取摄像头图像数据并存储,串口2读取MPU6050返回的姿态信息并存储。当串口1、2读取并存储完毕后,STM32控制WiFi模块通过串口3发送至上位机。上位机接收图像并存储在电脑,调用OPENCV库显示图像信息和姿态信息。六、实验结果及总结由于硬件限制等原因,本实验没有能够完成要求的所有功能,可以实验各个串口的收发;摄像头初始化;上位机显示图像信息,但是没有实现采集MPU6050数据以及Wi-Fi发送。遇到的困难主要有:(一)、不了解摄像头的工作要求,很长一段把摄像头的电源接到STM32的引脚PA1和GND上供电(摄像头公司给的程序这样供电),导致摄像头

18、不能工作。因为摄像头是5V供电,而STM32引脚出来的TTL高电平只有3.3V,摄像头供电电压不足,不能工作,这时STM32给摄像头发初始化命令,返回的数据都是00,得不到正确回应。(二)、没有检测神州版的各个硬件是否正常。由于下发实验的STM是新板子,先入为主的认为硬件应该都没有错误。但是在用串口2进行摄像机初始化时,怎么也得不到摄像头的返回值,用串口助手检测串口2发现,串口2的RX不能正常工作。(三)、不能熟悉运用STM32的中断,在接收摄像头返回的信息时,采用查询方式,导致除首字符之外的其他字符因为不能及时接收而丢失。如果采用中断方式接收,则只要当接收寄存器中有数据时,判断RXNE寄存器,读取当前接收寄存器中的数据,清除RXNE标志,等待接受下一字符。(四)、对c语言结合STM32硬件编程不熟悉,在编写和修改程序时速度慢。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁