基于STM32的智能水质监测系统设计

2020-10-27 11:30邵中祥周芝杰徐云清徐宇宝
关键词:浊度船体姿态

林 华,邵中祥,周芝杰,徐云清,徐宇宝

(皖西学院 机械与车辆工程学院,安徽 六安 237012)

水资源的检测最为常用的方法为人工采样,需要检测人员到指定水域边缘采集水样,如果需要采集中心位置水样还需船只。在水库开阔的湖面人工检测难度上升,需要采集到不同区域,耗费时间十分长,检测数据容易丢失或者混淆。人工检测一般利用化学试剂进行简单的检测,如果想要检测更多的、完整的、科学的信息,需要将样本水带到实验室进行细致检测等[1-3]。

刘雨青[4]等基于嵌入式设计制作了大水域的环境监测系统,搭载在无人船上,可以实现自动巡航远程操控等。王柏林[5]等设计了一种搭载多点、分层自动采水取样装置的智能无人船水质监测系统。童晓红[6]等制作了基于无线传感器网络的巢湖水质监测系统。吕扬民[7]对无人船的水质监测系统设计及路径规划方法进行了研究。

基于嵌入式的产品开发和研究市场广泛[8],大量科研均对各式水域的特殊需求开发了相应的水质监测产品。六安地区水系众多,本文基于STM32研制适应于地方水质监测需要的水域采样船形机器人和初步分析的水质检测系统,能实现无线远距离控制与通讯、卫星记录位置坐标以及位置共享、机器人自主巡航等功能。

1 系统总体设计

1.1 系统框图

水质监测船形机器人整体是一个多反馈系统,水质监测系统以STM32F103ZET6嵌入式单片机为主控核心,系统整体框图如图1所示。硬件部分由电源及系统稳压模块、输入输出调试模块、显示、水泵等采样模块、水质检测传感器、船体姿态陀螺仪、北斗定位和导航模块、数据处理通讯模块等部分组成。其中,GPS定位系统可以实时反映机器人的位置信息,然后和目的水域位置进行比较,从而获取前进的方向,从而控制电机的转速。温度传感器、浊度传感器、PH检测传感器等模块对水质进行初步监测,将所获得的数据传递给单片机,通过比较数据库,生成数据报告。再由GSM模块将其位置信息和检测的数据信息等以信息的方式发送用户的手机中。采用了LCD显示用于调试时显示机器人的测量数据及状态信息等。

图1 系统整体框图

1.2 整体设计

1.2.1 机械结构

监测系统的无人船载体必须要考虑水流阻力、水中暗流以及水面风浪等影响,采取以船型模型作为产品的整体结构模型。模型船尺寸为700mm×250mm×170mm。采取V字型船首结构设计,往船尾逐渐变宽,船体的流线型设计有助于减少水流阻力等优点。在船中间部分,船横切面设计成类矩形结构,保证了船拥有足够的回复力矩,使其在横摇的时候,更快速地回复到正浮状态。模型船底采用平底,此结构可以充分利用船舶内的有限空间,能更多增加阻尼、提高船体的稳定性,也能使空间更大多装所需要的物品如电路板、储水装置等,船体上部要采取掩盖和密封。

1.2.2 供电系统

供电系统的供电以太阳能电池作为主要供电输出,并备用一块可充电锂电池,在不使用备用电池的情况下,可以用太阳能板对锂电池进行充电,当太阳能板无法供电时,此时通过锂电池的供电仍然可以工作一段时间,并把信息发送给用户,提高了机器人运行的持久性。电量由电池输出后交由电源模块进行处理满足整个系统的电源要求。

1.2.3 内部模块安置

由于水质检测机器人是在水中运行,所以稳定性尤为重要。通过陀螺仪模块采集自身的姿态信息,通过软件反馈达到船体稳定性。还要在整体模块安置的重心方面考虑船体稳定性,合理布局放置各个功能模块尽可以使船体受到的浮力最大。内部功能模块化电路连接可靠,有利于故障排查,确保水质监测机器人运行过程的安全性和可靠性。

1.3 系统主控板设计

本水质监测机器人监测系统模块较多,为避免多电路块的问题,将水质监测的模块集中到一块PCB板上,通过合理布局和抗干扰设计,能更好控制水质监测机器人的电路稳定性,更大概率的降低水质监测机器人在水中运行时出现的电路障碍等问题,有效减小后期维护的成本。主控电路板如图2所示,整个系统的电路设计在一块尺寸为10cm×9cm的PCB板上。

2 硬件设计

2.1 STM32控制核心

使用核心芯片STM32F103ZET6,控制器支持多个外设,可以进行PWM电机调控、浊度、pH值、温度采集等。其功能强大,应用广泛[5-8]。

