一、项目简介
基于机器视觉模块OpenMV采集车道、红绿灯、交通标志等模拟路况信息,实现一辆能车道保持、红绿灯识别、交通标志识别、安全避障以及远程WiFi控制的多功能无人驾驶小车。
赛道规格:

1、编程所需软件:
OpenMV:使用OpenMV官方的OpenMV IDE

ESP8266:使用Arduino官方的Arduino IDE

STM32:使用ARM官方的Keil uVision5(ARM版)

2、功能介绍:
OpenMV:主要是利用OpenMV进行路况信息(红绿灯、交通标志、车道)的采取,以及和STM32的通信。
ESP8266:主要是利用ESP8266与手机端进行远程的指令接收和数据交互,以及和STM32的通讯。
STM32:主要是通过ESP8266接收远程控制指令和处理路况信息,并根据这些指令数据进行实时的PID控制小车运动。
二、硬件系统
主要依靠机器视觉模块OpenMV通过图像处理的方式获取实时的路况信息,以及超声波传感器获取障碍物距离信息,得到的路况数据再通过串口传输到主控器STM32上面,STM32会将实时的路况信息处理成智能小车的运动控制指令,让智能小车实现红绿灯识别、交通标志识别以及车道实时保持的功能,还有STM32也会通过WiFi模块ESP8266与手机端进行路况数据和控制指令的远程交互。硬件系统框图如下:

下面简单介绍一下,整个系统用到的硬件模块。

具体的硬件电路连接框图如下:

三、软件系统
1、OpenMV中的路况识别算法实现
本项目的主要路况数据信息都是基于OpenMV摄像头获取的图像进行图像处理得到的。要实现智能小车的自动驾驶行为,最起码要让小车识别到红绿灯、交通标志以及车道,后续主控器才能根据这些路况数据信息控制小车的运动。关于机器视觉模块OpenMV的介绍,可以浏览《初探机器视觉模块OpenMV》这篇文章。
①红绿灯识别
主要是对摄像头每帧拍摄到的图像进行图像进行阈值处理,再进行判断出现的究竟是哪种红绿灯(红灯、绿灯、黄灯),然后再将这个判定结果和其他两个数据一起打包通过串口发送出去。
【程序流程图】

【主要程序】
############

659

被折叠的 条评论
为什么被折叠?



