基于STM32的水面清洁无人船系统设计

2022-08-30 05:40陈得日彭雪斌
仪器仪表用户 2022年9期
关键词:微控制器串口水面

梁 军,易 艺,陈得日,彭雪斌

(桂林信息科技学院 电子工程学院,广西 桂林 541004)

0 引言

随着经济发展与人民生活水平日益提高,人工湖数量逐年递增。在习近平总书记强调“绿水青山就是金山银山”的今天,中国的自然环境有了很大的改善,但是在公园、水上游乐场等一些人流量较多的地方仍面临着水环境的污染,尤其是水面漂浮物(如:塑料瓶、塑料袋、一次性餐具等)造成的污染,严重影响着整个水域生态环境和人类居住环境[1]。另外,小型河道和水域较狭窄区域的湖泊采用人工进行垃圾打捞,人工打捞不仅效率低,而且安全系数低[2-4]。目前,水面垃圾清洁船大多数是自动化水平较高的大型船舶,对于水面垃圾漂浮物的打捞效率较低[5,6],且主要依靠人工,效率不高,对于小规模或形状复杂多变的城市水道、景观池、人工湖等水域的垃圾打捞受到限制,无法满足小型水域水面垃圾清洁的需求[7-9]。为了解决上述存在的问题,有效地对内河和湖泊等水域漂浮垃圾进行打捞,同时对内河和湖泊等水域的水质进行检测,设计了一种小型的水面清洁无人船系统。该系统以STM32作为微控制器,通过遥控操作控制打捞装置对水面垃圾进行打捞,进而实现水面的清洁;同时,该系统还控制浊度传感器、pH值传感器和TDS传感器等水质传感器进行工作,获取检测水域的水质参数,然后通过物联网方式将检测数据传输至上位机进行显示,方便用户了解水域的水质情况,实现对水资源的保护。

1 系统的组成与原理

水面清洁无人船系统主要由主控单元、4G通信模块、水质传感器模块、红外传感器模块、串口舵机、无线通信模块、电机驱动模块、上位机、视频采集单元和遥控器单元组成,其系统组成框图如图1。

图1 系统组成框图Fig.1 System composition block diagram

水面清洁无人船系统的主控单元主要由两个STM32微控制器组成。微控制器A主要负责水域水质数据的采集和发送给上位机等工作:第一,控制红外传感器模块工作,检测垃圾回收舱的空间状态,用于判断垃圾回收舱是否装满,并将信息通过4G通信模块发送给上位机;第二,控制水质传感器模块工作,获取水域的水质信息,并进行分析和处理,然后将水质数据通过4G通信模块发送至上位机。微控制器B主要负责水域水面垃圾的打捞和船体的巡航工作:一方面,它主要根据用户从遥控器单元或用户预先设置的自动垃圾打捞命令控制串口舵机带动打捞装置工作,对水面垃圾进行打捞;另一方面,它根据用户从遥控器单元发送的任务指令控制电机驱动模块驱动两个直流电机进行工作,从而控制水面清洁无人船进行巡航。遥控器单元上设有按键模块和液晶显示模块,方便用户输入控制指令和观察系统信息。用户还可以通过阿里云平台随时随地查看无人船所在水域的水质参数和垃圾回收舱的空间状态。视频采集单元主要由树莓派和摄像头组成,树莓派控制摄像头完成视频采集的工作,并将获取得到的实时视频回传至上位机阿里云平台进行显示。

水面清洁无人船的船体结构由打捞装置、垃圾回收舱、控制舱和推进装置共4个部分组成,船体正前方两侧安装了隔离网,延展了水面垃圾的收集范围,船体结构如图2。

图2 水面清洁船的船体结构图Fig.2 The hull structure of the surface cleaning vessel

2 系统硬件电路设计

系统的硬件电路设计主要包括主控单元模块、4G通信模块、水质传感器模块、串口舵机、无线通信模块、电机驱动模块、视频采集单元和遥控器单元电路的设计。