2.2 浊度传感器模块

浊度是水质检测的重要指标之一。水体中含有较大颗粒的各种物质都会使水体变得浑浊,浊度与光折射系数相关,水越污浊,透过的光也就越少。光敏传感器把光强度转换为电量的大小,经过公式换算可以得到相应的浊度信息。这里选用TSW-20MK浊度传感器。

图2 PCB整体板图

2.3 pH检测模块

水质中的pH值一定程度上可以反映当地水资源的受污染程度。各种用途的水都会要求在一定pH值区间,如饮用水pH值6.5-8.5;工业用水pH值7.0-8.5等。

选用不锈钢封装防水型温度传感器探头,在水质检测pH值的同时,检测水域的温度。pH值检测模块上带有DS18B20数字温度传感器接口,在水温不在20 ℃-30 ℃之间时,计算出温差和补偿pH值,将补偿pH值累加在pH模块测出的pH值上,得出水域实际的pH值。

2.4 水质采样模块

设计有水质采样装置,在水质监测机器人到达指定水域后,停止前进,由单片机发出指令进行水泵抽水,并进行抽样水质的浊度、pH值、温度等水体指标检测,当检测到水体指标超标时,将该水域的水抽取储存,随水质检测机器人一同返回,方便作进一步的污染分析。

采样后的水选用多个玻璃容器盛装,制作时使用玻璃胶密封容器,分别有抽水口和出水口,保证容器内和容器外的压强一致,可防止在水质检测时水泵无法抽水或停止后的倒吸现象。

2.5 通信模块

现在对于无线通信,一般来说短距离使用蓝牙,长距离使用的是NRF24L01,蓝牙NRF24L01对于水质监测机器人都存在很大的弊端,在开阔的湖面上使用就显得比较力不从心。

选用GSM模块进行通信,GSM模块相对于蓝牙NRF24L01优势明显,它不受到距离限制在对水质每项指标进行监测后,通过使用GSM模块将存储在数组中的检测到的浊度、pH、温度和溶解氧等数据信息发送到指定手机。

2.6 北斗+GPS导航模块

为使水质检测机器人的实时定位信息,系统选择ATK1218-BD北斗+GPS双定位导航模块,其带有EEPROM和后备电池,搜索卫星速度快。使用此模块后机器人同时支持北斗卫星和GPS的单独或组合定位,并支持QZSS和SBAS系统,冷启动捕获灵敏度高,定位精度达2.5 m,导航模块更新速度快,能满足使用需求。

2.7 驱动模块

该水质监测机器人使用直流电机驱动,使用STM32单片机定时器控制PWM输出信号至电机驱动和控制监测机器人前进,使用HIP4082作为驱动芯片的MOS驱动电路,使用74LVC245做隔离,具有负载能力强等优点,在控制电机加减速性能方面更快速、更强劲。本监测系统设计的电机驱动PCB整体板图如图3所示。

图3 驱动整体板图

2.8 电源模块

由太阳能供电和备用锂电池供电,使用的各个水质监测模块额定电压电流的不同,在硬件设计上需要多路稳压、滤波和隔离。电源设计上,采用了TPS公司降压稳压芯片,电池电压经TPS7350稳压至5 V,给主控板上5 V器件供电;再用TPS7333对5 V稳压至3.3 V,给主控芯片STM32F103ZET6、姿态传感器和摄像头等3.3 V器件进行供电。这几个电压基本满足整个系统的供电要求。

3 软件设计

3.1 总体控制流程

整车控制系统首先进行各个模块初始化,对水域的采集路径进行计算,经延迟后启动机器人,在工作时不断进行自身位置判断的循环,即通过定位和导航模块位置信息,通过和要进行水质检测的水域位置进行比较,如果水质检测机器人已经进入所要进行水质检测的水域范围内,那么就停下开始水质采样、水样初步处理和检测、数据处理、通讯等工作,通过GSM模块将分析数据以短信发送到指定手机里,再判断是否所有任务完成,未完成则继续朝下个目标前进。判断所有的水质检测任务完成后,完成检测之后,开始返回。

在运行中如果和水质检测的水域有偏差,通过GPS模块获取的经纬度之差拟合出一条路线,然后水质检测机器人朝着目标的方向继续前进,到达指定位置周围以后,开始进行水质信息监测。

在程序中,利用STM32的中断对程序进行规划,利用多个中断完成整个检测过程,如设置中断将陀螺仪检测到的偏航角度作为电机PWM的累加输出等。

3.2 稳定性控制

