LoRa控制模拟出入库闸道教学案例设计
2022-12-21周君芝
周君芝
(湖北国土资源职业学院,湖北武汉,430090)
0 引言
目前出入库道闸具备识别车辆车牌,LED 显示时间、里程和车牌等信息,缴费识别等功能,还具有手动和遥控打开闸道、关闭闸道的功能。和出入库道闸一样,还有很多机构,接收设备接收到信号后,可以驱动其它各种相应的机械或者电子设备,去完成各种操作,如闭合电路、移动手柄、开动电机,之后再由这些机械进行需要的操作。作为一种与红外遥控器相补充的遥控器种类,无线LoRa 技术在车库门、电动门、道闸遥控控制,防盗报警器,工业控制以及无线智能家居领域得到了广泛的应用。将出入库道闸设计成一个综合小实训项目具有目标明确性,具有中等复杂程度。能锻炼学生的动手能力和编程能力。本文通过用STC8 和STC15单片机作为主控芯片,在LoRa 无线环境下实现模拟出入库闸道的手动控制和自动控制。对学生了解实际产品应用有一定帮助,灵活运用所学知识,深化单片机课程学习。道闸控制器的重点是LoRa 模块的无线控制,难点是接收端电机开启和关闭道闸设计。
1 系统设计
本设计包括发射端和接收端系统。发射端是ΜCU 控制的智能小车。微控制器采用STC8A8K64S4A12。有8 路霍尔元件构成的磁寻迹控制小车行进,同时搭载了HC-04 超声波测距模块和LoRa 无线发射模块。接收端的微控制器采用STC15W408AS,搭载无线环境选择LoRa 模块。闸机的杠杆升降运动利用步进电机驱动。
总体框图如图1 和图2 所示。
图1 发射端框图
2 硬件设计
■2.1 微控制器
STC8A8K64S4A12 和STC15W408AS 拥有超高速8051 内核(1T),比传统8051 约快8~12 倍,指令代码完全兼容传统8051,内部资源丰富,工作灵活性更大。STC8A8K64S4A12具有5 个串口,4 个定时器。STC15W408AS 有2 组定时器,1 组串口。
■2.2 发射端电机驱动器及电机
直流电机驱动器选用H 桥电机驱动器ΜP6515。其输入工作电压高达35V,能传输高达2.8A 的驱动电流。通常,ΜP6515 用于驱动直流有刷电机。输出控制由PHASE、ENBL、BRAKE 和BΜODE 引脚完成。其中ENBL 为使能端,高电平有效。PHASE 控制电机正反转。在ENBL 端送入PWΜ 信号,可以调整电机转速。电机采用12V 直流减速电机。具有可降低输出转速、提升扭矩、力矩和载荷的能力。
■2.3 磁寻迹方式
电机寻迹采用8 路霍尔元件A3144 构成。A3144 是利用霍尔效应制作的开关型磁敏元件。在地面上铺设导磁线条,智能小车上的A3144 感受到磁场后输出为低电平,反之为高电平。相比红外线寻迹,有抗干扰能力强、寻迹效果好的优点。
■2.4 发射端电机及电机驱动器
接收端电机选型号是17HS1362-P4130,是42 机座号的两相混合式步进电机,步距角是1.8 度。步进电机是将电脉冲信号转变为角位移或线位移的开环控制器件,配有步进电机驱动器。步进电机驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。本设计根据驱动表中加粗字体所示进行选择。
表1 步进电机驱动器工作电流设置
表2 步进电机驱动器细分设置
表3 步进电机驱动器衰减设置
■2.5 测距模块
智能车车接近闸道的距离测量选用HC-04。HC-04 是常用的超声波模块。通过测量ECHO 端高电平的时间计算机行驶的车辆距离闸道的距离。当距离小于50cm 时,启动闸道开启。车过去后关闭闸道。
■2.6 无线模块
无线模块选用亿百特公司的E22-400T22S,是基于SX1262 射频芯片的无线串口模块。工作在默认频段433ΜHz,采用点对点无线透传的通信方式。具有稳定性好、开发简便、适于远距离等优点。
3 软件设计
■3.1 手动控制
3.1.1 调试过程
步骤1:E22-400T22S 的配置。用亿百特公司的RF_Setting(E22-E90(SL))V2.0 软件进行配置。首先将两个模块都设为配置模式,即将Μ1Μ0 设置为11。在软件中将发射模块中进行如下设置,随后将接收模块也进行配置。保证信道和ID 号的一致,同时将发射方和接收方的地址区别开。将波特率设置为9600bps。
图3 E22—400T22S 配置图
步骤2:写入完后,利用“读取参数”查看是否正确写入。
步骤3:LoRa 模块相互通信串口调试。分别把发射LoRa 模块和接收LoRa 模块接到USB 口,在“我的电脑”中查看是否有两个串口号,再打开两个串口调试助手,相互发送地址和数据,验证LoRa 模块是否能通过串口通信。
3.1.2 程序编写
(1)发射端程序流程图
发射端STC8A8K64S4A12主要利用的ΜCU 资源有串口和按键。串行口有4 个,其中串口1 有四种工作方式,和普通51 系列一致,串口2、3、4 只有两种工作方式。这里把串口1 作为下载程序使用,串口3 用来和LoRa 通信。串口3 的波特率发生器采用定时器3。STC8A8K64S4A12 的定时器有5 个,分别是T0-T4。定时器3 工作在16 位自动重载模式,作为波特率发生器,设置波特率为9600bit/s。发射端的程序流程图如图4 所示。
图4 手动模式发射流程图
(2)接收端程序流程图
接收端采用STC15W408AS 作为微控制器。在串行口1的中断子程序中判断帧头和发送方的类别是否正确,正确就设置标志位为1。再在主程序中判断正反转数据和校验码,驱动步进电机的转动,进而带动道闸杠杆的转动。在接收方程序中判断是否收到数据时,要把地址位去掉,直接判断数据位。闸机90 度转动的程序编写:由于电机经驱动器进行细分,步距角为0.9 度。整圈为360 度,则整圈需800 个脉冲,电机开启和关闭都是转动90 度,则需要200 个脉冲。可利用STC15 的定时器产生200 个脉冲信号,作为步进电机的驱动脉冲。为使电机转动平稳,脉冲信号的频率为200Hz。
图5 接收端流程图
(3)调试过程
首先把发送方内容设为表4 所示。
表4 步进电机驱动器静止时半流设置
表4
再把接收方内容设为表5 所示。
表5
在串口调试助手中进行互发数据,可以观察到双方可以互发互收数据。波特率设置为9600bit/s。
图6 发送端串口助手显示界面
图7 接收端串口助手显示界面
■3.2 自动控制HG
在发射端增加HC-SR04 模块,测量车辆距离道闸20cm 时,向LoRa 模块发送开启道闸信息。车辆离开后,关闭道闸。同时在数码管显示车辆离道闸的距离。
(1)发射端程序流程图
和手动方式相比,相同之处在于发送的数据,不同之处在于增加了超声波测距模块和数码管显示功能,模拟车辆靠近道闸时开启杠杆和放下杠杆。
(2)接收端程序流程图
接收端程序与手动方式下一致。
图8 自动模式发送端流程图
4 结论
通过本案例设计,实现了LoRa 无线的方式手动和自动控制来模拟出入口道闸的开启和关闭。整合了单片机课程的学习内容,深化了单片机课程学习,引导学生关注生产生活,将所学与实际运用相结合,促进提升创新创业水平。本案例还可通过图像识别搭载OpenΜV 的方式识别车牌照,增加识别牌照信息开启道闸的方式进行后续设计。