APP下载

基于STM32的自动划线小车设计

2020-12-01张伟胡斌王子文

软件导刊 2020年10期
关键词:模式识别

张伟 胡斌 王子文

摘 要:目前市面上的划线设备仍需依赖人的视觉观测、手动操纵,沿基准线喷涂标线。为了提高划线效率,降低人工成本,提出一种基于STM32的自动划线小车系统。该系统由遥控器及行进控制两大部分构成。首先将拟划线路径按比例缩放,依据遥控器模块上液晶屏分度值,通过遥控器按键将路径输入至液晶屏,也可直接调出标准路径;然后将数据打包成数组形式,通过无线传输模块NRF发送至小车控制器;最后启动小车,小车按照预定轨迹实现划线任务。多次实验验证表明,该系统可实现自动划线任务,具有划线稳定、作业高效等优点。

关键词:自动划线; STM32; 远程遥控; 路径设计; 模式识别

DOI:10. 11907/rjdk. 201121

中图分类号:TP399文献标识码:A 文章编号:1672-7800(2020)010-0174-05

Abstract: The main marking equipment on the market still relies on human visual observation, manual manipulation, and spraying marking along the baseline. In order to improve the marking efficiency and reduce the cost, an automatic dash car system based on STM32 is proposed. The system is mainly composed of remote control module and travel control module. Firstly, the planning path is scaled, and it is entered into the LCD screen through the remote control button, according to the LCD division value of the remote control module, or the standard path is called directly. Then, the data is packaged into a group form, and is sent to the car controller through the wireless transmission module NRF. Finally, the dash car will achieve the marking task according to the predetermined trajectory. Based on the experiment studies, it is proved that the designed system can realize the dash task automatically, which has the advantages of consistent line stability and efficient operation.

Key Words: automatic scribing; STM32; remote control; path design; pattern recognition

0 引言

國务院关于全民健身计划(2016—2020年)通知[1]要求提供更加完备的公共体育服务,为建设体育强国奠定坚实基础。随着标准化运动场馆建设与维护频率提高,场地划线工作越来越多[2-3],划线技术受到学者关注[4-6]。

张明松等[6]对各种场地划线技术优缺点进行分析,探讨未来智能划线车定位系统发展趋势;Majd等[7]和李鑫等[8]对智能车路径识别算法进行研究,为提高智能车寻迹精度提供算法支撑;文献[9]通过树莓派搭建一个视频采集平台,与移动小车相结合实现行人检测;文献[10]基于改进人工势场法实现动态障碍物环境下的路径规划。以上文献多侧重于路径识别算法与路径规划算法研究,未从实际使用角度进行设计。场地划线车分为手推式和自行式两种。手推式划线车完全依赖施工者感觉与技术,不仅产生较大误差,还会造成资源浪费;自行式划线车[11-12]造价高,国产冷漆喷涂售价人民币3万元左右,以燃油为动力,不仅污染环境,而且噪音较大。自动式划线车摆脱传统划线方式对人的过度依赖,同时降低系统能耗,实现远程控制,达到高效节能、省时省力、方便快捷等目的;杨诚等[13]提出一种单片机控制的道路自动划线系统,但不能进行划线轨迹设计和更改,系统精度与灵活度还需提高。本文设计一种基于STM32的自动划线小车系统,由遥控器与行进控制两大部分构成,可实现远程操控及预设路径等功能,具有划线稳定、作业高效等优点,相比现有划线方式,在节能、精确度及效率等方面都有明显优势,具有广阔的应用及发展前景。

1 系统总体设计

1.1 系统整体架构

系统总体架构如图1所示。系统由遥控器系统与行进控制系统两部分组成。遥控器系统由STM32F103ZET6(基于ARM Cortex-M3核心的32位微控制器)的最小系统、电源装置、输入(按键)模块、显示(TFT液晶屏)模块、通信模块及报警模块5个部分组成。行进控制系统由STM32F103ZET6的最小系统、电源装置、通信模块、MPU6050运动处理组件、驱动模块、舵机及带编码器的电机组成。

1.2 系统工作原理

系统工作流程:首先在遥控器上依据划线图形缩放比例及液晶屏分度值,将拟划线路径通过遥控器按键顺序输入至TFT液晶屏,通过遥控器对绘图数据进行存储,操作者也可直接调用存储的标准路径。绘制结束后按发送键,遥控器通过无线传输模块NRF24L01将图纸数据全部发送至小车控制器。小车控制器对数据进行处理计算得到指令,控制小车按照规划路线划线。划线结束后,遥控小车返回,标线工作完毕。