为保证行驶过程中的稳定性,对于船体的方向控制,首先要确保GPS定位信息可以实时更新,有利于船体高效快速做出反应,能及时对船体偏离方向进行矫正,即使遇到恶劣情况也可以控制不至于倾覆;其次,需要对船体的速度控制上输入输出作限幅,对速度作平滑输出以达到最理想的匀速行驶状态。

为保证更好的稳定性控制,选用JY系列931型号的陀螺仪九轴姿态传感器判断水质检测机器人在三维空间上姿态信息的变化。系统可读取九轴姿态传感器在Z轴上改变的原始值通过卡尔曼滤波后,转换为重力加速度值,经卡尔曼滤波后的姿态值误差小、跟踪速度快,能满足机器人姿态控制的需要[9]。

当系统检测到船体有向下的重力加速度时,此时水质检测机器人在水中前倾,系统将重力加速度通过比例-微分输出在电机上,提高水质检测机器人在水中的速度。反之降低机器人在水中的速度,通过姿态传感器的使用提高了行驶过程中的稳定性。

在调试中,将安放好姿态传感器的水质检测机器人放置在水槽中,通过蓝牙模块将九轴姿态传感器的三维空间上的变化值传回到上位机上进行显示。不断人为改变检测机器人在水中的实际情况,调整九轴姿态传感器的位置,确保水质检测机器人在水中静止时,九轴姿态传感器在三维空间上是水平的。

3.3 方向控制

水质检测机器人需要完成指定水域水质的监测等任务。在湖面水库等自然水域环境中工作,势必会受到波浪、障碍等很多未知干扰的影响,使偏离航向,与规划路径有较大误差。另外受到船体比较大,姿态传感器自身的高频噪声和漂移等影响,采集到的姿态偏航角具有一定的误差。设计中为提高方向控制的实时性和准确性,提高系统的稳定性主要采取的措施有如下3点:

(1)设计中采用在船体中心位置水平放置陀螺仪来检测船体姿态角,采用卡尔曼滤波融合算法求最佳姿态估计,能使姿态估计跟踪迅速、误差小、信息更准确。

(2)为使电机的输出更平稳,控制中采用“PD+补偿”的方向控制算法,保证遇到较大的自然环境让船体偏离较大的方向角度时,电机转速不会猛然增加。在水质机器人实物下水测试结果显示采用此方向控制策略效果比较好。

(3)在控制稳定性方面,采用转向串级控制策略,将船体与目的地的角度偏差作为外环,将电机PWM输出信号与实际转弯角速度作为内环,外环偏差作为内环的输入,根据串级控制的原理可知,合理配置内环外的参数,就能使系统的大部分干扰在内环就能大幅削弱,使系统的整体输出更加精准快速。采用此策略保证了遇到较大的自然环境让船体偏离较大的方向角度时,系统的输出更抗干扰性更强。

3.4 速度控制

本文水质监测机器人使用电机是带有霍尔测速的直流电机,采集当前速度后反馈至单片机,形成速度闭环控制,经过PID环节,输出PWM信号至电机进行输出,实现水质监测机器人按照设定方向匀速运行[10]。

在控速方面可以采用积分限幅控制对水质监测机器人速度变化率进行限制,输出时也经过低通滤波再限幅输出;另外在控制中还引入了积分分段控制的方法,在误差小时引入积分项,误差大时则取消积分作用。

3.5 水质监测系统实物图

基于上文的分析,制作了水质监测系统并进行了各项功能测试以及进行了水上测试,表现良好,实现了各项功能的正常运行,能实水质采样并进行简单检测及数据的传输,能够在水面进行运行至指定位置并返回。实践结果表明,系统运行稳定,部分功能有待进一步优化,比如增加传感器以完成更多的水质检测指标项目、增加避障功能等。水质监测系统的第一代产品实物图如图4所示。

图4 水质监测系统一代产品实物图

4 结 语

基于STM32对水质监测机器人及其监测系统的硬件、软件和机械等方面进行了研究和设计。设计中采用一体化主控板设计,双块电池供电,从硬件和机械方面保证了监测机械的可靠性,在软件方面研究了车模方向PD控制的积分限幅控制及积分分段控制策略,证实该算法能有效改善船体控速等问题。实践结果表明,水质监测机器人机械结构较合理,硬件稳定,算法可靠,船体运行平稳,基本上实现了水质采样和初步水质检测等功能。

猜你喜欢
浊度船体姿态
船体行驶过程中的压力监测方法
丙烯酰胺强化混凝去除黑河原水浊度的研究
《中国药典》四部通则澄清度检查法中可能存在问题的探讨*
攀爬的姿态
超大型FPSO火炬塔及船体基座设计
浊度传感器自动除污校准装置
全新一代宋的新姿态
跑与走的姿态
11°角应用于啤酒过滤浊度测量
船体剖面剪流计算中闭室搜索算法