一种基于STM32的捡球机系统设计
扫描二维码
随时随地手机看文章
本设计以STM32单片机为主控,考虑到捡球机的独立工作性,故采用独立电源供电。捡球机的移动装置以直流电机驱动,寻球装置以摄像头图像传感器模块构成,并搭配以图像检测算法。避障装置以红外检测和报警模块为主,以防在行动过程中触碰障碍物。图1为系统的总体设计框图。
一、主程序流程图设计
此次设计开发环增是和用Ken uvision5软件来编写,本设计的主程序设计是将硬件部分包括STN32系统板,红外检测模块,OpenV3图像传感器摸块,电机驱动模块,蜂鸣器模块等通过软件程序语言有机地结合在一起,实现乒乓球自动捡球机的自动捡球功能。
本设计中,用STM32F103C8T6单片机串口3与0pnMV3撙块STM32E676芯片串口连接,即OpenMV3模块P4引脚连接STM32单片机PB11接口,P5引脚连接P10、利用STM32串口中断,实现OpenMV3模块与单片机之间的串口通信。单片机通信串口与图像传感器模块通信串口连接,不断接收摄像头所寻找的信号,当镜头视野没有乒乓球时,控制小车稍微向左前方行走带动镜头扫描,然后再向右前方行走扫描,若镜头识别到乒乓球,开始判断乒乓球是否在视野中心的位置。若乒乓球在视野中心,则检球机前进检球,若乒乓球不在视野中心,判新乒乓球在视野左边或右边,调整小车左转或右转,直到乒乓球在视野中心,然后小车前进,装在小车前方的滚轮式乒乓球捡球器将乒乓球拾讲球框里,完成自动檢球、单片机。D口PA4连接峰鸣器摸块,PB4连接红外模块,红外模块感应前方碍物,即感应乒丘球、当检测到丘丘球时,即为捡满丘丘球、单片机0口接收到一个件电平信号单片机威应信号并给蜂鸣器模块10口发出高电平信号,同时给电机模块全部高电平信号,蜂鸣器发出警报,电机停止转动,即自动检球机停止检球。程序语言循环执行,不断完成自动检球动作。主程序流程图如图2所示。
二、主要功能模块分析
1、颜色识别算法
本设计软件编写首先需要对OpenMV3模块颜色程序进行编写,使用具有语法高亮的OpenMV IDE来编写程序,首先在电脑上下载安装!DE软件,安装完成后,打开软件,将模块连接电脑,即可看到OpenMV3的界面,用C语言对视觉算法进行编写。
OpenMV3识别颜色的机器视觉原理,首先需要利用阈值进行二值化,二值图像是经过二值化后的图像亮度值只有(0)黑和(255)白两种状态。因为本设计要识别的图像是彩色的,即本设计所要识别的乒乓球颜色为橙色,所以需要对颜色识别色彩空间进行调整,本设计所使用的是Lab颜色空间,上ab颜色空间中。上代表Luminosix、即照明度。!的取值范用是10.1001.0表示纯黑色,100则是纯白色。a和b是两个不同颜色的颜色轴,a的取值范围是F-128,1271,负数表示的颜色是绿色,正数为红色;b的取值范围和a一样,负数是蓝色,正数为黄色。所以颜色识别有(minL,maxL,minA,maxA,minB,maxB)这三个阈值,一共六个值。调整这六个数的数值即可调出橙色所需的值。
然后,通过对图像进行的逐行逐列的扫描,按照算法一定的规则标记连通区域,来得到对象的个数,同时统计每一个区域所包含的像素个数,再用标尺转换最后就可以得到想要测得的区域面积,在阈值编辑器上使自己想要的目标显示出来,就可以识别所需要的目标颜色块,即乒乓球颜色的阈值。
打开编写软件,调用集成模块程序,打开國值编辑器工具,不断调整LAB的闻值,直到识别物体为调出乒乓球大小,且颜色为橙色的阈值,经过实物的不断调试,在日光灯照明无太阳光线照射下,最终确定,其LAB阈值为(51.86.15.53.17.77)。
在镜头视野中间镜头设识别中心,镜头识别到乒乓球信号,将信号提取通过电口发送给STM32单片机,判断识别到的乒乓球在所设中心的左边还是右边,单片机驱动电机调整检球装置,使乒乓球处干视野中心,然后将确定信号发送给STN32E103C8T6单片机,当镜头视野识别到多个乒乓球时,只取离所设中心最近的乒乓球信号,然后将镜头识别出的信号通过串口通信发送给主控单片机STM32F103C8T6.STM32F103C8T6接收信号后即可进行下一步指令运行。
2、避障程序设计
捡球机在行走过程中,为了避免碰到障碍物,需要进行避障程序设计。避障模块采用红外检测原理,所以软件程序设计也就相对简单,运用STM32单片机定时器中断对避障进行算法控制,红外传感器模块输出端口直接与单片机的!0口连接,当其检测方向检测到障碍物后,输出端接口会输出一个数字信号,即一个低电平信号。其电平信号的转换即可通过程序语言改变直流电机转向,从而控制捡球机的避障。在本设计中分别在捡球机前面与后面的左右两边上各装一个红外模块,当左前方检测到障碍物后,捡球机后退并向右转弯,当右前方检测到障碍物后,捡球机后退并向左转弯,然后再继续执行寻找乒乓球的程序指令。同理,当后方红外检测到障碍物,捡球机向前行走躲避。
3、收集框中球满的处理
当乒乓球自动检球机捡满乒乓球时,无法在收集球时需要设计相应的电路。设计一个报警电路进行提醒,该报警电路为红外感应模块与蜂鸣器模块共同组成。单片机两个引脚被分配来分别连接红外感应模块和蜂鸣器摸块,分别对应连接为PB4和PA4接口,当红外模块感应到丘丘我满时,黑要报警,单片机PA43购输出高电平在S850放大作用下,电酒接通 电路导通,蜂鸣器长响,实现声音报警。报警声音响时,单片机驱动电机停止转动,即让捡球机停止捡球。