2 系统硬件设计

系统硬件包括控制器模块、遥控器模块、通信模块、运动处理模块、驱动模块及显示模块等。

2.1 控制器模块结构与原理

控制器模块包括控制器选用及最小控制系统设计。考虑成本与效率因素,遥控器选用意法半导体公司的32位ARM微控制器STM32F103ZET6。该芯片具有功耗低、内存大、频率高等优点。STM32F103ZET6有144个引脚,可作为IO口使用的就有112个引脚,最高工作频率可达72MHz。多达8个16位定时器,有2个高级定时、2个基本定时、4个通用定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道,1个16位带死区控制和紧急刹车功能,用于电机控制的PWM高级控制定时器,以及其它丰富的外设资源。STM32F103ZET6高速处理性能与丰富的外设资源,可使系统不需要额外扩充外部RAM数据存储器与FLASH程序存储器。

STM32的最小系统电路设计包括复位电路设计、外部时钟电路设计、BOOT启动电路设计、串口下载电路设计等。

2.2 遥控器模块

遥控器电路设计采用5×5的按键矩阵,将25个按键按照5行5列方式进行排列连接,每行与每列的一端连接单片机的IO口,每条水平线与垂直线在交叉处不直接连通,而是通过一个按键连接。每一个按键对应一个变量输入,对小车行进路线与模式进行控制与设计。

2.3 通信模块

NRF24L01是NORDIC公司生产的一款无线通信芯片,采用FSK调制,内部集成NORDIC的Enhanced Short Burst协议,可实现点对点或1对6的无线通信[14],无线通信速度可达2M(bps)。本设计对NRF24L01采用5V供电,CS为芯片模式控制线,连接STM32的F8引脚,控制NRF24L01收发模式;CSN为芯片片选线,SCK为芯片控制时钟线,连接STM32的SPI2_SCK(PB13引脚);MOSI和MISO为芯片控制数据线,分别连接在STM32的SPI2_MOSI(PB14引脚)、SPI2_MISO(PB15引脚)控制数据传输;IRQ为中断信号引脚,无线通信中STM32主要通过IRQ与NRF24L01进行通信。本设计将STM32引脚与直插式底座相连,方便NRF24L01直接与STM32连接。

2.4 运动处理模块

本设计选用MPU6050六轴加速度陀螺仪对小车前进方向进行监测。MPU6050模块体积小、功耗低、检测精度高,能够检测X、Y、Z三个方向上的角速度与加速度。通过滤波融合算法[15-16]得到欧拉角,用欧拉角中的转向角监测小车前进的方向角度。

2.5 驱动模块

选用TB6612FNG电机驱动模块用于驱动小车的两个直流电机,使小车不断处于新旧交替的平衡状态 [17]。驱动主要通过控制器输出的PWM波对划线车的速度与转向进行控制。电机选用带编码器的减速电机,为划线车提供行进动力。电机模块带有AB相增量式霍尔磁编码器[18],可实时检测小车当前的速度与行进距离,控制划线准确度。支持高达100KHz的PWM信号频率。

2.6 显示模块

显示模块选用3.5寸的TFT-LCD,在-20℃~50℃的温度范围正常使用,显示设计的划线路径、当前模式和输入坐标,以及当前划线车位置等信息,監控当前输入数据与小车状态。

3 系统软件设计

3.1 控制系统整体设计

整体设计分为遥控器和行进控制系统,通过NRF24L01进行数据通信,工作流程分别如图2和图3所示。

3.2 下位机软件设计

3.2.1 矩阵按键工作原理

遥控器输入键盘采用5×5的按键矩阵设计,每行与每列的一端与STM32的IO口连接。采用定时10ms扫描方式判断是否有按键按下。

首先将每行IO口电平设置为高电平,每列IO口设置为低电平,对按键矩阵状态进行扫描。当有按键按下时,对应行的电平被拉低,再设置每行IO口电平为低电平,每列电平为高电平,检测按下按键时哪一列被拉低。在软件中定义同样的5×5二维数组,当检测到对应i行j列的按键被按下时,就返回二维数组中对应的数值,通过行数与列数确定被按下的按键,并返回对应键值。每个按键对应不同的数值以判断按下的按键,响应对应的事件。

3.2.2 模式控制软件设计

系统有接收、发送、遥控、自动4种模式。

接收模式与发送模式通过软件自动控制。遥控器初始化为发送模式,行进系统初始化为接收模式,之后按照数据的收发自动设置收发模式。

