水质监测智能巡航船的设计与实现

2020-03-04 02:48霍中兴杨永杰吉约兰
现代电子技术 2020年2期
关键词:自动驾驶水质监测嵌入式系统

霍中兴 杨永杰 吉约兰

摘  要: 为了有效解决水产养殖等水质检测领域存在自动检测系统的布线复杂、灵活性差和成本高等问题,研制一艘搭载水质检测装置的智能巡航船。该船按照设定的水面航线自动航行,并在航行过程中采集水质数据,进而减少了布置多个点带来的资源浪费。巡航船的主控芯片采用STM32F103单片机,辅以UM220?Ⅲ北斗定位模块、GY?273电子罗盘、BTN7970电机驱动模块以及PID算法等,实现船在巡航精度2.5 m CEP以内的自动航行。巡航船有两种工作模式:手动模式和自动驾驶模式。手动模式下,用户通过配备的遥控器操作船的前进、左转、右转和倒退,并设置巡航船的自动驾驶路径。自动驾驶模式下,巡航船根据预设的路径自动航行,每到一个点采集一次数据。此方案具有创新性,在解决用户需求的同时,节约了大量成本。

关键词: 水质监测; 智能巡航船; 数据采集; 自动驾驶; 嵌入式系统; 系统测试

中图分类号: TN931+.3?34; TP23                文献标识码: A                       文章编号: 1004?373X(2020)02?0053?04

Design and implementation of intelligent cruise ship for water quality monitoring

HUO Zhongxing, YANG Yongjie, JI Yuelan

Abstract: An intelligent cruise ship embarked with the water quality detection equipment is developed to effectively solve the problems of complex wiring, poor flexibility and high cost of automatic detection system in aquaculture and other water quality detection fields. The ship navigates automatically according to the given route on water surface, and collects water quality data during the voyage, thus reducing the resources waste caused by placing multiple detecting points. The STM32F103 microcontroller is used as the main control chip of cruising ship, with which the UM220?III positioning module, GY?273 electronic compass, BTN7970 motor drive module, PID algorithm and so on are supplemented to realize the automatic navigation of the ship within the 2.5 m CEP cruising precision. The cruise ship has two operating modes: manual mode and autopilot mode. In manual mode, users can operate the ship forward, left?turn, right?turn and backward by means of the equipped remote controller, and set the autopilot path of the cruise ship. In the autopilot mode, the cruise ship can automatically navigate according to the preset path, and collect water quality data at each point along its cruise route. This scheme has innovativeness and can save a lot of costs while solving users′ demand.

Keywords: water quality monitoring; intelligent cruise ship; data acquisition; autopilot; embedded system; system test

0  引  言

养殖水域是养殖鱼类赖以生存的环境,所以养殖环境的好坏直接关系到鱼类的生长和发育,进而决定水产品产量和质量[1]。目前,水上水质监测船的研究也大多是由岸上人员手动控制,无法做到船的自动运行。通常代替人工的水质在线监测系统都采用水面上布置多个节点的方案,这样的系统实时性好、操作简单,但是每套传感器的价格昂贵,超出一些养殖户的经济承受能力。现代化的水产养殖户都需要一套水质监测设备,并且要求价格低廉。

隨着现代通信网络技术的发展,我国大部分地方都已经覆盖了GPRS,3G,4G和WiFi等无线网络[2?3]。网络的普及不仅为客户提供了更快的通信服务业务,也为嵌入式远程监控提供了技术上的支持。本文设计的水质监测智能巡航船,只需要搭载一套水质检测传感器,水产养殖户就可以实时而便捷地检测水中的溶解氧、pH值、温度等参数,节省设备成本。

1  系统方案

巡航船连接了卫星定位系统,由电子罗盘、遥控器和PC机组成,系统框图如图1所示。

卫星定位系统用于巡航船获取定位信息经度和纬度;电子罗盘用于获取船的航向;遥控器用于对巡航船的各种操作,使用433 MHz无线与之通信。用户利用遥控器可以手动控制巡航船进行前进、左转、右转和后退操作,也可以设置巡航船自动航行路线,避开水面的障碍物。遥控器设置巡航船进入自动驾驶模式,随后巡航船按照设定的航线航行,途中实时地采集水质参数数据,采集的数据通过无线网络发送给用户。如果在自动驾驶过程中,用户触发了前进、左转、右转或后退操作,巡航船则退出自动驾驶模式,保证了整个航行操作的灵活性。

2  水质监测智能巡航船硬件设计

为了实现智能巡航,巡航船需搭载北斗定位模块、电子罗盘模块、舵机、电机驱动电路、433 MHz无线通信模块和显示屏模块,电路框图如图2所示。巡航船采用高性能、高性价比的32位STM32F103主控单片机,工作频率高达72 MHz,代码执行效率高[4?6]。该芯片拥有51个通用快速I/O端口,I/O端口电平兼容性好,既可以输入5 V信号也可以输入3.3 V信号,方便了外围电路设计。

