基于WIFI的智能车信息监测系统设计*

2022-01-18 03:02怡,张振,张
机械工程与自动化 2021年6期
关键词:码盘原理图字节

过 怡,张 振,张 棋

(苏州市职业大学 计算机工程学院,江苏 苏州 215000)

0 引言

AGV(Automated Guided Vehicle) 智能车是由汽车和智能技术演变而来,是一种在计算机监控下根据具体规划和作业要求完成取货、 送货、 充电等任务的无人驾驶自动化车辆, 其效率高、灵活性好,在国内的物流行业、装配及制造行业中得到了广泛应用[1,2],大大降低了生产成本,提高了生产效率。AGV智能车在安装调试及故障检测中的数据监测通常由下位机采集传感器数据,通过有线的方式传递给上位机系统(PC机),对于静态的数据比如温度、湿度、光照度等可以满足监测的需求,但是对于动态数据,比如智能车的直行速度、转弯速度,需要在智能车行驶过程中实时监测,从而判断问题所在,进行合理的配置。

因此,采用移动手机作为信息监测的上位机系统,采用无线的方式采集下位机发送的传感器数据,便于工程人员通过数据实时获得智能车的状况,提高安装调试的效率。

1 智能车信息监测系统总体结构

AGV智能车通过两组L298驱动四个直流电机控制小车的行进。为了简化控制,两组L298分别同时驱动左侧和右侧的两个直流电机,即左侧的两个电机同时驱动左侧前后轮,右侧的两个电机同时驱动右侧前后轮。左、右侧的电机上都安装有单路输出测速码盘,码盘数据通过外部中断方式发送给STM32单片机。智能车所处环境的光照度采用BH1750FVI进行采集,通过GPIO口采集光照数据后通过IIC总线传输给MCU。 智能车在行进中的避障采用超声波传感器实现。MCU内部的定时器每隔固定的时间周期将上述传感器数据通过串口发送给无线传输模块HLK-RM04,该模块将数据发送给手机模块。智能车信息监测系统的整体结构如图1所示。

图1 智能车信息监测系统整体结构

当智能车安装的传感器数量较多时,可以采用分布式结构进行系统设计[3],即采用多MCU控制单元,分为数据采集单元、核心主控单元、驱动控制单元和其他控制单元等。各控制单元间采用CAN总线互联,如图2所示。

图2 复杂系统多MCU结构

2 系统硬件设计

2.1 无线通信模块

系统的WIFI通信采用HLK-RM04模块实现,这是一个低成本、高性能的串口-以太网-无线网模块,该模块内置TCP/IP协议栈,可以实现串口、以太网、无线网三个接口之间数据的任意传输[4]。系统中MCU使用串口1发送引脚PA9、接收引脚PA10与WIFI模块的接收引脚UART_RX、发送引脚UART_TX连接。引脚10ES/RST为恢复原厂设置,复位时长按7 s以上可以恢复原厂设置。HLK-RM04模块初始串行波特率为115 200 Bauds,端口默认为6000。图3为无线通信模块的电路原理图。

图3 无线通信模块原理图

2.2 多传感器数据采集

2.2.1 光照度传感器模块

系统使用数字型光强度传感器BH1750FVI进行环境光强度数据采集。BH1750FVI是一种两线制串行总线接口的数字型光强度传感器模块,具有较大的光强度测试范围(1 lx~65 535 lx)[5,6]。该模块通过IIC总线与STM32MCU进行数据传输。模块的地址线ADDR、时钟线SCL、数据线SDA分别与STM32的PB5、PB6、PB7引脚连接。图4为光照度传感器原理图。

图4 光照度传感器原理图

2.2.2 超声波传感器模块

系统的测距模块使用超声波传感器实现,通过调节可调电阻RW3的电阻值控制555定时器的输出频率,555定时器的输出频率控制在40 kHz以内,同时将电平控制引脚INC设置为低电平,控制超声波的发射。超声波接收电路通过调节可调电阻RW2电阻值来控制接收解码,并将接收信号发射给STM32的外部中断4(PB4引脚)。图5为超声波传感器发送和接收原理图。

图5 超声波传感器发送和接收原理图

2.2.3 码盘测速模块

智能车的左、右电机分别安装了单路输出旋转测速编码器,左侧编码器输出发送给外部中断10引脚PB10,右侧编码器输出发送给外部中断0引脚PB0 。在软件系统中选择某一侧的码盘信号作为采用信号。码盘每转动一个脉冲,即产生一个外部中断请求信号,软件系统通过计算码盘值测量智能车的速度。图6为STM32F1X读取码盘数据的电路原理图。

