本帖最后由 gong202207 于 2023-6-15 00:29 编辑
一、作品介绍
本课题使用HC-SR04超声波测距模块和 OV2640摄像头模块与EKT043开发板组成一个类似倒车影像接近报警的装置。当物体接近小于10cm时,蜂鸣器会报警并触发图标警示。
二、工作原理
1) HC-SR04超声波测距模块有四个引脚VCC、Trig、Echo、GND,通过给Trig引脚最少10us的高电平可触发超声波发出,当超声波碰到障碍物时会返回并被接收,此时监测Echo引脚高电平存在的时间t,通过公式:S=t*340(m/s)/2,即可算出测试距离。
2) OV2640摄像头模块有18个引脚,其中所有作为输入引脚的都需要往上焊接一个上拉电阻,通过对SCL、SDA以SCCB协议写入寄存器和相应数据配置好相关初始化参数,即可通过IO口监测帧同步信号(VSYNC)、行同步信号(HREF)以及PCLK像素时钟信号来获取D0~D7所组成的有效的像素点。
三、设计思路
1) 硬件部分
HC-SR04超声波测距模块VCC需要5V供电,EKT043板上无法提供,所以这里使用我现有的USB转TTL串口模块上的5V进行供电,Trig、Echo两引脚分别接入板上P1.2和P1.1处,GND接板上GND即可。
OV2640摄像头模块有18个引脚,其中SCL、SDA 接板上P3.2、P3.3处,D0~D7按顺序接入P2.0~P2.7处方便一次性读出,VSYNC、HREF以及PCLK分别接入P1.5、P1.6、P3.0处,PWDN、RST分别接入P1.7和P3.1处,其它引脚接板上对应处即可。
2) 软件部分
首先配置OV2640摄像头,将其配置成JPEG输出,分辨率配置为400*300,这里有个很重要的配置,就是配置内部分频为倍频即0X11寄存器配置为0X80,这样可以使帧率提升。主要流程:等待帧同步为高电平—等待HREF为高电平—等待第一个PCLK上升沿—读取第一个像素字节并存入数组buf中—等待第二个PCLK上升沿—读取第二个像素字节并存入数组buf中——循环读取剩余像素——结束,将 buf数组中的数据全部放入图标叠加显示控件,并写入显示指令即可显示画面。
最后配置HC-SR04超声波测距模块,设置好相应 IO口引脚的输入输出,在没有打开摄像头的情况下,每隔150ms执行一次超声波测距,每三次取平均值,并显示在界面上,当平均值小于10cm时,使蜂鸣器发声0.5s并显示警示图标。打开摄像头时每显示一帧即执行一次超声波测距,显示速度与未开时一致。
四、GUI的设计
本课题界面使用三种显示控件和一种触控控件,分别为图标叠加显示、变量图标显示、数据变量显示以及增量调节触控控件。界面简洁,容易分辨出各功能的使用。
|