单片机设计_智能可视化倒车系统(STM32、OV7670摄像头、HC-SR04超声波传感器)

本文主要是介绍单片机设计_智能可视化倒车系统(STM32、OV7670摄像头、HC-SR04超声波传感器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能可视化倒车系统

想要更多项目私wo!!!

一、系统总体框图

当小车前进时,LCD上可显示小车前进的提示信息等;当小车后退时,开始利用图像传感器实现对小车后侧的图像实时监测,利用距离传感器实现对小车后侧障碍物的距离实时监测,并将测量数据传送至STM32进行处理,然后由控制器根据所检测的各种数据实现在LCD模块上显示出来。根据要求设计要求,可得到系统总体框图如下:
在这里插入图片描述

二、总体电路设计

根据总体框图,主控芯片可用STM32F103,再在该主控芯片外部连接晶振电路、复位电路、存储电路、按键电路、电源电路、图像传感器电路、距离传感器电路和声音报警电路等。 因条件限制,系统主控采用STM32F103ZET6开发板,开发板自带了复位电路、电源电路、晶振电路、声音报警电路等,存储器则为微控制器芯片内部系统总线上挂接的外设,系统电源由开发板本身通过一个usb电路供电,也可由提供的5v开关电源提供,显示模块为配套的4.3寸LCD,屏幕分辨率为800x480。距离传感器可以采用HC-SR04超声波传感器模块,图像传感器可以采用OV7670摄像头模块,将它们安装在小车后方,在小车后退时,实时检测后方的图像,以及与小车后方障碍物直接的距离,当距离太小时,发出警告。OV7670摄像头模块,最大能够输出VGA分辨率(640x480)的图像,直接和开发板的摄像头电路连接,HC-SR04超声波传感器能够检测2cm-400cm的距离,可用杜邦线和开发板的IO口相连。系统通过控制按键模块,实现对微控制器控制,同时微控制器控制OV7670图像传感器模块、HC-SR04超声波传感器模块和LCD显示模块,实现小车倒车时的图像显示,和障碍物距离过小报警。

三、运行结果图

v

四、主代码
/*想要更多项目私wo!!!*/
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"	 
#include "string.h"
#include "ov7670.h"
#include "tpad.h"
#include "timer.h"
#include "exti.h"
#include "usmart.h"
#include "beep.h"
#include "LcdApi.h"
#include "image.h"
const u8*LMODE_TBL[5]={"Auto","Sunny","Cloudy","Office","Home"};//5种光照模式	    
const u8*EFFECTS_TBL[7]={"Normal","Negative","B&W","Redish","Greenish","Bluish","Antique"};	                   //7种特效 
extern u8 ov_sta;           	//在exit.c里 面定义
extern u8 ov_frame;	            //在timer.c里面定义		
u32 ov_window_x,ov_window_y,ov_window_j;int main(void){	 u8 key,key_old;u8 flag = 0;u8 lightmode=0,saturation=2,brightness=2,contrast=2;u8 effect=0;	u8 msgbuf[15];				//消息缓存区u8 tm=0;  TIM5_Cap_Init(0XFFFF,72-1);delay_init();	    	           //延时函数初始化	  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);    //设置中断优先级分组为组2:2位抢占优先级,2位响应优先级uart_init(9600);	        	//串口初始化为 115200	LED_Init();		  			//初始化与LED连接的硬件接口KEY_Init();					//初始化按键LCD_Init();			   		//初始化LCD  BEEP_Init();TPAD_Init(6);				//触摸按键初始化 POINT_COLOR=RED;			//设置字体为红色  LCD_ShowString(30,30,200,16,16,"OV7670 Init...");	  while(OV7670_Init())       //初始化OV7670{LCD_ShowString(30,30,200,16,16,"OV7670 Error!!");delay_ms(200);LCD_Fill(30,230,239,246,WHITE);delay_ms(200);}LCD_ShowString(30,30,200,16,16,"OV7670 Init OK");delay_ms(1500);	 	   	TIM6_Int_Init(10000,7199);			//10Khz计数频率,1秒钟中断		EXTI8_Init();	ov_window_x=480;ov_window_y=400;		ov_window_j=192000;OV7670_Window_Set(12,176,480,400);	//设置窗口	 	OV7670_CS=0;			LCD_Clear(WHITE);BACK_COLOR=WHITE;POINT_COLOR=GREEN;			//设置字体为绿色 zt=0;ov_windows=1;Show_Str(20,100,220,24,"智",24,0);     //覆盖显示delay_ms(200);POINT_COLOR=BLACK;	Show_Str(70,100,220,24,"能",24,0);    //覆盖显示delay_ms(200);POINT_COLOR=BLUE;Show_Str(120,100,220,24,"可",24,0);    //覆盖显示delay_ms(200);POINT_COLOR=BRED;Show_Str(170,100,220,24,"视",24,0);      //覆盖显示delay_ms(200);POINT_COLOR=MAGENTA;Show_Str(220,100,220,24,"化",24,0);     //覆盖显示delay_ms(200);POINT_COLOR=BROWN;Show_Str(270,100,220,24,"倒",24,0);     //覆盖显示delay_ms(200);POINT_COLOR=GRAY;	Show_Str(320,100,220,24,"车",24,0);      //覆盖显示delay_ms(200);POINT_COLOR=DARKBLUE;Show_Str(370,100,220,24,"系",24,0);      //覆盖显示delay_ms(200);POINT_COLOR=LIGHTGREEN;Show_Str(420,100,220,24,"统",24,0);      //覆盖显示delay_ms(200);POINT_COLOR=GREEN;	flash_1();flash_2();flash_3();LCD_Clear(WHITE);while(1){			             //更新状态时清屏if(zt==1||zt==2){zt=0;LCD_Clear(WHITE);if(cars=='B'){LCD_ShowString(150,90,200,24,24,"000.0CM");}}ov_window_x=320;ov_window_y=480;ov_window_j=153600;OV7670_Window_Set(12,176,320,480);	//设置窗口	POINT_COLOR=GREEN;			//设置字体为绿色 	Show_Str(60,60,220,24,"小车状态:",24,0);    //覆盖显示Show_Str(60,90,220,24,"距离:",24,0);       //覆盖显示POINT_COLOR=GREEN;			//设置字体为绿色 	LCD_Color_Fill(360,0,480-1,160-1,(u16*)&gImage_1[0]);if(WK_UP==1)                     //判断小车状态{delay_ms(10);if(WK_UP==1){cars = 'G';Show_Str(180,60,220,24,"向前",24,0);    //覆盖显示}}if(KEY1==0){delay_ms(10);if(KEY1==0){cars = 'B';Back();Show_Str(180,60,220,24,"向后",24,0);       //覆盖显示}if(KEY1 == 1){flag = 1;}}if(KEY2==0){delay_ms(10);if(KEY2==0){cars = 'L';Show_Str(180,60,220,24,"向左",24,0);        //覆盖显示flash_5();LCD_Clear(WHITE);}}if(KEY0==0){delay_ms(10);if(KEY0==0){cars = 'R';Show_Str(180,60,220,24,"向右",24,0);        //覆盖显示flash_1();LCD_Clear(WHITE);}}if(flag == 1){LCD_Clear(WHITE);flag = 0;}}   
}

这篇关于单片机设计_智能可视化倒车系统(STM32、OV7670摄像头、HC-SR04超声波传感器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388136

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图