巡航船的地理位置使用经纬度表示,经纬度通过北斗模块UM220?Ⅲ获取。该模块支持BD2 B1频点,其跟踪灵敏度为-160 dBm,捕获灵敏度为-145 dBm,定位时间短,热启动仅需1 s,定位精度在2.5 m CEP左右。模块工作电源电压为2.7~3.3 V,功耗仅为120 mW,可利用电池供电,方便使用。该模块具有两个串口,获取的定位信息可以通过串口发送到STM32主控制器。串口1可以用作模块的升级;串口2与微处理器相連,输出定位信息。

电子罗盘采用GY?273模块,工作电压为3~5 V,测量范围为±1.3~8 高斯,单片机可以通过IIC协议与该模块通信,获得巡航船船头与地磁北极的角度。结合以上两个模块的输出信息,确定巡航船的运动信息。

S3010舵机用于控制巡航船转向,扭力大且响应迅速,单片机通过输出PWM信号对其进行控制。

为了给巡航船提供充足的动力,巡航船的动力驱动芯片采用BTN7970,该芯片正常工作电压为8~45 V,最大电流高达50 A,驱动信号PWM频率范围为1~25 kHz。驱动电路工作时,电路中会经过大电流,驱动芯片的输入端与处理器直接相连会损坏微处理器致使巡航船失控,需要在电路中加入光电耦合电路,使得两部分电路完全隔离,保护了电路的核心部分[7?9]。

无线模块使用433 MHz下的SX1278模块,用于和巡航船配备的无线遥控器进行通信[10]。此频率属于国家规定的免申请频段,相较于广泛使用的2 GHz频率,具有干扰少、穿透性好、传输距离长等优点,空旷情况下传输距离理论可达8 km,该模块与单片机串口通信,简单方便可靠。

巡航船上采用OLED显示屏,用于调试和显示船运行状态信息,如巡航船当前位置的经纬度、航向角等。该屏的每个像素点自带光源,无需背光源,节省电力,不论昼夜显示效果良好。

3  水质监测智能巡航船软件设计

3.1  巡航船自动驾驶软件设计

嵌入式程序通过Keil软件并使用C语言编写,自动驾驶软件流程如图3所示。

软件启动后,首先使用Board_Init()函数对无线模块、北斗模块、电子罗盘模块、显示屏模块、舵机、电机驱动部分电路以及STM32内部外设进行初始化设置。初始化完成后通过无线模块Rec_packet()接收巡航船遥控器的命令数据,命令分为:“手动驾驶”命令、“设置路径”命令和“自动驾驶”命令。Get_lc(&hello)函数根据不同的命令执行不同的程序。若是“手动驾驶”命令,巡航船功能则相当于一个玩具遥控船,进行前后左右移动。如果是“设置路径”命令,则程序首先读取巡航船所在地点的坐标数据,然后Stm32flash_write()函数记录到STM32内部FLASH,并将坐标点标号显示在显示屏上。如果是“自动驾驶”命令,则立即进入自动驾驶模式,程序首先读取电子罗盘和北斗卫星数据,继而判断巡航船当前坐标是否在目的地坐标附近。根据北斗模块的精度,如果距离小于2.5 m,则表示到达目的地,在偌大的水面上,此精度完全符合实际要求。如果巡航船到达目的地,则使用存储的下一个坐标作为目的地。然后根据以上信息,计算出巡航船需要调整的角度。最后将计算结果输入PID算法,由PID算法的输出控制巡航船移动。通过以上过程的不断循环,不断调整巡航船的运动轨迹,继而实现了巡航船的智能巡航功能。

3.2  自动驾驶算法设计

在进入自动驾驶模式之前,需要遥控器为巡航船设定行驶路线。设置完所有的地点后,遥控器控制巡航船进入自动驾驶模式。为了实现巡航船的自动驾驶,巡航船需要在行驶过程中不断地调整巡航船的行驶方向和目的地点方向一致。巡航船的行驶方向的获取采用GY273指南针模块,输出值范围为0°~360°,巡航船船头指向正北方时为0°,顺时针增加,用β表示。目的地方向的数据由用户事先设定,数据的获取采用了北斗定位模块,模块定位成功后输出数据格式为:$GPGLL,3 158.523 389,N,12 054.576 636,E,235 947.400,V,N*47。其中,3 158.523 389可以转换为纬度,等于31°+58.523 389/60,N表示北纬;12 054.576 636可以转换为精度,等于120°+54.576 636/60,E表示东经。为了方便程序处理,规定北纬范围为90°~180°,南纬范围为0°~90°,东经范围为0°~180°,西经范围为180°~360°。目的地方向角为巡航船所在地坐标到目的地坐标连接形成的直线与正北方向的顺时针夹角,即位置偏角表示为θ,范围0°~360°。现规定巡航船的所在地的经纬度表示为(s_j,s_w),目的地经纬度(d_j,d_w)。船转向角度示意图如图4所示。

为了巡航船以最近的路径在地球上航行,必须求出最短路径方向的夹角。因为地球为球体,所以下面分为两大类进行分析:

1) 距目的地最短路径经过0°经线,即|s_j-d_j|≤180°。

2) 距目的地最短路径不经过0°经线,即|s_j-d_j|>180°。