图6 码盘测速原理图

3 系统软件设计

3.1 配置WIFI通信

将WIFI通信模块配置为服务器模式,由于该模块内置了TCP/IP协议,因此用户无需设置TCP/IP协议栈。该模块出厂时端口统一设置为60000,IP地址统一设置为192.168.xxx.254,其中xxx为模块名称后三位数字。系统软件设计前,用户可以通过电脑查看智能车WIFI通信模块的IP地址。电脑连接智能车上的WIFI模块,打开电脑的控制面板,在控制面板中打开网络和共享中心,在无线网络图片上右键选择状态即可查看IP地址。

WIFI通信模块采用串行通信方式与主控MCU进行数据通信,为了实现智能车与手机的WIFI通信,必须初始化STM32单片机的串口1,设置STM32F1X中引脚PA9和PA10的工作模式以及串口的比特率与数据格式。

3.2 手机模块建立连接

本系统采用安卓手机作为上位机系统,接收智能车发送的传感器数据并以图形界面显示,实时监测智能车的运行状况。首先,创建Socket对象接收主机名称和端口号,必须与3.1节中的设置一致;其次,创建数据流对象进行数据传输;然后开启线程时接收数据。代码中设计了一个中断和一个计时器,中断主要用于数据传输过程中对数据的获取。定时器以500 ms为间隔调用run 函数获得数据,主要代码如下:

public void connect(final Handler handler, String IP) {

try {

socket = new Socket(IP, port);

bInputStream=new DataInputStream(socket.getInputStream());

bOutputStream=newDataOutputStream(socket.getOutputStream());

reThread.start();

timer = new Timer();

timer.schedule(new TimerTask() {

public void run() {

handler.sendMessage(message);

} }

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} }

3.3 手机模块获取传感器数据

智能车通过安装的传感器可以获得外界环境参数,包含智能车超声波数据、光照数据、码盘值。手机模块采集传感器数据需要与智能车间建立通信协议,接收智能车采集的数据。收发双方定义的通讯协议格式如表1所示。

表1 通讯协议格式

通讯协议的数据由8个字节组成,前2个字节为包头,第3个字节为主指令,从第4到第6字节为副指令,第7字节为校验码,第8位为包尾。包头和包尾用来表示是否接收到并且接收完毕的标识位,主指令用来判断接收或者发送的指令的类型,3个字节的副指令主要用来存放在通讯过程中需要传输的数据,第7字节校验和是从主指令开始到副指令结束直接求和并且对256求余所得,主要用来验证数据传输的正确性。

手机模块APP通过系统对智能车发送的数据进行解析,显示传感器的数据。参考代码如下:

public void handleMessage(android.os.Message msg) {

if (msg.what == 1) {

mByte = (byte[]) msg.obj;

if (mByte[0] == 0xaa) {

UltraSonic = mByte[5] & 0xff; //超声波数据

UltraSonic = UltraSonic << 8;

UltraSonic += mByte[4] & 0xff;

Light = mByte[7] & 0xff; // 光照强度

Light = Light << 8;

Light += mByte[6] & 0xff;

CodedDisk = mByte[9] & 0xff; // 码盘

CodedDisk = CodedDisk << 8;

CodedDisk += mByte[8] & 0xff;

if (mByte[1] == (byte) 0x55) {// 显示数据

show.setText("传感器信息:" + " 超声波:" + " + Light + "lx" + " 码盘:" + CodedDisk+ "光强度:" + psStatus );

} } };

4 结束语

手机模块运行安卓的APP程序,实时采集和监测从智能车发送的传感器数据,实现了智能车数据监测的实时性。智能手机携带及操作方便,无论何时何地,工程人员随时可以查看智能车的各项数据情况,大大提高了智能车参数测试和调试的效率。WIFI通信模块HLK-RM04实现了串行数据和无线数据的透明转换,简化了系统设计。

猜你喜欢
码盘原理图字节
三角码盘定位机构相对于十字码盘的准确度分析和补偿计算
No.8 字节跳动将推出独立出口电商APP
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
No.10 “字节跳动手机”要来了?
DA42NG飞机空调系统组成及日常维护
简谈MC7字节码
轧机码盘改造的探讨与实践
关于EDA教学中Quartus II原理图输入法的探讨