2.1 主控单元模块

为方便系统调试和提高系统的灵活性和稳定性,主控单元模块分为STM32微控制器A和STM32微控制器B。STM32微控制器A的型号为STM32F103ZET6,其片内具有丰富的资源,如:512K的FLASH、112个可用GPIO口、21路ADC等[10],便于后续的系统升级(如:增加风速传感器、GPS等),使水面清洁无人船系统的功能更加完善,满足用户的更多需求。STM32微控制器B的型号为STM32F103C8T6,其内部含有64K FLASH、37个可用GPIO口、10路ADC等资源[11],它主要用于无人船船体的运动控制,负责控制船体的电机驱动模块和串口舵机工作。

2.2 水质传感器模块

水质检测常见的指标有温度、TDS、DO、PH、电导率和浊度等[12,13]。水质检测作为水面清洁无人船系统的辅助功能,主要对典型水质参数,如温度、TDS、PH和浊度进行检测,并将水质检测数据发送给上位机给用户提供参考。水质传感器模块电路连接原理框图如图3。

图3 水质传感器模块电路连接原理框图Fig.3 Block diagram of circuit connection of water quality sensor module

PH值检测模块采用上海雷磁E-201-C型号的PH复合电极作为传感器[14-16],用于检测水中的酸碱度,其供电电压为5V。使用前需对PH电极进行校准,以消除温度和探头老化导致的测量误差,电极两端毫伏级的电位差经过运放放大后转换为0V~3.3V范围的模拟电压信号,然后输给微控制器A的片内ADC采样通道1进行模数转换,最后经过拟合公式(1)换算后得出PH值。

TDS检测模块采用TDS探针作为传感器[14],其顶部为两个电极,用以检测水中溶解的固体含量,供电电压为5 V。TDS探针采集的模拟信号经过运放放大后,输出到微控制器A的片内ADC采样通道2进行模数转换,然后经过拟合公式(2)换算后得出TDS值。

温度检测采用的是DS18B20温度传感器[16],微控制器A通过单总线传输协议获取DS18B20温度传感器的温度数据,从而求得当前水域的温度。该温度参数可以作为浊度和TDS测量的温度补偿,用于减少检测误差。

浊度检测模块采用型号为TSW-30的浊度传感器[15,16],其工作电压为5V。该传感器的内部拥有一个红外线对管,当红外线穿过水体时,通过水中透光率和散射率来判断悬浮颗粒浓度。浊度检测模块将传感器输出的电流信号转换为电压信号,经过运放放大后,输出到微控制器A的片内ADC采样通道3进行模数转换,然后经过拟合公式(3)换算得出浊度值。

2.3 4G通信模块和无线通信模块

4G通信模块和无线通信模块分别负责物联网通信和遥控通信。在物联网通信中采用的是创思通信的Quectel EC20 4G通信模块[17],该模块在硬件上将基带、射频集成在一块电路板上,完成无线接收、发射和基带信号处理功能,支持LTE、UMTS和GSM/GPRS网络,最大上行速率为50Mbps,最大下行速率为100Mbps,能够向后兼容现存的EDGE和GSM/GPRS网络,以确保在缺乏3G和4G网络的偏远地区也能正常工作,这样保证了数据的实时性。在水面清洁无人船系统中,通过微控制器A的串口与4G通信模块进行通信,实现微控制器A与上位机之间的数据收发。与传统的WiFi模块或蓝牙模块相比,该4G通信模块具有易操作、通信速度快、灵活性强等特点,可实现设备数据与远端控制中心的相互传输,非常适用于M2M和IOT领域。