因为在地球上,小范围的情况距离计算可以使用勾股定理,于是地球上两点距离可以表示为m:

[(s_j-d_jcos(s_w-d_w)111)2+(s_w-d_w111)22] (1)

为了得到最小的位置偏角δ,范围为0°~180°。现讨论第一种情况:

1) d_w>s_w。当d_j≤s_j,α=360°-θ;当d_j>s_j,

α=θ。

2) d_ws_j,α=180°-θ。

3) d_w=s_w。当d_j

第二种情况:

1) d_w>s_w。当s_j<180°,α=360°-θ;当s_j≥180°,α=θ。

2) d_w

3) d_w=s_w。当s_j<180°,α=90°;当s_j≥180°,α= 270°。

通过以上运算得出了最小的位置偏角δ,接下来使用δ和β求出巡航船调整船头方向的最小角度ε。令temp=δ-β。若|temp|≤180°,當temp<0°时,ε=|temp|·(-1);当temp≥0°时,ε=|temp|。若|temp|>180°,当temp<0°时,ε=360°-|temp|;当temp≥0时,ε=(360°-|temp|)·(-1)。

ε的范围在-180°~180°之间,最后将ε传入PID进行运算,算出的ε传入PID算法后,PID_realize()函数将输出一个PWM值用于巡航船的方向[11?12]。

4  系统测试

根据以上设计方法制作一艘智能巡航船,其内部结构如图5所示。

将巡航船组装完毕后,使用遥控器将巡航船驾驶至目标点,到达目标点后按下设置路径按钮,巡航船即记录下了当前坐标,重复以上动作即可记录整个运行路径。本次测试使用了3个目标点组成一个三角形,每个点相距约10 m。目标点设置完毕后,使用遥控器控制巡航船进入自动驾驶模式,实测行驶路径如图6所示。

巡航船自动行驶过程中计算到达下一目标点的距离,小于2.5 m,则认为到达,并继续下一坐标点的行驶。在实验过程中对每次巡航船距离目标点的距离进行记录,共记录4次,该数据利用数据采集部分的GPRS发送到用户PC机,结果如表1所示。

由表1表明,巡航船能够正确到达每个目标点,并且距离误差在2.5 m以下,这样的精度在水面上完全满足要求,可以使用,应用前景良好。

5  结  语

本文实现了一种水质参数智能巡航船,并采用新颖的“多点一船”方式实时地采集整个水域的水质参数信息,节约大量物力资源,满足水产养殖业对水质测量的需求。本文巡航船与嵌入式技术相融,性价比高,在水产养殖业具有一定的推广应用价值。

注:本文通讯作者为杨永杰。

参考文献

[1] 单中华.浅谈水产养殖技术推广存在的问题及应对策略[J].南方农机,2018,49(9):94?96.

[2] 董铮,张其林,项东升.水产养殖监测系统设计与实现[J].农村经济与科技,2018(3):77?78.

[3] 王巧艺.物联网技术在我国水产养殖上的应用发展对策[J].农村经济与科技,2018,29(2):53.

[4] 丁力,宋志平,徐萌萌,等.基于STM32的嵌入式测控系统设计[J].中南大学学报,2013,44(z1):260?265.

[5] 吴静珠,刘倩,董文菲,等.基于STM32的便携式直链淀粉测定仪设计[J].传感器与微系统,2015,34(10):51?53.

[6] 李晓丹.基于STM32的物联网嵌入式网关的设计[J].计算机工程与应用,2015,51(4):61?65.

[7] 宋利辉.光电耦合器在接口电路中的应用[J].现代经济信息,2017(5):369.

[8] 刘熹,刘迎春,邵珠枫.光电耦合器选型与应用[J].工程机械与维修,2014(1):128?129.

[9] 熊建云.基于光电耦合器的智能仪器I/O接口电路设计[J].工业仪表与自动化装置,2013(5):51?52.

[10] 倪忠俊,麻红昭.基于433 MHz的智慧农业无线测控系统的设计与实现[J].工业控制计算机,2016,29(3):69.

[11] 郝少杰,方康玲.基于模糊PID参数自整定的温度控制系统的研究[J].现代电子技术,2011,34(7):196?198.

[12] 张原,黄文静,桑路路.PID控制在火箭炮伺服系统中的仿真实现:改进的专家自适应PID控制[J].计算机工程与应用,2013,49(8):241?244.

作者简介:霍中兴(1993—),男,硕士,主要研究方向为嵌入式、物联网、通信。

杨永杰(1968—),男,博士,主要研究方向为嵌入式、物联网、通信。

吉约兰(1994—),女,硕士,主要研究方向为嵌入式、物联网、通信。

猜你喜欢
自动驾驶水质监测嵌入式系统
汽车自动驾驶的发展
LTE—V车路通信技术浅析与探讨
2014—2016年北戴河近岸海域水质监测数据对比分析
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
特斯拉默默更改了官网上“自动驾驶”的说明
基于生物传感器的饮用水有毒物质检测
浅谈重铬酸盐法与快速消解分光光度法的比较
特斯拉中国官网不再提“自动驾驶”