收费卡机智能伸缩式驱动装置设计
2022-04-21曾令超伍银波周卫
曾令超,伍银波,周卫
(1.广东技术师范大学,广东广州,510665;2.深圳宇信和科技有限公司,广东深圳,518000)
0 引言
随着我国社会水平的提升,我国的高速公路和智慧停车场也在这个过程中得到了较大程度的发展。而随着我国高速公路和停车场数量的增多、规模的加大,过往车辆数量也在不断增加。但目前人工通道的岗亭的发卡机和缴费机均为固定安装在岗亭靠近车主的一侧[1]这样就需要车主停在合适的位置取卡或者还卡,甚至是下车,这种现象在交通高峰期是势必会造成拥堵现象。对于人工收费的停车场,在面对节假日大量的游客旅游时,需要收费不停的收卡和发卡也会给景区造成一定的拥堵,此时自动收发卡机应运而生。目前发卡机和缴费机均为固定式安装,车主停车位置稍偏或者臂长较短时,取还卡十分困难,更有甚者需要下车取卡。用户体验差,且在高峰期容易造成出入口拥堵。通过设计一款车辆收费的云平台智能卡机可解决上述难题,提升用户的使用体验。
1 系统硬件设计
1.1 系统整体结构
系统整体结构图如图1所示,其中装置和云平台之间数据交互是基于WiFi的MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议,而移动用户端和云平台数据交互则是基于移动通信网络的MQTT协议。整体系统分为三部分构成,分别为收发卡机硬件、OneNET云平台[2-6]以及移动用户端。智能伸缩式驱动装置通过超声波测距模块采集数据来判断车辆是否到位,以此精确计算出车主位置同时伸出合适的距离去收卡或者发卡。通过语音识别模块来接收车主用户的指令,并且增加了语音播报模块跟车主进行语音交互来进一步提升用户体验。最后将电机的状态和超声波测距模块收集的数据通过WiFi模块上传到云端进行监控和数据分析,同时云端也可以对智能伸缩式驱动装置下发一些控制指令来实现远程控制,及时处理机器故障导致的事故和在线升级等远程操作。
图1 系统整体结构图
1.2 ARM微控制器
微控制器装置的硬件包括ARM处理器、超声波测距模块、供电系统、按键模块、限位开关、求助按钮以及拨码开关,主要的工作是数据的采集,将收集的数据转换成MQTT协议通过WiFi模块上传至OneNET云平台以及控制步进电机完成整个工作流程,并为整个系统提供稳定的电源。整个系统的外设需要用到的I/O口不是很多,因此本装置选用了一款高性能、性价比高的STM32F103C8T6,该芯片具有20KB的SDRAM和64KB的Flash,外设资源包括1个高级定时器、3个通用定时器、2个SPI通信接口、3个串行通信接口和36个GPIO口,外设资源完全满足本系统设计需求。
1.3 供电系统
220V市电输入电路经过安规电容、电感滤波器等器件,降低EMI,尽可能提供给系统稳定的电源并且能通过国内3C的要求,保证产品的质量。通过5V稳压管和3.3V稳压管为单片机、其他芯片和电机提供相应等级的电源电压。
1.4 超声波测距模块
两个超声波测距模块电路接口图如图2所示,超声波测距模块用来测量车辆与智能伸缩式驱动装置的距离,通过ARM对其做进一步的数据处理再上传云平台。本设计采用的是HC-SR04模块,该模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,盲区极小,测距十分稳定。其原理为通过Trig来触发测距,输出至少10μs的高电平信号;模块会自动发送8个40kHZ的方波来检测是否有信号返回;若有信号返回,则通过I/O口Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间[7]。
图2 超声波测距模块接口电路图
1.5 通信模块
通信接口电路图如图3所示,通信模块采用的是ESP8266 WiFi模块,此模块硬件接口丰富,可支持UART,IIC,PWM,GPIO,ADC等,适用于各种物联网应用场合。ARM微处理器通过发送WiFi模块写好的AT指令协议来连接上当地的局域网(私网),再由局域网连接上远程服务器(公网),数据通过ARM处理器打包成MQTT协议上传到OneNet云平台进行解包成可读数据显示到网页或者手机的APP上,用户可以随时掌握卡机的情况,同时可以通过之前封装好的APP按键模块对收发卡机进行MQTT协议下发到ARM处理器,ARM处理器通过将MQTT协议的指令解包后执行相应的控制指令[3]。
图3 通信模块接口电路图
1.6 语音识别模块
语音识别模块接口电路如图4所示,LD3320提供的语音识别技术,是基于关键词语列表的识别技术,语音识别芯片完成的工作就是:把通过MIC输入的声音进行频谱分析;提取语音特征;关键词语列表中的关键词语进行对比匹配;找出得分最高的关键词语作为识别结果输出。这款语音识别芯片能在两种情况下给出识别结果:(1)外部送入预定时间的语音数据后(比如5秒钟的语音数据),芯片对这些语音数据运算分析后,给出识别结果;(2)外部送入语音数据流,语音识别芯片通过端点检测VAD(voice activity detection)检测出用户停止说话,把用户开始说话到停止说话之间的语音数据进行运算分析后,给出识别结果;对于第一种情况,可以理解为设定了一个定时录音(比如为5秒钟),芯片在5秒钟后,会停止把声音送入识别引擎,并且根据已送入引擎的语音数据计算出一个识别结果;对于第二种情况,需要了解VAD的工作原理:VAD技术是在一段语音数据流中,判断出哪个时间点是人声的开始,哪个时间点是人声的结束。判断的依据是,在背景声音的基础上有了语音发音,则视为声音的开始。而后,检测到一段持续时间的背景音(比如600毫秒),则视为人声说话结束。通过VAD判断出人声说话的区域后,语音识别芯片会把这期间的声音数据进行识别处理后,计算出识别结果。LD3320语音识别芯片在集成语音识别处理器和外部电路的同时,还包括A/D和D/A转换器、麦克风接口和声音输出接口等[8]。并且,识别的关键词语列表是可以任意动态编辑的,大大的降低了人工智能训练的成本,通过SPI总线传输数据来实现编辑关键词语列表以及一些状态量的上传。
图4 语音识别模块接口电路图
1.7 语音播报模块
语音播报接口电路图如图5所示。本模块采用SYN6288语音模块,采用SSOP封装,体积小巧且可以通过串口与主控单片机连接,接收串口发送来的文本,实现文本到中文语音的转换,低成本实现简单的语音播报功能。其功能特点有:(1)支持GB2312、GBK、BIG5和UNICODE内码格式的文本;(2)每次合成的文本量最多可达200字节;(3)支持多种控制命令,包括:合成,停止,暂停合成,继续合成,改变波特率等;(4)支持休眠功能,在休眠状态下可降低功耗,支持多种方式查询芯片状态;(5)支持串口数据通讯接口,支持三种通信波特率:9600,19200,38400;(6)支持16级音量调整,播放文本的前景音量和播放背景音乐的背景音量可分开控制;(7)可通过发送控制标志调节词语语速,支持6级词语语速调整;(8)芯片内固化有多首和弦音乐、提示音效和针对某行业领域的常见语音提示音;(9)内部继承19首声音提示音,23首和弦提示音,15首背景音乐;(10)内置10bit推挽式、可独立供电的功放,进行数模DAC输出。
图5 语音播报模块接口电路图
2 软件设计
单片机程序设计采用模块化形式,以便以后进行单片机程序设计时方便移植。总体设计方式采用对任务的进行不断轮询,同时有任务调节器来应对突发情况来完成此次设计,其中模块包括无线通信模块、数据采集模块、语音交互模块以及电机控制模块。
2.1 主程序控制部分
智能伸缩式驱动装置中的主程序控制部分主要完成的功能是无线通信、语音交互、数据采集以及电机控制。系统初始化后,任务调度器优先执行无线通信任务,每5s将各种数据上传到云平台,且接收云平台下发的控制指令。在这个时间间隙中进行数据采集任务和语音交互任务,当数据发生异常时会发出电机停止命令,此时任务调度器会去执行电机控制任务,然后在异常反馈给云平台进行故障排除等。数据各方面正常后执行语音交互任务,根据用户说的语言来执行语音交互任务和电机控制任务。
2.2 无线通信任务
智能伸缩式驱动装置通过调用AT指令连上当地的局域网,并配置好相应的API和鉴权信息才能通过MQTT协议与云端进行上传距离数据和电机的运行情况,同时也可以接收云端下发的控制命令。
2.3 数据采集任务
数据采集模块主要由超声波测距模块采集数据,要对超声波进行发出和接收,通过将定时器初始化成输入捕获,将Trig和Echo口拉为低电平,向Trig口输送20us的高电平脉冲,此时超声波模块可以捕捉到Echo的上升沿,同时打开定时器开始计时并将数据传送到ARM微处理器进行判断,同时清除标志位进行下一次的信号捕捉[9]。
2.4 语音交互任务
智能伸缩式驱动装置通过语音识别模块来收集语音特征值,语音识别的程序需要语音识别初始化、写入识别列表以及开始识别并准备好中断响应函数,打开中断允许位。如果麦克风采集到声音,不管是否识别正确,都会产生一个中断信号。而中断程序要根据寄存器的值分析结果。读取 BA 寄存器的值,可以知道有几个候选答案,而 C5 寄存器里的答案是得分最高、最可能正确的答案。语音播报模块通过ARM微处理器发送控制指令即可实现文本到语音(或TTS语音)的转换。
2.5 电机控制任务
电机控制模块是将电机抽象成一个包含电机当前状态与目标状态的结构体。通过修改结构体中的相应的电机参数,能够自动算出步进电机的控制量,由于其中的开环控制没有反馈,故直接修改脉冲频率对电机进行加减速。同时该电机控制模块可以根据设定的路程与最大加速度进行速度规划。通过不断检测当前电机位置进行实时速度控制与调整,保证步进电机的启停运动中能够在电机物理性能内,防止丢步现象的发生[10]。
2.6 任务调度器
任务制调度器时当数据采集任务特别是超声波模块采集的数据出现异常时,任务调度器会优先让ARM处理器去执行电机控制任务中的停止动作,并上报异常给云平台。
2.7 伸缩距离算法
智能伸缩式驱动装置的伸缩距离算法首先根据根据车辆检测模块获取的S1和S2,二者求平均值计算出S3。然后从FLASH存储器中读取S4、S5、Kd,根据下式子计算伸缩距离S:
其中各参数含义如下:
S1:超声波接收单元1测得的距离;
S2:超声波接收单元2测得的距离;
S3:车辆到卡机面板的距离,为S1和S2的平均值;
S4:司机座椅车床侧边缘局车窗的距离,维护人员根据车型设置;
S5:车主上肢长,根据设备使用地区自动匹配当地人的平均上肢长,由维护人员设置,使用时读取;
Kd:臂长系数,由维护人员设置,使用时读取。
3 实际测试结果
OneNet平台支持云端和手机APP控制,可以实时接收来自智能伸缩式驱动装置上传的超声波测距模块1和2的数据,同时也可以下发控制命令控制步进电机,实现云端和智能伸缩式驱动装置的交互。
4 结语
通过综合运用嵌入式开发技术、模块化软件设计和云平台技术完成了收费卡机智能面板驱动装置的开发,有效解决了目前在高速公路的人工通道上的自动收发卡和人工停车场的智能收发卡存在的一系列问题,同时可以利用云平台来进行远程监控和操作,大大提升的设备维护的方便性和应对突发情况的能力。