游依婷 周章玉
摘 要 本文介绍了一种可自主导购的智能跟随购物车,主要包括手机和车架、购物筐、触摸显示屏、车轮、直流电机、红外通信模块、超声波传感器、视觉识别系统和语音播报等。动力车轮和万向轮组成四轮行进系统,可让车体进行360°转向;视觉识别系统由两个摄像头以及MiniPC构成,可对目标消费者的位置进行捕捉,从而达到较为精准的跟随效果;红外通信模块组成较为精准的区域定位系统,可实时定位消费者的具体位置。购物车可提供跟随导购与传统导购两种购物模式,随时为消费者提供智能导购、语音提醒等服务,让消费者有较好的购物体验。
关键词 图像识别;红外通信;智能跟随;导购;自动避障
随着社会的快速发展,人工智能的理念深入人心,人们的生活离不开购物,而在各类大型购物商场中却还未普及可自动跟随的智能购物车,因此我们提出了具有跟随和导购功能的智能购物车。此购物车采用Cortex-M4控制差速底盘,Openmv图像识别以及算法处理实现目标定位;采用红外通信实现区域定位,与语音播报相结合,共同打造出友好的导购系统;采用超声波模块实现自主避障。多个功能模块结合使购物车可实现智能跟随、智能导购和智能提醒。
1系统总体框架
此购物车系统的功能主要分为四部分——目标追踪、自动避障、区域定位和人机交互。整个购物车系统的总体框图如图 1所示。目标的定位采用Openmv摄像头对目标物体进行数据采集。当Openmv自动检测到目标物体的特征后,会直接框选目标物体,建立坐标系,通过计算公式得到目标物的相对坐标、相对距离并传输给主控板。车体四周安装多组超声波传感器,保证车体前方180度范围内的障碍物可被识别,但存在0.3cm的盲区。总体指标良好,可进行较顺畅的自动避障。利用红外通信可实现区域定位,在下位机红外发射端周围0.5m范围内可收到相关区域代码,从而实现区域定位,并结合语音与导购系统实现人机交互,完成导购功能。基于JQ8XX的语音播报,结合红外区域定位后可实现在特定场景下的语音提示功能。此语音播报功能的运行速度尚佳、反应较迅速,语音流畅且清晰。采用Qt对导购系统进行编程设计,消费者可直接通过导购系统的界面选择自己的购物模式,导购系统设有一键导购、辅助导购两种导购模式[1]。
2硬件的配置及其原理
此购物车系统使用的硬件设备模块主要有——STM32F407核心板、Openmv识别模块、HC-SR04超声波模块、STC12红外通信核心板、MiniPC显示屏和电机驱动模块。车体部分主要是长方体形状的车筐、推手及装有2个万向轮和2个橡胶轮的差速底盘。其中硬件设备功能模块可主要分为三部分:
(1)第一部分为目标定位系统。硬件采用Openmv模块进行信息采集以及图像识别,通过算法处理可得到目标的坐标值以及与车体的距离;采用UART通信实现Openmv模块与Cortex-M4通信;采用Cortex-M4通信接受目标信息并对PWM参数进行调整,实现实时调整车体位于目标正后方并保持一定距离,具体实现过程为——第一步,先对购物者进行特征识别和特征信息存储,首先对感兴趣区中的目标物体进行特征点采集,目标物体特征点识别记忆后自动储存。第二步,根据综合功能模块降低环境因素对摄像头的采集信息的影响。摄像头将采集的图像信息经过处理后传给底层的Cortex-M4主控芯片,主控Cortex-M4芯片对购物车跟随方向进行调整。当运动模式开启,Openmv将目标物体用方型边框自动框选,边框内有十字叉代表目标的中心坐标。
Openmv视觉界面被坐标线性化,坐标系统为160×120,其中一帧图像的中心点为(80,60)。具体测距原理如图 2所示,其中,Lm是长度,Bpix是摄像头中球所占的像素(直径的像素)。Rm是球真实的半径,Apix是固定的像素,a是视角的一半。测距公式如下:
(2)第二部分为自动避障系统。传感器采用IO口TRIG触发测距,给TRIG端口一个大于10us的高电平信号;模块发送8个40KHz的方波后自动检测是否有信号返回;有信号返回,通过端口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340m/s))/2。当距离小于20cm时,Cortex-M4核心板控制电机进行避障。
(3)第三部分为区域定位系统。下位机采用MCU核心板以及红外发射头构成自制紅外发射电路,通过脉宽调制向上位机发送带有信息的红外光波,以传输相应区域信息。发射部分:发射部分由STC12C5602AD模块,指令编码系统,信号调制系统和发射电路组成。指令编码系统将本商城各区域对应的编号进行编码,指令编码信号经过38K载波进行调制,然后再由驱动电路来进行功率放大,再由发射电路把调制后的编码指令信号发射出去。
上位机采用自制红外接收电路以及STM32核心板接收红外信息实现定位,同时通过串口与QT通信。接收部分由红外接收电路、信号解调系统、信号解码系统、显示电路和操作执行电路组合而成。接收电路把接收到的已调信号进行信号放大后送给信号解调系统解调,再由信号解码系统把已调信号还原为编码信号。指令译码器将会把指令信号编码进行译码,最后再由驱动电路来执行各种指令相对应的操作控制[2]。
语音播报采用JQ8XX的语音模块,当STM32接收到区域代码时,触发模块功能,模块播放存储于其中的音频。
人机交互界面采用UP-MAGIC 7 INCH TFT LCD PANEL,同时用HanRun驱动,以显示相关位置信息。
3软件流程设计
软件程序由以下部分组成——Openmv模块识别目标并传送位置信息、红外通信模块进行区域定位传送区域信息、超声波模块进行自动避障,STM32接受信息后控制底盘的行进和语音模块的播报。程序功能主要分为以下三部分:
(1)Openmv模块联合STM32实现目标识别与追踪。Openmv的坐标系统为160×120,其中一帧图像的中心点为(80,60)。系统启动后,Openmv首先会对感兴趣区域中的目标进行颜色、像素点和特征点的信息采集,得到先验信息。运动模式开始后,Openmv将根据先验信息,实时地对目标进行识别,使用方框框出目标,并将方框中心点的x坐标值通过串口通信传给STM32控制板;同时还将根据识别图中目标所占像素点与先验信息比对,根据相应距离计算方法,得出大致距离并发送至STM32控制板,完成目标识别[3]。
控制板将得到的x坐标值与图像中心点的x坐标值80进行比较,可得知该目标在车体前方的左右位置,再根据该坐标值与中心坐标值的偏差大小利用PID算法,控制购物车的转向,实现购物车实时处于目标的正后方;同时,控制板将根据大致距离利用PID算法控制车体前进,做到距离远时速度大,距离近时速度小的行进,实现实时跟随。
若Openmv未识别到目标信息,则将传送-1至STM32控制板,控制板收到-1后将控制车体缓慢转动以辅助摄像头的目标识别,若长时间未能识别,则购物车将处于报错状态:原地打转。
(2)STC12控制板和红外发射头组成的发射模块以及STM32核心板和红外接收头组成的接收部分共同实现区域定位。发射部分程序主要由38kHz载波产生函数、引导码函数、数据1和数据0编码函数、结束码函数和信息整合发送函数组成。在信息整合函数中依次发送引导码、数据码和结束码。接收部分程序主要是嵌套循环和判断,判断收到高低电平时间以确定脉冲间隔时间从而解码。
(3)HC-SR04超声波模块联合STM32实现自动避障。此部分程序主要由中断触发程序、高电平计数器和调整电机PWM三部分组成。程序一开始即为触发函数,其功能是将Trig电平拉高,使得超声波模块工作并触发定时器中断,开启计数器功能,得到物体距离=计数器当前值/(时钟周期/预分频值)*340/2。STM32根据读取的距离值调整左右轮的转速,从而实现避障[4]。
4系统调试
(1)将摄像头采集到的图片信息通过处理后传给Cortex-M4控制板,根据识别结果调整参数,通过串口通信将结果显示于电脑的串口调试助手中,结果将显示摄像头与Cortex-M4控制板通信正常、数据处理正常,PID参数调整成功。
(2)调试红外发射模块。通过定时器产生38kHz的脉冲并带有载波信号,为保证通信成功,可通过示波器观察波形数据。根据示波器显示的结果可知输出波形正确无误,接通红外接收模块,进行通信测试,接收模块可接收信号并解码。
(3)其他模块测试如超声波模块、编码器PWM参数调整算法测试均采用步骤一中的串口打印方式辅助测试,经调试后测试结果正常。
(4)确定PID跟随目标参数。车体搭好后根据实际跟随结果,多次调整Kp、Kd参数值,使跟随达到最佳效果,最后中心定位PID算法中Kp=0.15,Kd=0.35;车距调整PID算法中Kp=0.1,Kd=0.2[5]。
5结束语
本智能商城购物车采用图像识别即颜色识别以及特征点监测,结合感兴趣区域减小误差,并通过摄像头测距算法,实现目标的坐标与距离的定位;通过主控板对购物车的控制,能够让车体灵活移动;基于QT开发人机交互界面,能够通过触屏控制车体;通过超声波测距,让购物车实现自动避障;通过红外通信,上位机可根据下位机所发送信息判断当前位置,并用语音播出。
各项功能相结合,此购物车系统可实现作品初始时的功能设想——既实现实时跟随,也可以自主避障,而且能隨时定位区域位置,同时具有导购、人机交互以及语音播报等功能。综上,本购物车可为用户提供一个良好的导购体验。
参考文献
[1] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009:221.
[2] 胡汉才.单片机原理及其接口技术(第2版)[M].北京:清华大学出版社,2004:81.
[3] 肖景和,赵健.红外线热释电与超声波控制电路[M].北京:人民邮电出版社,2003:215.
[4] 凌志斌,邓超平,叶芃生.红外遥控技术及其解码方案[J].微处理机,2003(6):59-62.
[5] 王维波,粟宝鹃,猴春望.QT5.9C++开发指南[M].北京:人民邮电出版社,2018:65.
作者简介
游依婷(1999-),女,四川成都人;学生,现就读学校:西南石油大学电气信息学院电子信息工程专业,研究方向:嵌入式控制和信号处理。
周章玉(1999-),女,四川内江人;学生,现就读学校:西南石油大学电气信息学院电子信息工程专业,研究方向:嵌入式控制和信号处理。