遥控模式与自动模式通过遥控器上的模式按键进行切换。每种模式都有对应的标志位,当某种模式被触发时,对应标志位就会置1,该模式启动,同时另一种模式标志位被清零。同时在发送的数据数组中存储模式控制标识,这样不会导致模式混乱。模式控制程序代码设计如下:

/********模式控制**************/

if(key==‘Z)//按下自动键

{

key_automatic=1;

key_control=0;

send_buff[0][0]= ‘A;

}

if(key==‘K)//按下遥控键

{

key_control=1;

key_automatic=0;

NRF24L01_Init();

NRF24L01_TX_Mode();

buff[0]= ‘B;

}

3.2.3 路径规划软件设计

划线车路径规划依靠遥控器键盘进行坐标绘图。坐标绘图就是通过输入规划路线的重要坐标点,如路线的转折点、起始点、终止点等,将对应坐标点按照顺序连线以实现绘图。

绘图只能在自动模式下进行,按下键盘上的“自动”按键后,划线小车进入自动模式,开始小车路径规划,屏幕上有对应的坐标系作为参考,进行图形尺寸设计。按下“A”输入的数值为坐标点X的坐标值,按下“B”输入值为坐标点Y的坐标值。通过“直线”和“圆/弧”按键确定划线类型。按下“直线”表明与上一个点的连线为直线,按下“圆/弧”表明与上一个点的连线为圆或者弧,再按下“C”输入圆/弧半径。一个坐标点输入完成后按下“确定”按键,就会在屏幕对应坐标位置显示绘制的坐标点,并与上一个坐标自动画线连接。如果不按“直线”“圆/弧”按键,输入坐标后直接按下确定键,则表示该段不划线,在屏幕上不显示连线。通过坐标点输入就能完成规划路径的设计。

本文通过一个200×10的二维数组对所有划线数据进行存储。如果路线绘制错误,按下“退格”键就能对上一条连线进行删除,同时也会删除数组中对应的数据。当路线全部设计完成后按下“发送”键,就能将规划路线的全部数据发送到划线小车控制系统中。

3.3 驱动电路原理与软件设计

3.3.1 B6612电机驱动软件设计

通过STM32的两个IO口控制一个电机,控制IO口电平输出,控制电机的正反转。通过调节PWM波的占空比调节电机转速,PWM占空比越大,电机转速越快。程序如下:

GPIO SetBits(GPIOF, GPIO_Pin_2);

GPIO SetBits(GPIOF, GPIO_Pin_4);

GPIO ResetBits(GPIOF, GPIO_Pin_1);

GPIO ResetBits(GPIOF, GPIO_Pin_3);

TIM_SetCompare1(TIM3, 500);      //右轮

TIM_SetCompare2(TIM3, 500);      //左轮

SYSTICK_Delay1ms(50);

3.3.2 速度与路程记录

设N为单位时间内行驶一定距离s所记录的脉冲数,则小车速度为

通过速度对时间积分得到时间T内行驶路程为

实现代码如下:

A1=Read_Encoder(2);  //编码器A的计数值

B1=Read_Encoder(4);  //编码器B的计数值

Encoder=(A1+B1)/2;

Speed = ((float)Encoder/1024)*7.5;  //速度

T=Speed*10;

S=S+T;      //路程积分

3.3.3 方向控制算法

为保证小车在前进过程中保持方向稳定,不偏离规划路线,需要对小车两个电机转速进行控制,控制使用增量式PID算法[19-20]。

通过计算与规划路线的行驶偏差角进行PID控制,使小车两轮转速保持相等,达到前进方向与路线方向一致。

3.3.4 舵机电路软件设计

舵机通过周期为20ms的PWM波控制转角电机,STM32时钟频率为72MHz,通过对定时器分频产生周期为20ms的周期波。

本文用舵机模拟划线车的颜料控制阀,通过改变PWM的占空比改变舵机的转动角度。当小车行驶在需要划线路段时,舵机旋转控制划线笔放下,开始划线。当行驶在不需要划线路段时,舵机控制划线笔抬起不划线。通过接收到的规划路线数据判断是否划线,当需要划直线时,对应标志位为1,圆或者弧时对应标志位为2,不需要划线对应标志位则为0。

4 系统模型展示及运行结果分析

4.1 系统模型展示

划线小车轨迹显示、遥控器及未封装实物如图4和图5所示。

预设长方形轨迹自动划线实验结果如图6所示。本实验用舵机模拟划线车的颜料控制阀,通过改变PWM占空比改变舵机的转动角度。