船体与遥控器单元之间的数据通信采用HC-12无线串口通信模块[18],该模块内部含有一个MCU,工作电压为3.2V~5.5V,最大发射功率达到100mW,工作频率为433MHz,支持多种串口透传模式。在水面清洁无人船系统中,通过微控制器B和微控制器C的串口分别与无线通信模块A和无线通信模块B相连接,实现数据的相互收发。该通信模块在开阔地可实现1000m距离的无线通信。

2.4 电机驱动模块和串口舵机

电机驱动模块采用H桥模块。该模块采用门电路与MOS管组合的方式来实现电机正反转、制动及调速控制,它既有较大的输出电流又有类似L298灵活的控制信号逻辑,输入PWM频率范围在0kHz~10kHz,可同时调节两路电机,每路额定输出电流7A。在水面清洁无人船系统中,通过微控制器B的IO口控制电机驱动模块进行工作,用于实现船体的巡航功能。

串口舵机采用众灵科技生产的ZX20S串行总线舵机,该舵机扭力为15kg/cm,同时具有角度回读和多种角度工作模式切换的功能。舵机内部自带主控芯片,内部完成PWM的控制,用户只需通过总线转接板发送串口命令即可实现对舵机的控制,既方便又快捷。在水面清洁无人船系统中,将微控制器B的串口与串口舵机模块的控制总线转接板进行连接,用于实现水面垃圾的打捞功能。

2.5 遥控器单元

遥控器单元主要由无线通信模块B、STM32微控制器C、供电模块、按键模块和液晶显示模块组成。无线通信模块B采用HC-12无线通信模块,STM32微控制器C采用STM32F103C8T6最小系统板,按键模块分为控制电机部分和控制舵机部分。控制电机部分为4个按键,分别为前进、后退、向左和向右功能;控制舵机部分为两个按键,分为打捞和复位两个功能。供电模块采用ASM1117-5.0稳压芯片,12V锂电池由JP1端口输入,经过ASM1117-5.0稳压芯片得到+5V的电压,给无线通信模块B和STM32最小系统板供电,液晶显示模块的+3.3V供电电压由STM32F103C8T6最小系统板上的ASM1117-3.3稳压芯片提供。液晶显示模块采用OLED显示屏,用于显示系统信息。用户输入的指令通过无线通信模块B发送至无线通信模块A,用于完成对船体的控制功能。遥控器单元电路原理图如图4。

图4 遥控器单元电路原理图Fig.4 Circuit diagram of remote control unit

2.6 视频采集单元

视频采集单元采用树莓派和摄像头的组合。树莓派选用2GB内存的树莓派4B,其主要功能包括:高性能64位四核处理器、双频2.4/5.0 GHz无线局域网、蓝牙5.0、千兆以太网、USB 3.0和PoE功能等[19],其软硬件开发资源丰富,这些优点可用于后续系统的升级(如图像识别、雷达避障等)。摄像头采用的是免驱动USB摄像头,方便拔插和安装。在水面清洁无人船系统中,摄像头搭载于船体上并连接至树莓派,通过树莓派系统搭建的“MJPGStreamer”传输视频流,用户可在局域网中用Web端查看摄像头画面,也通过内网穿透的方式将域名映射到局域网,用户可以通过上位机访问域名,随时随地查看回传的视频。

2.7 电源模块

电源模块采用LM2596和ASM1117-3.3稳压芯片来设计,得到符合系统需求的稳压源,从而给整个系统电路进行供电。电源模块硬件设计原理如图5。

图5 电源模块硬件设计原理Fig.5 Hardware design principle of power module

图5中,J1接口与24V锂电池相接,24V直流电压经过LM2596稳压芯片进行电压转换后得到+5V电压,分别提供给通信模块、传感器模块和ASM1117-3.3稳压芯片,通过ASM1117-3.3稳压芯片输出+3.3V电压给主控单元模块供电。

3 系统软件设计

系统的软件设计主要由主控单元的微控制器程序设计、遥控器单元的微控制器程序设计和上位机系统软件设计组成。

3.1 主控单元的微控制器程序设计

