摘 要
本设计提出了一种基于 32 单片机的车牌识别系统摄像头图像处理方案。该系统主要由 STM32F103RCT6 单片机核心板、2.8 寸 TFT 液晶屏显示、摄像头图像采集 OV7670、蜂鸣器以及 LED 电路组成。
在车牌识别过程中,STM32F103RCT6 单片机核心板发挥着关键的控制作用。摄像头图像采集 OV7670 负责获取车辆的图像信息,能够清晰地捕捉车牌区域。采集到的图像数据传输至单片机进行处理,通过一系列的算法对图像进行分析和识别。2.8 寸 TFT 液晶屏显示模块实时展示采集到的图像以及识别结果,为用户提供直观的视觉反馈。
当系统成功识别车牌后,可通过 LED 电路进行状态指示,例如亮起特定颜色的 LED 灯表示识别成功。同时,蜂鸣器可发出提示音,提醒用户车牌已被识别。整个系统的各个模块相互配合,实现了高效、准确的车牌识别功能。
该车牌识别系统具有广泛的应用前景,可应用于停车场管理、交通监控等领域,提高车辆管理的效率和准确性。它具有操作简便、识别速度快、准确率高等优点,为现代化的交通管理和车辆管控提供了有力的技术支持。
关键词:车牌识别、STM32 单片机、图像采集、TFT 显示
2.方案的设计与论证
2.1 单片机芯片的选择
方案一
采用可编程逻辑器件CPLD作为控制器,CPLD可以实现各种复杂的功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑,最终放弃了此方案。
方案二
采用ST公司的STC89C52单片机作为主控制器,STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。该单片机功耗低、接口丰富,成本低廉,完全能满足本设计要求。
方案三
采用单片机芯片控制MSP430单片机是美国德州仪器(TI)推出的一种16位超低功 耗的混合信号处理器(Mixed Signal Processor),主要是针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”混合信号处理的解决方案。MSP430F149是一个16位的、具有精简指令集的、超低功耗的混合型单片机,具有可靠性高、功耗低、扩展灵活、体积小、价格低和使用方便等优点,广泛应用于仪器仪表、专用设备智能化管理及过程控制等领域,有效地提高了控制质量与经济效益,已成为众多单片机系列中一颗耀眼的新星。
方案四
本文所选单片机控制芯片为STM32单片机,STM32系列处理器是意法半导体ST公司生产的一种基于ARM 7架构的32位、支持实时仿真和跟踪的微控制器。使用ARM最新的、先进架构的Cortex-M3内核,具有优异的实时性能、杰出的功耗控制、出众及创新的外设,并且最大程度的集成整合,十分易于开发,可使产品快速将进入市场。
综上所述,故选择方案四。
3.硬件电路的设计
3.1 系统功能分析和硬件框图
本系统有STM32F103RCT6单片机核心板、(无无线/无线蓝牙模块-可选)、2.8寸TFT液晶屏显示、摄像头图像采集OV7670、蜂鸣器、LED电路组成。
1、stm32单片机通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。
2、stm32单片机通过模式识别、匹配货的车牌的识别结果,并在屏幕上进行显示。
3、识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五个过程。
4、车牌锁定后会有蜂鸣器提醒,在分析获取到车牌后对车停留时间进行计时,并进行计费。
5、在图像采集界面,通过按键可以进入后台计费界面。在车牌识别后进入计费界面,可以通过按键退出计费界面,回到图像采集界面。
6、无线APP功能(注意配备蓝牙才有该功能):
APP能够连接板载无线模块,车牌识别成功后,相关信息会上传到手机蓝牙APP,进而查看相应所有数据,具有强大的实用性功能,方便快捷智能化!
注意:单片机处理能力及速率有限,目前识别汉字:渝、辽、沪、浙、苏、粤,车牌图片一定要清晰,无反光,容易识别。
车牌识别操作技巧与按键功能说明:
1、重要一点,通过摄像头前面螺钮可以调焦,拧到直到液晶显示图像最清晰(一般我们调试好的)。
2、尽量让车牌号处于液晶中央位置,让车牌号内容处于两蓝线之间,且两蓝线处于红线上方。
3、位置合适后,进入倒计时,到时蜂鸣器会“嘀”的一声响,表示开始分析识别。识别需要一定时间。
3.在没有识别出车牌前,按下K1可查看已经识别出的车牌信息,并可看到计费信息(模拟停车场),识别出车牌后,显示车牌信息后, 需要按下按键K2,方可返回主界面。
图3-1是其系统框图:
图3-1无无线系统框图(待选)
4 主函数程序流程图
本系统设计主要采用keil软件编写与调试程序,程序语言采取易读性和移植性更高的C语言编写。系统运行主程序流程图如下图所示。
无线主函数流程图(待选)
4.4 8050有源蜂鸣器报警电路软件设计
报警电路采用蜂鸣器报警电路,蜂鸣器与家用电气上的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL电平基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,即此单片机的一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流。
蜂鸣器的正极性的一端联接到5V电源上面,另一端接到三极管的集电极,三极管的基极由单片机的一个管脚来控制,当单片机对应的管脚为高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当管脚为低电平时,三极管截至,蜂鸣器不发出声音。为了防止三极管直接被导通我们加一个限流电阻,作为保护。
流程图如下:
5.系统调试
5.1 电路焊接
手工焊接是常用原始的焊接方法,目前大量工厂焊接的生产基本上不采用原始方法了,但是普通元器件的修理、系统测试中经常使用原始的手工焊接。重要的是如焊接本质上出现问题,则会影响到整个控制系统的,可以这么说,焊接的会导致这个控制系统可不可以用的。手工焊接主要有如下四步组成的:
第一步开始焊接:
需要把需要焊接的地方打扫干净,主要去处油迹和灰尘,然后把需要焊接的元器件的两个角向一定的方向掰一掰,注意不能把元器件的脚相交在一起了,这样会影响焊接的。接下来让电烙铁头碰到需要焊接的元器件脚下,放上焊锡丝。此处需要注意的是,不能让烙铁头碰到其它元器件的脚了,要不然会把两个元器件焊接在一起了。
第二步给焊接升温:
当在完成第一步以后,接下来就是加热焊锡丝了,主要是将烧热的电烙铁放在器件管脚旁边,慢慢融化焊锡丝,需要注意电洛铁的温度和加热时间,若时间过长,很有可能焊坏面包板焊盘的,一般建议电洛铁温度调整在400。C左右,加热2秒钟左右,例外也要根据器件种类作出具体区别的。在焊接过程中,当需要把焊接好的元器件卸下来,则也需要给焊接处进行加热的,主要操作是首先在焊接处补好焊锡丝,使焊点是圆润的,然后用电洛铁在焊接处进行加热,在加热的过程中就可以直接把元器件卸下来了,此时一定要主要时间,要不然也会损坏焊盘的
第三部清理焊接面:
当在完成第二步时,有的时候会观察到焊接的不完美或者担心出现虚焊情况,这时候需要进行修改的。主要是两种情况的,第一种是焊锡不够,焊接点不圆润,这时需要给焊接处补焊锡,此时需要注意的是焊锡量不能补多,要不然容易连接到其它期间的引脚的。第二种是焊锡过多,这时候可以用电洛铁放在焊接处来回的滑动,会把多余的焊锡带走的,若不行,只能使用吸锡器了。
第四部检查焊点:
当完成以上三步了,最后就需要整体观察了,主要是观看焊接点是不是圆满、亮度好、紧固,有没有与其它管脚相连在一起了。
5.2 系统调试
整体系统上电调试前,大概观察下焊接的系统还存在问题,例如还有很显眼的断裂,正负极接反以及相连、虚焊、等问题,然后用万用表检测一下,电源正负极之间是否短路等严重的电源问题,最终保证系统没有问题。
5.2.1 系统程序调试
(1)在Keil软件中先创建一个工程:单击菜单栏中的“工程”,输入新建工程名,并保存。
(2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名“***.c”,新文件创建完成。
(3)程序编译和调试:单击编译按钮,系统会对文件进行运行,在输出窗口中可看到提示信息,如过窗口显示有error信息,则按提示找出错误并改正,直到提示没有错误提示为止。
(4)程序编译无错误后,进入程序调试状态,可查看单片机资源状态,进行断点等方式调试。
5.2.2硬件测试
最后一步就是硬件整体测试了,主要运用万用表、直流电源和示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。其中静态调试主要分为以下四种:
1、肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。
2、使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。
3、上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。