4.2 运行结果与分析

通过按键输入路径规划,小车顺利按照规定路径行驶。小车运行稳定、转向平稳、噪音很小。在保证小车初始位置条件下,划线操作不需要人为干涉,提高了划线效率,降低了人工成本。动作结束,小车报警提示。在运动场等操作环境下,加装外置天线,遥控小车可自行返回,方便快捷。

5 结语

基于STM32的智能划线小车具有能耗低、噪音小、效率高、划线稳定迅捷等特点,适用于各类运动场及部分交通划线。小车测试展现了良好的系统性能。但在实际应用过程中,如何有效保障小车位姿准确性是一个难题。同时,该项目目前只适应于运动场停车位等标准划线,对于复杂道路状况划线还需要拓展研究。

参考文献:

[1] 国务院. 关于印发全民健身计划(2016-2020年)的通知[Z]. 国发〔2016〕37号,2016.

[2] 范玮琦,王慧利. 道路劃线车基准线检测方法与检测装置的研究[J].  仪表技术与传感器, 2008,40(8): 101-103.

[3] 岳文言.  论公共体育场地投入与全民健身良性互动[J].  体育文化导刊, 2017,16(2): 127-129,144.

[4] PAYALAN, YASIN FIRAT, GUVENSAN M AMAC. Towards next-generation vehicles featuring the vehicle intelligence[J].  IEEE Transactions on Intelligent Transportation Systems, 2020, 21(1): 30-47.

[5] LOMBARD A, ABBAS-TURKI A, EL MOUDNI A. V2V-based memetic optimization for improving traffic efficiency on multi-lane roads[J].  IEEE Intelligent Transportation Systems Magazine,2020,12(1): 35-46.

[6] 张明松,王恩恒, 肖锦志, 等.  国内道路定位划线的研究进展探讨[J]. 南方农机, 2020, 51(1): 240-241.

[7] MAJD, KEYVAN RAZEGHI, AHROMI, et al. A stable analytical solution method for car-like robot trajectory tracking and optimization[J].  IEEE-CAA Journal of Automatica Sinica, 2020, 7(1): 39-47.

[8] 李鑫, 范英, 杨金鑫, 等.  智能车路径识别算法研究[J].  太原科技大学学报, 2020, 41(1): 32-36,40.

[9] 刘鹏程.  基于树莓派的行人检测小车设计[J].  软件导刊, 2018, 17(2): 114-116.

[10] 唐小洁,丁一航,申勤,等.  改进人工势场法的移动小车动态避障路径规划[J].  软件导刊, 2019,18(10): 152-156,225.

[11] 杨庆凤, 刘德营, 陈坤杰.  基于DSP的公路喷字划线车控制系统的设计[J].  机电工程技术, 2007,20(2): 32-33,100.

[12] 夏进军, 周涛.  基于道路3D模型的自行路面划线车设计[J].  机械设计, 2016, 33(4): 113-115.

[13] 杨诚, 郝润生.  道路自动划线车单片机控制系统设计[J].  自动化仪表, 2017, 38(11): 43-45.

[14] 王秀清, 刘秀超, 杨世凤.  数据处理与无线传输系统的设计[J].  微机算计处理, 2008,28(24): 129-130.

[15] 趙帅, 肖金壮, 郭一.  基于改进型卡尔曼滤波的电机速度数据处理方法[J].  微特电机, 2018, 46 (9): 80-82.

[16] 吕值敏.  滤波融合算法的管道钢珠运动检测系统设计[J].  单片机与嵌入式系统应用, 2018, 18(9): 82-85.

[17] 占华林, 邹丽彬, 欧阳烨.  基于MPU6050l六轴传感器平衡小车的设计[J].  设计与研发, 2017,33(21): 10-11.

[18] 丛培田, 白志强, 朱星桥,等.  基于STM32F103的旋转角度测量装置设计[J].  工具技术, 2017, 51(1): 108-110.

[19] 吴强, 韩震宇, 李程.  基于增量式PID算法的无刷直流电机PWM调速研究[J].  机电工程技术, 2016,29(3): 63-65.

[20] 杨晓岚.  PID算法在智能车中的应用[J].  实验科学与技术, 2010, 8(4): 187-189.

(责任编辑:杜能钢)

猜你喜欢

模式识别
紫地榆HPLC指纹图谱建立及模式识别
浅谈模式识别在图像识别中的应用
第四届亚洲模式识别会议
可拓模式识别算法中经典域的确定方法
第3届亚洲模式识别会议
电气设备的故障诊断与模式识别