摘 要
随着社会的信息化的全面覆盖,老旧的传统模式的灭蝇灯也逐渐显示出了一定的弊端。例如不够快捷方便,难以实时观察等。作为一款需要经常观察维护的产品设备,人们难以准时地观察到灭蝇灯的使用状况,更遑论及时更换相关部件。这极易造成产品的无法使用效率降低,乃至于毁坏产品造成一定的安全隐患。所以,一款相关的灭蝇灯智能远程监控系统是十分有必要的。
本次设计的目的是为了对传统的灭蝇灯进行一定程度的便捷化智能化改良,其主要的设计的监控系统能够查找到已经使用的粘纸的覆盖率,并在覆盖率达到一定的比例之后,通过控制电机的自动旋转,来更换灭蝇纸,并将使用状态传输到设备中,使人们更加方便快捷的就可以查看到灭蝇灯的使用状态,极大地提高了用户的体验。
关键词:STM32;嵌入式;灭蝇灯;监控系统
1 总体设计方案
1.1 系统的总体方案设计
基于STM32的灭蝇灯智能远程监控系统由STM32为主要控制芯片,由图像采集模块等组成。在打开了软件和硬件之后,系统会自动开始运行拍摄图像,拍摄之后的图像会传输至图像分析算法之中,经过算法判断分析,得出纸张上面蚊蝇的覆盖率,并判断是否需要更换纸张,并将计算得到的信息传输到需要查看的设备当中,供使用者查看。
图 2.1 灭蝇灯智能远程监控系统组成
2 硬件设计
2.1 STM32简介
STM32作为一款微控制器,它是由意法半导体公司生产的。其常用的CPU采用的是由ARM公司设计的处理器的构架,被称作Coetex-M3。作为一个完整的开发板,其不仅仅需要内核,还需要一定量的外设来辅助,这样才能使开发者在开发的过程中更加的方便,更加得心应手。如外设中的I/O口就是为了用来和外界的其他设备进行信息交换和控制,除此之外还有各种其他常用的系统如时钟电路,复位系统等,以此满足开发者各式各样的需求。下图2.2为芯片整体结构示意图。
图2.2 芯片的内核和外设相关原理图
而本次设计使用的芯片的内核,与之更进一步的是,本次使用的内核由Cortex M3改为了ST公司由近十年最新推出的Cortex M4内核。再一次极大的提高了主频,甚至达到了近170MHz,具有了更加广阔的应用前景。相对于之前使用的F1系列,更是有着无可比拟的优势。其主要优势分为以下几个方面。首先是内核的更新,因为F1系列同样基本上使用的也都为M3内核,并且缺少了FPU和DSP的指令集。其次,因为本次设计为监控系统,需要使用摄像头模块,而F4系列不仅安装了摄像头接口,而且拥有近200kb的片内SRAM等资源。对于已有的外设,该系列也进行了大程度的加强。比如模数转换的速度大幅提升,芯片所需要的工作电压更低等。在功耗方面也大大降低,大约的功耗为238uA/MHz。相对于其他的型号也大大降低。而本款开发板的外设部分也相对于其他款式有着一定的优势,如其提供了十种以上的标准接口,更加方便进行实验和开发。
图2.3 本次使用芯片实物图
图2.4 本次使用芯片引脚图
在引脚方面,除了晶振占用的IO口,其他所有的IO口均已被开发板引出,因此在资源方面,可以对开发板进行灵活的开发和配置。
2.2 ESP32-CAM简介
作为一个摄像相关开发板,它的优点是可以作为一个最小系统进行独立的工作。因为前两次实验设计采用的是OV2640摄像头,而ESP32可以和其完美适配,且本款式内部也自带有摄像头,因此无论是和之前的摄像模块兼容还是作为个体单独使用,都是十分好的。下图展示的是该设备,包括其自带的一款型号的摄像头。
图2.5 ESP-CAM上所用的摄像头(其中一款)
3 整体模块设计
嵌入式系统(Embedded system)是一种有一定历史的能够进行一定量计算或者完成某些需求功能的微型计算机系统。本次设计的系统采用的芯片的型号是STM32F407ZGT6,其中的设计包括了延时,LED控制,步进电机控制等设计。下方为本次的整体硬件设计(不包括PC端)完成后所拍摄的图片3.1。由于缺少对应的灭蝇灯监控系统的保护外壳,暂时使用气泡纸和纸盒进行暂时性的保护和替代。
图3.1 本次设计的系统的实拍图片
4 芯片的选择
芯片作为整个系统的核心,有着不可代替的重要性。尤其是在这次的设计之中,因为涉及了监控系统,所以对芯片的运算频率以及性能的要求高于一般的温湿度传感器等设置的系统。不仅如此,因为是长时间的监控系统,对模块接触的稳定性也有着一定的要求。如果芯片的工作频率过低,则可能导致其监控经常性的产生卡顿,大大影响了监控的实时性和准确性。而若监控芯片的接口不太稳定,则容易导致图片失真,如图像模糊或者产生雪花等,同样影响了整个系统监控的时效性和准确性,因此选择一款性能优秀的芯片十分重要。
同样的在满足性能要求的前提下,合适的价格也是十分重要的,因为虽然在选型和设计的时候使用的芯片数量并不是很多,但因为设计好的智能监控系统属于智能设备,需要在大量的灭蝇灯之中安装,因此如果芯片的整体花费过大,不仅会影响整个灭蝇灯监控系统的经济效益,而且会导致无法大量生产,违背了设计的初衷。基于身边的材料和对于性价比的计算,本次设计初步选定了多块不同型号的STM32芯片开发板进行备用。
第一种开发板为STM32 MARVELL 8801开发板,其芯片的型号为F103RGT6,使用的图像采集方式是OV2640,该模块为两百万像素的摄像头,可采集灭蝇灯的图像。开发板的具体状况(包括外设)如下图3.2,图3.3所示:
图3.2 第一款开发板背面
图3.3 第一款开发板正面
其中,也包含了一些相关的软件资源,如STM32源码,OV2640摄像头驱动程序等。OV2640作为一款Omni-Vision公司生产的软件,其包含了0.25寸的传感器,它不仅体积小巧方便在各种需要的地方安装,而且它的工作电压同样也较低,不会对整个系统造成较大的载荷。经过一系列的实验,F103型号的开发板的弊端逐渐显露了出来,其72MHz的CPU不足以满足实时监控所需要的硬件要求,不仅造成了一定时间内监控图像的卡顿,而且拍摄出的图像由于算法和设备的双重原因,输出的效果较为模糊,没有达到使用者对实施精确的观察灭蝇灯的需要。
5 下载调试
在完成了整体的设计之后,将单片机需要执行的程序拷入其中,再对整个系统设备的电源部分进行接通。开始执行整体程序并对有错误的部分进行调试和改进。下面对PC端部分进行粗略的展示。下图5.2为PC端C++程序的调试编辑平台。点击本地调试器后开始运行。图5.3为某次实验时的用户监控界面。
图5.2 调试前的准备
图5.3 某次实验时的图像
5.1 实际检验操作
打开开发环境中的解决方案文件程序并运行,其中scales代表的是当前拍摄的图片中,黑色面积的覆盖比例,以此来判断灭蝇灯粘纸上已经使用部分所占整
个粘纸比例的近似值。而left paper count则代表自动更换系统中,粘纸的剩余数量。为了便于实验和调试,先将系统中的纸张数量默认为10。此时将摄像头的一部分已黑色的物体模拟已经被使用部分的粘纸,覆盖摄像头的一部分,让系统对情况进行分析。经过系统分析之后,系统开始传输本次分析之后的数据。
图5.3 第二次传输的数据
此时经过系统分析,黑色面具的覆盖率为0.449519左右,经过判断,覆盖面积大于设定数值0.35,因此需要更换纸张,系统自动控制电机旋转180度。此时LETF PAPER COUNT数字自动减一。
在电机转动之后,系统默认纸张已经更换完毕,SCALES数值将自动归零。并将现在的纸张数和比率再次传送到查看设备之中。
图5.4 第三次传输结果
此时SCALES数值再次归零,LEFT PAPER COUNT的数值减一,保持为9。经过对整体系统的实验测试,整个系统可以正确的平稳的运行,能够在日常生活中投入使用。
6 总结
因为嵌入式的设计不仅包含了软件,而且有相关的硬件部分。所以和纯软件设计不同,仅仅是在相关开发平台上进行程序调试,即使运行不报错,也有可能因为其他原因产生设计上的失误。如程序运行结果无法在硬件上完美表达,或者在硬件的设计中哪部分产生了一定程度上的疏漏,甚至是没问题的硬件也有可能因为一些外部的不可抗力的影响而对整体系统运行产生误差。因此,比起仿真,嵌入式系统的设计更需要的是在设计完之后进行软硬件的整体测试。本章便是对整体设计的系统,进行协调性的调试,来确定是否可以正常地运行以及哪些部分不足需要修改。