主控单元的微控制器A和微控制器B软件设计均采用模块化程序设计开发,在Keil软件的开发环境下使用C语言编写,主要包括串口驱动程序设计、ADC驱动程序设计、温度传感器驱动程序设计和电机驱动模块的程序设计。其主程序流程图如图6。

图6 (b) 微控制器B的主程序流程图Fig.6(b) Main program flow chart of microcontroller B

图6 (a) 微控制器A主程序流程图Fig.6(a) Main program flow chart of microcontroller A

3.2 遥控器单元的微控制器程序设计

遥控单元的微控制器C软件设计采用模块化程序开发,在Keil软件的开发环境下使用C语言编写,主要包括串口驱动程序设计、液晶显示屏驱动程序设计、按键模块程序设计。其主程序流程图如图7。

图7 遥控器单元的主程序流程框图Fig.7 The main program flow chart of the remote control unit

3.3 上位机系统程序设计

上位机系统采用阿里云物联网平台[20],该平台是一个集成了设备管理、数据安全通信和消息订阅等功能的一体化平台,具有安全性能高,易用性强等优点。该平台通过4G通信模块与水面清洁无人船进行数据交互,显示船体所在水域的水质参数。阿里云平台还可以与视频采集单元进行通信,获取船体所在水域的视频图像。利用阿里云平台的Web可视化开发工具,可以方便地进行Web应用和移动可视化开发。用户可使用手机端或PC端对数据进行查看,Web端的软件界面图如图8。

图8 上位机Web端软件界面图Fig.8 Web-side software interface diagram of the host computer

4 系统功能实验测试

为了验证水面清洁无人船的设计方案,采用3D打印制作无人船的船体模型,在本校的人工湖内进行实验测试,测试现场图如图9。实验过程中,水面清洁无人船能够通过遥控器进行运动控制,无人船船体挂载的水质传感器正常工作,对人工湖内常见的易拉罐、塑料瓶、塑料袋和一次性餐具盒等水面漂浮垃圾的回收率较高,垃圾的回收率与水面垃圾的体积及当前水浪等环境因素有关。上位机与无人船的通信效果良好,阿里云平台能够显示无人船所在水域的水质情况,能够实时采集湖面的视频。使用小米TDS水质检测笔和A52家贝测水笔作为标准仪器,使用浊度标准溶液作为标准溶液,对研制的水面清洁无人船系统进行比对测试,得到水面清洁无人船系统的部分参数测量结果见表1和表2。

图9 水面清洁无人船实验测试图Fig.9 Experimental test chart of water surface cleaning unmanned ship

表1 传感器部分参数测量结果Table 1 Measurement results of some parameters of the sensor

表2 浊度标准溶液测量结果Table 2 Measurement results of turbidity standard solution

测试结果表明,水面清洁无人船系统可以代替人工完成小型水域水面的漂浮垃圾打捞任务,且可以测量船体所在水域的水质参数,满足用户清洁小型水域水面漂浮垃圾的要求。

5 结束语

本文以STM32微控制器作为控制和处理核心,结合控制技术、无线通信技术和传感器技术,设计了一种水面清洁无人船系统。介绍了水面清洁无人船系统的组成原理,软件和硬件实现的方法,并对水面清洁无人船系统的功能和指标进行实验测试。实验结果表明,该水面清洁无人船能由用户通过遥控单元进行遥控巡航作业,对水面漂浮垃圾打捞效果良好,且可以测量船体所在水域的水质参数,为水面漂浮垃圾的回收提供一种参考。

猜你喜欢
微控制器串口水面
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
水黾是怎样浮在水面的
基于EM9000工控板高性能双串口通信模型设计与实现
用于高品质电动汽车的分布式并行计算
船舶电子设备串口数据的软件共享方法
为什么木头可以浮在水面上?
电磁导向智能车设计探讨
CSerialPort 类分析及漏洞的修正
一块水面