基于STM32的移动多终端环境监测系统
2015-03-09MobileMultiterminalEnvironmentMonitoringSystemBasedonSTM32
Mobile Multi-terminal Environment Monitoring System Based on STM32
魏阿勇 凌志浩 叶西宁
(华东理工大学信息科学与工程学院,上海 200237)
基于STM32的移动多终端环境监测系统
Mobile Multi-terminal Environment Monitoring System Based on STM32
魏阿勇凌志浩叶西宁
(华东理工大学信息科学与工程学院,上海200237)
摘要:针对获取危险场所和未知地域环境信息的应用需求,提出并设计了一种基于嵌入式系统的移动多终端环境监测系统。携带多种环境检测传感器的多个自主避障移动终端,根据移动规则遍历搜索环境,在不同的位置反馈环境信息数据;随后这些数据被用于构建实时环境信息分布图。仿真和实际运行效果证明,系统可以有效检测未知环境,呈现可靠的环境信息分布图。由系统原理和效果可以推断经进一步改进后的系统可应用于诸如气体泄漏检测、未知探险、密闭环境监控等应用场所。
关键词:移动多终端ZigBee无线传感网络环境检测信息分布
Abstract:In accordance with the applicable demands for obtaining environment information of hazardous locations or unknown regions, the mobile multi-terminal environment monitoring system based on embedded system is proposed and designed. Multiple autonomous obstacle avoidance terminals carrying various kinds of environment detection sensors traversal search environment based on move rule, and feedback environmental information data at different locations, then these data are used to construct real time environment information distribution graphic. The effects of simulation and practical operation of the system verify that the system can effectively detect unknown environment, provide reliable environment information distribution graphic. From the principle of system and the effects, it is inferred that after further improvement, the system can be applied in detecting gas leakage, unknown explorers,monitoring confined environment, etc.
Keywords:Mobile multi-terminalZigBeeWSNEnvironment detectionInformation distribution
0引言
化工厂毒害气体泄漏后需要规划紧急救援或疏散的通道;突发地震、塌楼等灾害事故之后,需要快速探测生命迹象;在放射源外泄的情况下,需要及时掌握射线强度分布,追踪放射源;在诸如行星探测、未知环境探险、军事侦查等应用情况下,需要及时感知对象环境以便采取措施。因此,快速监测未知环境,并构建环境信息分布图,具有重要的研究意义和实现价值。
由于无线传感网络节点需要人工提前安装;节点监测点位置固定和感知范围有限;网络对于节点移动的适应性和容错性较差等缺陷,因而无法适用于突发的动态环境,检测人员不便到达区域的检测。如果使用机器人或者自主移动智能终端代替人员,携带无线检测传感器或仪器,进入待检测环境展开工作,则可以有效实现无线传感网络的自主移动功能。这样检测节点可以在三维空间自主移动定位,极大方便特殊环境下的传感网络布置,通过节点移动有效应对环境变化,并且可以通过节点的移动来增加网络覆盖范围。
现代人工智能技术、传感器技术以及控制理论的日趋成熟,移动自组织网络技术快速发展,为移动无线传感网络和智能终端技术相结合的系统实现提供了可能[1-3]。
1系统结构
基于应用需求及技术的可实现性,针对一个二维平面有限范围未知环境的温、湿度和空气质量信息监测,本文提出了一种移动多终端环境监测系统。系统设计了能够自主运动的多个终端,借助无线通信系统,携带环境检测传感器在被测环境中运动。这样既可以实现无线传感网络的快速部署,也可以按照设定的检测密度,覆盖搜索整个环境区域,并实时返回信息数据。根据返回的环境信息数据,就可以在上位机上构建环境信息分布图。
监测系统的设计内容主要包括:搭建三个移动检测终端;构建无线网络,实现检测终端之间以及终端和监控中心之间的通信;开发上位机软件、遥控终端,处理数据和最终显示温、湿度分布图等。系统设计结合了无线传感网络、嵌入式终端的数据处理以及智能化终端的移动控制等多方面技术,系统结构框图如图1所示。图1中,三个小车代表移动终端,其上携带了环境检测传感器,通过无线通信网络和上位PC连接通信。
图1 设计结构框图
设计的终端具有半自主、半受控的特性,既可以在未知环境中实现一定的避障行驶功能,又能够在接受外部遥控的情况下行驶[4],单个终端设计框图如图2所示。终端携带运动检测传感器检测自身运动状态;携带路况检测传感器感知路况;携带环境检测传感器感知环境。根据设定的终端运行规则以及检测到的终端自身运行状态和路况信息,由微控制器处理并输出控制信号,调整终端的运动模式。环境检测传感器感知的环境信息,上传到微控制器,由微控制器进行数据处理,并通过无线通信层将数据发送给上位PC。当需要远程遥控终端运动状态时,上位PC通过无线网络将命令信息发送到终端,由微控制器从终端的无线通信层获取命令。终端根据微控制器接到的上位机命令信息,调整终端的运作。
图2 终端设计框图
2系统终端设计
2.1 检测终端硬件
根据图1和图2,本系统具体设计中采用四轮驱动车底盘作为移动终端平台,其他部件都在此平台上搭建。全车采用7.2 V锂电池供电,底盘车是四轮驱动。使用水平安装的陀螺仪传感器,检测移动终端转弯的转向角,使用光栅传感器检测移动终端的行驶速度(通过对速度数值的累加得到移动终端的行驶距离),陀螺仪和光栅传感器作为自身状态传感器。采用超声波距离传感器作为路况检测传感器,检测未知环境中的障碍物信息。终端根据障碍信息,按照一定的规则合理避障。此外,设计中采用集成的温、湿度传感器和空气质量传感器感知环境信息。
2.1.1终端微控制器
终端控制器选择ST公司Cortex-M3系列的微处理器STM32F103C8T6作为其主控制器,负责终端的传感器数据采集、处理。STM32F103xx具有高性能的ARM Cortex-M3 32位的RISC内核,工作频率达到72 MHz,内置高速存储器(高达128 kB的闪存和20 kB的SRAM),具有丰富的增强I/O端口和连接到两条APB总线的外设。其包含了2个12位的ADC、3个通用16位定时器和1个PWM定时器,同时具有标准和先进的通信接口:I2C、SPI、USART、USB和CAN总线等。
2.1.2终端电机驱动
驱动模块使用L298N双全桥驱动模块,1个模块可以驱动2个电机。通过控制器输出不同占空比的PWM波来控制驱动模块的通断,从而控制电机转速;双向导通驱动模块实现电机正反转。使用2个L298N模块即可驱动底盘车4个电机,且每个电机的工作状态都相互独立。调节不同轮子的转向和转速,可以实现车辆快速加减速、原地任意角度转向。
2.1.3环境感知传感器
终端携带温、湿度和空气质量两种传感器,用于感知环境。温、湿度检测使用DHT11型传感器,温度量程为0~50 ℃,湿度量程为20~95%RH,输出数字量。通过软件的编程设置,读出传感器输出的温、湿度数据,在微控制器上对数据进行一定的换算、修正,即得环境真实温、湿度数据。
空气质量传感器是一种半导体气体传感器,能够感知空气中的多种有毒和易燃气体,然后将检测出的气体转换为电阻值的变化。通过A/D采样该电阻上的压降,推算空气质量的等级,然后按等级划分。
2.1.4避障检测
超声波传感器是一种频率高、方向性好的定向距离检测传感器,可用于移动终端的避障检测。设计使用中,首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以空气中声音传播的速度就得到二倍的声源与障碍物之间的距离。采用上下两层超声波传感器,以检测不同高度的障碍物,减少检测盲区;将超声波传感器安装在舵机上。随着舵机在0~80°的空间里转动时带动超声波传感器检测正前方左右各90°内的障碍物信息,并保存数据等待处理[56]。
根据舵机转向不同角度的超声波传感器检测的距离值,就可以判断在移动终端的不同方位上障碍物情况,并据此分析判断下一步的移动方向。在超声波传感器转动角度范围内划出5个方向,并且赋予每个方向不同的优先级。移动终端在每次检测完障碍物之后,按照优先级选出无障碍方向作为下一步运行方向。
2.2 终端软件实现
终端软件具体负责整个终端的运动控制、通信控制、驱动传感器、采集数据等工作。下位机软件使用嵌入式C语言在Keil编译环境中编写,软件功能框图如图3所示。
图3 终端软件框图
本系统的终端不仅需要完成终端的移动控制、避障检测、环境感知、无线通信、数据处理等任务,并且要求具有一定的实时性,一般的单线程微控制器很难满足上述要求。所以需要移植μC/OS-II嵌入式操作系统,实现一定的任务调度与分配工作。
μC/OS-II是一种可移植的、可裁剪的、抢占式的实时多任务操作系统内核,是专门为计算机的嵌入式应用设计的,具有执行效率高、占用空间小、实时性能优良和扩展性强等特点。μC/OS-II基于任务优先级调度提供最基本的系统服务,如任务管理、时间管理、通信管理、内存管理、中断管理等。
#define jiance_task_prio9
#define jiance_stack_size 64
OS_STK jaince_task_stack[jiance_stack_size];
voidjiance_task(void *pdata);
上述代码为在μC/OS-II操作中系统创建某个具体优先级任务的代码。根据功能需求,按照上述代码在μC/OS-II中建立多个任务,每个任务负责不同的功能。在μC/OS-II内核的调度下,任务之间按照时间片获得CPU的控制权。这样不但可以保证各个任务具有一定的实时性,并且具有类似多任务并行工作的效果,充分利用CPU。
3网络设计
3.1 ZigBee无线网络设计
本系统中的网络不仅承担传感数据的收发,还要充当移动终端的命令通信系统。鉴于ZigBee技术在无线传感网络中已经有大量成熟的应用实现,故本系统采用ZigBee通信模块构建无线通信局域网。
ZigBee通信模块基于802.15.4通信协议,采用2.4 GHz免费频段,实现低功耗、大量节点的无线自组织网络,通过多跳方式传递数据。设计中采用TI公司开发的CC2530 ZigBee模块,并集成z-stack协议栈。为提升通信模块的传输距离(≥300 m)和穿透能力,添加CC2591功放模块,可以基本满足一定区域有限范围内的通信需求。
由于在多终端运动过程中,网络节点的位置一直在变化,所以将网络结构设计成Mesh结构,这样可以减少由于终端移动产生的通信不稳定。Mesh网络结构中各个节点的地位是平等的,每个节点都可以与一个或者多个对等节点进行直接通信,通过多跳路由的方式最终到达指定目的节点,其拓扑结构如图4所示。设计中将全功能模块协调器作为网络中普通的节点,但是其负责网络的构建与维护。协调器作为上位机PC的一部分,设置在监控PC机旁,不移动,随时将获取的数据发送给PC机。
图4 Mesh网络拓扑结构图
将移动终端使用的ZigBee模块设计为全功能模块路由器,在z-stack协议栈的支持下实现多跳路由。终端主要实现和监控中心之间的通信,其使用的ZigBee模块主要是和充当协调器的ZigBee模块之间数据互发。在终端移动过程中,终端使用的ZigBee模块发送的数据可以通过其他终端的ZigBee多跳路由传至协调器。网络中通信的数据主要包括:终端上传的自身编号、自身移动角度和移动速度,以及采集到的温湿度数据等和协调器下传的终端控制命令等,数据按照一定的数据格式传输。
终端ZigBee模块通过串口引脚与终端的STM32控制器连接通信,STM32控制器将需要上传的数据通过串口传给ZigBee模块,ZigBee模块将数据发送到协调器。协调器下发的控制命令先发送到终端ZigBee模块,再由ZigBee通过串口接口传送给STM32控制器。
3.2 协调器设计及数据传输方式
协调器负责整个无线网络的建立与维护,终端节点加入网络后,协调器会为各个节点分配网络地址。各终端将自身网络地址发送给协调器后,协调器就知道具体终端节点的地址,就可以直接向各个地址发送数据了。协调器的地址固定为0x0000,这样移动终端就可以直接向协调器地址发送数据。协调器通过串口与PC机相连,在PC机上开发上位机软件。软件通过读取串口来获得协调器传送上来的数据,也通过串口将数据传送给协调器,发送给各个移动终端。
4移动终端控制规则
4.1 终端运行规则
终端运行规则如图5所示。各个移动终端独立运行,以间隔固定距离的方式,向着目标点直线行驶。本次行驶完,短暂停车,期间环境检测传感器感知本坐标点环境信息,并将环境信息数据和坐标点数据通过无线网络上传至协调器。协调器将数据上传至PC上位机,上位机对数据进行存储、处理并显示[7-9]。
图5 移动终端运行流程图
暂停期间超声波感知在下一步运行的范围内,各方向上是否存在障碍物,并根据方向优先级选择一个无障碍物的方向作为下一步的方向。按照固定距离计算目标点坐标,将坐标数据和所有可行的无障碍物方向数据发送给上位PC,询问该坐标是否已经在搜索过的区域内。如果已被搜索则换另一个方向,继续判断,直到找到合适的方向,继续前进。前进过程中,微控制器根据速度和角度传感器反馈的实时数据,闭环控制移动终端运动[7]。
上位PC搜集并存储了所有终端在移动过程中反馈的坐标点和各点的障碍物信息。当有新的终端返回其下一个目标点的坐标时,上位PC通过计算该点与以往走过的所有点的距离是否小于终端每次设定的固定距离,判断该目标点是否已被搜索过。当终端各个方向上都已经被搜索过或者存在障碍物时,向上位PC请求一个新的坐标点。在这种情况下,上位PC根据该终端上传的目标位置,依次判断出该终端之前走过的坐标点的可运行方向上是否具有无障碍且没有被自己和其他终端搜索过的未知坐标。如有,将坐标信息发送给该终端,使其径直运动到该坐标点,并按照上述规则继续运行。终端一旦遇到突发状况或者进入死胡同无法摆脱,则可通过上位机判断,并遥控其运行摆脱。
4.2 虚拟坐标系建立和新坐标点计算
移动终端坐标点计算示意图如图6所示。图6中,空心、黑色、灰色三种圆圈分别代表三个不同的移动终端。出发前,静止状态下,以其中一个主终端(空心圆圈)为原点,构建垂直的虚拟平面坐标系并固定,则主终端的初始坐标为(0,0)。然后根据其余两终端相距主终端的距离和角度,计算出两个终端在该坐标系中的初始坐标位置。如黑色终端的初始坐标(x3,y3)可由主终端的初始坐标(0,0)、距离L2和方向角φ2计算得出。
图6 移动终端坐标点计算示意图
终端开始移动以后,每个时刻就以该终端上一个时刻的坐标位置,配合本次运行的角度和距离,计算出新的位置坐标。如黑色终端新时刻的位置坐标(x3′,y3′)可由上一时刻坐标(x3,y3)、行驶距离L3和形式方向角φ3计算得出。所以只要确定出发前静止状态的坐标,然后各终端根据下一个可行方向的角度和设定好的间断距离,即可计算出下一个目标点,并发送给上位PC。
从终端开始工作算起,PC存储了各个终端、各个时刻的坐标。每次终端目标点位置更新,通过判断与其他已被检测过的坐标点的距离是否小于设定的检测密度所要求的距离,来确定新的目标点是否已经被检测过而无需再检测。
5系统结果及运行分析
5.1 系统设计结果
在PC机上开发上位机软件,一方面负责遥控移动终端,另一方面负责移动终端发送过来的数据存储、处理和显示。将PC机存储的坐标数据和相应坐标点的温、湿度和空气质量数据结合起来作图显示,便可形成环境信息分布图。本系统共设计采用三个移动终端,依次编号,上位机软件根据终端编号来区分不同终端。
5.2 系统运行效果
为了对本文中设计的多终端环境监测系统及算法性能进行分析,本节利用Matlab软件对监测系统进行仿真。仿真中,通过软件模拟一个虚拟的待搜索空间和多个障碍物,并模拟三个移动终端按照第4节设定的运动规则,在该虚拟空间内同时运动,统计并记录运行一定时间之后的结果。运行结果表明多个移动终端可以有效地避开障碍物,并且尽量不重复地搜索整个虚拟空间,三个终端都分别承担了较多的工作量,各司其职。
为了检验本系统运作的性能及可靠性,实际运行本系统。在一个放置了障碍物的未知环境中,实际运行设计的系统。将运行的结果在上位PC上作图显示,在图上使用不同颜色的圆圈代表不同机器人在各时刻的检测点位置,每个圆圈中都可以显示该位置点的温、湿度和空气质量数据,形成一幅完整的针对该被测环境的信息分布图。由实际运行的效果图可知,系统运行基本达到了设计要求,实现了对于未知环境的信息分布探测,并且检测点重复少,检测覆盖面积大。
6结束语
本文为了解决掌握未知环境温、湿度和空气质量的分布状况的应用需求,设计了基于无线传感网络的移动多终端监测系统。通过仿真分析与系统实际运行效果的对比说明,系统基本达到了设计目的,可以稳定工作,客观反映环境信息状况。本文设计的监测系统可以通过改变终端携带的传感器类型、终端数量等,应用于不同的场合:如携带温、湿度传感器,可用于花房中不同房室温湿度的检测;携带氧气、CO、瓦斯等气体浓度检测传感器可用于诸如地窖含氧量分布、矿井危险气体浓度分布等的快速检测等[4-5]。
参考文献
[1] 高杉,叶强.基于ZigBee无线传感器网络的气体浓度监控系统设计[J].现代电子技术,2009,32(23):118-120.
[2] 许建新.工业无线网络实时通信的研究与开发[D].杭州:浙江大学,2008.
[3] 王钢,李鹏.WSN环境监测系统节点功耗与能量预警研究[J].计算机与现代化,2010(5):125-126.
[4] 邢涛.工业现场有毒气氛环境监测系统的研究[D].哈尔滨:哈尔滨理工大学,2009.
[5] 赵德月.基于MSP430F2012单片机的烟雾传感器设计[J].工矿自动化,2011(8):110-112.
[6] 苏丽颖,曹志强,王硕,等.多机器人对未知环境进行实时在线探测的一种方法[J].高技术通信,2003,13(11):56-60.
[7] Ahmet Y,Gokhan K,Osman P,et al.A dynamic path planning approach for multi-robot sensor-based coverage considering energy constraints[C]//IEEE International Conference on Intelligent Robots and Systems,2009:5930-5935.
[8] Sebastian T,Wolfram B.A real-time algorithm for mobile robot mapping with applications to multi-robot and 3D mapping[C]//IEEE International Conference on Robotic & Automation,2000:321-328.
[9] 苏相国,樊继壮,臧希喆,等.改进的多机器人协作探索策略研究[J].哈尔滨工程大学学报,2010,31(3):371-376.
[10]辛欣,游雄,卫伟,等.基于便携式移动终端的虚拟地理环境协同感知问题研究[J].测绘工程,2010,19(5):24-28.
中图分类号:TP273
文献标志码:A
DOI:10.16086/j.cnki.issn1000-0380.201503011
修改稿收到日期:2014-09-16。
第一作者魏阿勇(1990-),男,现为华东理工大学控制科学与工程专业在读硕士研究生;主要从事嵌入式系统和物联网技术的研究。