基于STM32的视觉检测光源控制器
2022-02-18何建方席涛黄果李萍
何建方 席涛 黄果 李萍
1. 韶关东阳光自动化设备有限公司 广东 韶关 512721;2. 海南软件职业技术学院 海南 琼海 571400
引言
工业生产过程中,需要对生产产品进行检测,若人为去检测,必然会导致检测效率低、检测时间长、检测准确性跟人的经验有很大的关联度[1-3]。随着智能制造的发展,视觉检测开始应用于工业生产中的产品检测,可进行产品的外观检测、缺陷检测等,可以实现生产全机械化,减少人力资源成本[4-6]。
视觉检测主要流程为摄像机对检测物品进行拍照,对照片进行处理,得到检测结果,其照片质量优为关键,照片的质量很大程度决定于拍照光源的控制,通常采用光源控制器来对光源进行调整[7]。本文根据生产现场的实际需求,设计了一种可以匹配多种外部触发信号电压输入、可以控制多个相机和多个光源、可以结合当前环境光来自适应达到所需的光源亮度的光源控制器,匹配多种光源输入适用于多个应用场景,可以控制多个相机和多个光源可得到物品多个角度的结果,提高检测精确度,自适应环境光,在不同的环境光种都能保证检测图片质量,提高整个检测过程的可靠性。
1 光源控制器整体设计
本文为适应实际生产需求,研究了一种新型的光源控制器,通过核心控制器芯片来接收PC端发来的命令,经过处理后通过驱动电路发送到光源端实现调光。总体设计框架如图1所示,光源控制器的设计分为六大模块:①主控模块:采用ARM内核处理器,负责和上位机进行数据交互,以及外设的控制。具体为,检测光电传感器的信号,环境光亮度值,进行处理后,通过脉冲宽度调制技术调节光源的亮度以及开关方式。②环境光采集模块:通过光敏电阻采集当前环境光的亮度,经过中值平均滤波算法处理后,和PC端需要的光源亮度进行比对,进而得到控制光源的发光亮度。③电压转换模块:通过DCDC电路对输入电源电压进行降压处理,可适应7~24V大范围的输入电源电压。④光源驱动模块:利用脉冲宽度调制技术可对光源亮度进行无极调光。⑤多路光源及相机信号光耦触发模块:a.物品的拍照可有多个角度多个相机拍摄,需要开启不同方向的光源,一个光源开启对应一个相机的拍摄,可进行多个光源和多个相机协同拍照。b.恒流二极管的使用,可适应3.3V~24V宽范围的外部触发电压信号,完美解决不同器件之间电压不匹配的问题。⑥人机交互界面及显示界面:可显示当前工作状态,并可进行手动调节。
图1 总体设计框架
2 控制器硬件平台设计
控制器采用Cortex-M3内核的STM32微控制器为主体[8],设计以下硬件设施来实现所设计的功能。
2.1 环境光采集模块设计
在光源控制器中加入光敏电阻作为环境光强检测,通过光敏电阻随着光亮度变化阻值变化的特性来感应光强度,加入AD采集电路将模拟信号转换为数字信号,将采集的光强度信号传输给主控模块进行处理。
2.2 多路光源及相机信号光耦触发模块设计
在物品四周布四个光电传感器,光源和相机,进行多角度拍摄。当某一个光电传感器被触发后,将发出某一个相机的触发信号,触发该相机的拍照模式,直至完成四个方位的拍照。另外,恒流二极管的使用,可适应3.3V~24V宽范围的外部触发电压信号,完美解决不同器件之间电压不匹配的问题。
2.3 主控模块设计
主控采用STM32微控制器作为数据处理中枢[9-10],通过串口通信方式和PC端通信,使用脉冲宽度调制方式进行光源控制。使用中值平均滤波算法对环境光和PC端所需的光源亮度进行处理,得到控制光源的实际发光亮度。
2.4 电压转换模块
本设计光源控制器可适应7V至24V输入电压,通过DCDC和LDO的联用,设计如下图2所示电路对电压进行转换,保证光源控制器有一个稳压的所需电压输出。
图2 电压转换模块
2.5 光源驱动模块
光源控制器需要长时间工作,发热大,驱动电路采用低内阻的场效应管来实现器件的长时间稳定输出,如下图3所示。光源的亮度调节采用脉冲宽度调制方式控制,占空比和灯的亮度成比例关系。
图3 光源驱动模块
2.6 人机交互界面及显示界面
板载三个按键和一个四位显示的数码管[11],既可以实现光源亮度的手动调节和工作模式的切换,也可以实时显示当前通道光源的亮度值。
3 控制器软件实现
3.1 系统的总体流程设计
本设计中使用Keil公司针对ARM硬件平台推出的RealView MDK对STM32进行软件开发[12]。
在整个系统的软件设计过程中,软件需要协调多个模块进行运作,数据在多个模块之间进行传输转换,整个系统的流程图如图4所示,通过各个模块的驱动函数调用,最终实现多个光源自动调节和多个相机协调拍照。
图4 系统总体流程图
3.2 环境光检测及光电传感器触发程序设计
下图5为环境光检测及光电传感器触发流程。
图5 环境光检测及光电传感器触发流程
通过光敏电阻检测环境光输入到ARM控制板,和电脑端传输的所需光源亮度做计算,得到光源最终亮度;
通过光电传感器时刻检测外部触发信号的有无,并将其触发信号传输给ARM控制板,控制光源亮度;同时也传输给PC,用于触发相机进行拍照。
3.3 环境光处理算法
在本设计中,我们使用中值平均滤波算法来对环境光采集到的信号进行处理,首先对环境光进行连续采样N次,然后把N次采样的值进行冒泡从小到大排序,丢弃极值后,对剩下值进行求平均作为本次采样的环境光值。由该环境光值和电脑端所需的亮度值,我们可得到实际光源所需的亮度值。根据此方法,可以兼容不同亮度的环境光,适用于各种场合。
算法的程序代码如下:
4 实验结果
本文研究的新型光源控制器已大规模应用于各类产品视觉缺陷检测,如图6所示为使用本设计光源控制器的视觉检测设备,极大提升了产品缺陷检测效率和准确度,降低用工成本。一台设备可代替5人,检测准确度达97%以上,图7所示为最终检测结果。此设备在工厂投入使用后,创造了很好的经济效益。
图6 视觉检测设备
图7 检测结果