无人船的可视化系统设计毕业论文
2020-04-05 10:52:39
摘 要
水资源的开发和利用越来越被人类所重视。传统海洋探潜中采用的是大型船只和有线通信方式,这种方式耗资大且通信不便捷,近年来的无人机和无人船设备均向小型化和高速无线通讯方向发展。小型化的无人船设备便于携带,能耗较低,也更便于在狭小的水域灵活工作。蓝牙和WIFI等无线通讯的方式具有使用方便、船体活动不受布线影响和传输速度快等优势。针对这种情况,本文对无人船的远程控制和无线可视化系统进行设计。
本文利用Arduino单片机作为无人船的控制板,APC220串口通讯方式的无线数据传输模块发送对无人船的控制信息,利用上位机程序的W、A、S、D四个字母按键分别控制小船的前进、左转、后退和右转。可视化部分采用树莓派3B开发版接入USB摄像头和USB无线网卡,树莓派将摄像头采集到的实时视频信号通过Linux系统下的html脚本程序将视频信号发送至连接上无线网络的电脑。用LABVIEW编写的上位机程序同时具有控制船体动作和显示水下图像的功能。本系统具有体积小、能耗低,上电之后所有操作和控制均可远程执行的特点。
关键词:Arduino、树莓派、无线通信、Labview
Abstract
More and more attention has been paid to the development and utilization of water resources. The traditional ocean diving used large ships and wireline communications, which cost a lot and communication is not convenient, this year’s UAV and unmanned ship equipment are developing towards miniaturization and high-speed wireless communications. The miniaturized unmanned ship equipment is easy to carry, has low energy consumption and is more convenient to work flexibly in narrow water. The way of wireless communication such as Bluetooth and WIFI has the advantages of convenient operation, no influence on cabling activity and fast transmission speed. In view of this situation, the design of remote control and wireless visualization system for unmanned vessels is designed in this paper.
In this paper, I used the Arduino single-chip computer as the control board of unmanned ship, APC220 serial communication mode of wireless data transmission module to send control information to unmanned ships, W, A, S and D letters are used to control the advance, turn left, backward and right turn of the small boat respectively by using the upper computer program's four letters. The visualization part uses the raspberry pi 3B development board to connect the USB camera and the USB wireless network card, the raspberry pi sends the real-time video signal which the camera collects to pass through the Linux system the HTML script program to send the video signal to connects the wireless network to the computer. The host computer program written by Labview also has the function of controlling the hull motion and displaying the underwater image. The system has the characteristics of small volume, low energy consumption, and all operation and control can be executed remotely after power on.
Key Words:Arduino, raspberry pi, wireless communication, Labview
目录
第1章 绪论 1
1.1课题研究背景 1
1.2 研究目的及意义 1
1.3 国内外研究现状 2
1.4 研究内容和方法 2
1.4.1 研究方法 2
1.4.2 研究内容 3
第2章 无人船可视化系统的原理和方案论述 4
2.1 无人船可视化系统简介 4
2.1.1 无人船可视化系统通信原理 4
2.1.2 无人船可视化系统的程序功能 4
2.2 开源程序mjpg-streamer简要分析 5
2.2.1mjpg-streamer工作流程 5
2.2.1 socket简介 6
2.4 方案论述 7
第3章 硬件设计 9
3.1 无人船控制部分相关硬件介绍 9
3.1.1 Arduino UNO介绍 9
3.1.2 L398N电机驱动介绍 9
3.1.3 APC220无线数传介绍 10
3.2 无人船控制部分电路设计 11
3.3可视化图像传输部分相关硬件介绍 14
3.3.1 树莓派3B介绍 14
3.3.2 罗技USB摄像头介绍 15
3.3.3 RTL8188CU无线网卡介绍 15
3.3.4 大功率DC直流降压模块介绍 15
3.4可视化图像传输部分电路设计 16
第4章 软件设计和功能测试 17
4.1 无人船控制部分相关软件介绍及程序编写 17
4.1.1 Arduino IDE介绍 17
4.1.2 APC220配置软件介绍 17
4.1.3 Arduino烧录程序的编写思路 19
4.2 可视化图像传输部分相关软件介绍及程序编写 19
4.2.1 树莓派安装Raspbian操作系统 19
4.2.2 Putty远程登陆树莓派 20
4.2.2 VNC远程登陆树莓派 21
4.2.3 设置树莓派连接的静态IP地址 23
4.2.4利用mjpg-streamer开源软件实现远程视频查看 24
4.2.5无线网卡配置无线AP 27
4.3上位机程序设计思路 28
4.3.1 VISA的介绍与使用 28
4.3.2 用按钮输入控制指令 29
4.3.3 用ActiveX控件实现网页访问 30
第5章 总结与展望 33
5.1 全文工作总结 33
5.2 不足之处及展望 33
参考文献 34
附录A Arduino程序 35
附录B 上位机程序框图 38
致谢 39
第1章 绪论
1.1课题研究背景
随着人口数目的快速增涨、人均消费水平的不断提升,人们对生活水平的要求也在不断提高。这样的发展现状直接导致了世界范围内对各类正在渐渐消失的资源的新探索,这些资源包括石油、天然气、矿物、食物和淡水等等。人们对陆地资源的开采已有上千年的历史和经验,大部分资源都已被发现而且正在消耗殆净,而包括海洋资源在内的水资源我们只有不到百分之五的了解。因此许多国家近年来加大了对海洋资源的探索力度,利用不同的船只探索水面或海底的不同资源,希望可以发现更多的可以被人类利用的资源。
在对水资源探索有着强烈需求的今天,对船只出海进行工作的整个过程的管理将是一个巨大的挑战与机遇。其中一个很重要的环节便是在人与机器的交流上,或者说人如何去操作机器,机器如何向人传达需要的有用的信息。早期的水下探索设备都是载人的有线潜水器,类似一个接着电缆和氧气输送线的防水铁盒,所有的操作和信息的接受都需要水下的操作人员完成。近年来的水下探索设备向着小型化、无人化和远程无线自主探索的方向发展。随着高性能无线通信技术的不断发展,无人船的水下可视化设备也需要不断地完善和更新[2]。本文主要设计了一个简易的无人船模型,用两种无线通信模块分别结合Arduino单片机和树莓派3B开发板进行对船体行进的控制和视频信号的传输,电脑端用Labview编写上位机程序实现串口通讯的方式发送船体控制指令并显示船下实时视频。
1.2 研究目的及意义
随着时代和社会的进步,许多国家都加快了对人类未知的海洋疆域的探索,因为只有探索清楚了才能实现下一步的开发和利用。就人类现有的对海洋资源不足百分之五的了解看来,海洋是一个巨大的蓝色宝库,据估计,海洋拥有的人类可以直接利用的能源就够全人类使用千年以上,其中还不包括海洋富有的80多种元素,不包括未来可能被人类利用的海水淡化的资源以及核燃料的资源。因此许多国家纷纷大力研制先进的水下探测器,去开发更多的能够被人们利用的资源。在军事方面无人船的应用潜力更是不言而喻,无人化和智能化的军事船只可以无畏的战斗,减少人员的伤亡量。拥有先进的无人舰艇技术可以极大的增强一个国家的海上防御能力,向世人展现不可侵犯的实力。
无人船的水下可视化系统将微机技术和单片机技术很好的结合起来,通过Arduino单片机强大的控制功能,树莓派的多媒体图像处理能力和PC机中上位机程序的良好结合实现远程控制无人船和水下可视化的功能[3]。硬件中将PC机作为系统的一部分,提供了性能良好的支持,软件中也具备微机的良好运算能力。网络上的视频信息可以显示在上位机程序上,模块化的设计和功能可以让系统在网络即便故障之时也能安全返航,在无人船的日常工作中可以方便的采集数据。无人船水下可视化系统的研发和制造对于增强我国对海洋资源的探索和开发利用起着强大的作用。
1.3 国内外研究现状
国内的无人船的可视化技术较国外发展晚一些,从七八十年代开始应用于军事,随着越来越多的计算机技术和高级算法的普及,以及人们对海洋资源不断提升的探索需求,无人船可视化的应用范围更多的被运用在了科研和民用范畴[1]。目前,国内很多企业和科研单位正在无人船可视化应用方面进行不断的尝试,我国无人船的研究开展虽一直在追赶世界顶尖水平的步调,但仍落后于发达国家的是一些核心的算法,比如船体运动的操控算法、抗浪性算法、传感器的精度、各类数据的远程实时传输能力等,一些船舶技术发达的国家无人船优势明显。
法国的“海豚”无人船是探究海洋资源的重要技术工具,它是法国一家海洋信息公司研发的海上无人勘测平台,“海豚”无人船的探测方向是沿岸、近海、岛礁的水下形貌,它可以同时通过声纳和摄像机形成水下形貌的三维图像,拍摄危险或是可能的资源部分图像,起到了让工作人员了解海岸环境、保障水面航行安全等有利作用。
以色列海洋军事的实力在世界前列,他们的无人舰艇技术十分雄厚,具代表性的“保护者”号无人艇配备多种可视化设备,包括水面望远摄像头、水面红外摄像头、水下声纳设备和多通道视频传输等。加上全球定位和卫星发送能力,这种舰艇几乎可以在世界的任何地方发回实时的监视图像,大大提高了无人舰艇的远航打击能力。
我国近年来的无人潜水器发展十分迅猛,最新的“海斗”号又打破了几个勘探方面的世界纪录,它又被叫做全海深无人潜水器,搭载了全海深CTD传感器和水下摄像机,最深可以下潜至水下11000米,拥有GPS定位能力。在一轮勘探过程中下潜深度两次超过一万米,“海斗”号将我国无人下潜器最大下潜万米以上的能力展现在世人面前。我国类似的无人水设备还有“十三五”规划重大工程之一的“蛟龙探海”工程,包括了蛟龙、海龙和潜龙系列无人潜水器,均可以在深海传回水下高清图像。他们一起首次获取了海底高清的硫化物矿藏图片以及万米以下深渊及全海深剖面的温盐深数据。
1.4 研究内容和方法
1.4.1 研究方法
本课题的研究首先是通过查阅相关资料以理解无人船的通信原理,进而确定要设计的通信方案,对当前国内外现状进行了解和总结,最终决定选择树莓派和Arduino开发板作为无人船可视化设备的处理端,采用基于434MHZ的射频信号和2.4G的WIFI通信机制以及客户端/服务器模式来实现树莓派和电脑终端的通信功能设计。
1.4.2 研究内容
无人船水下可视化系统设计的绪论主要介绍了对无人船进行研究的意义、水下可视化系统需要不断发展的意义。绪论部分还描述了无人船水下可视化系统的国内外研究现状,以及本论文的研究方法和研究内容的大体思路。
第二章的原理和方案论述主要讲述了此无人船系统的两种通讯原理和系统的程序功能,并关键针对其中一部分基于目前使用率最高的WIFI信号的通讯程序和机制进行分析和介绍,紧接着论述了此次设计中构想的两种硬件方案,并进行比较,选出一个更加适合于进行此次毕业设计的方案。
之后的章节分别介绍本系统的软硬件设计过程,并展示软硬件设计结果。详细介绍使用的单片机和微机开发板、将用到的不同功能模块、模块的各自功能以及模块与模块之间、模块与处理器之间是怎样协调工作的。设计软硬件的特殊软件也会大体简介,软硬件的设计过程也将完整论述。最后会在合适的水面进行船体的动态测试,包括船体运动的测试和视频传输的状态测试,并进行调试和思考总结。
第2章 无人船可视化系统的原理和方案论述
2.1 无人船可视化系统简介
2.1.1 无人船可视化系统通信原理
本系统的通信分为两部分:视频信号的传输和船体运动的通信控制。
视频信号的传输使用了2.4G的WIFI信号。相较于早期的人工操纵船体探潜,无人船系统的压倒性优势不言而喻,无线远程控制的无人船设备则更加显示出与时俱进的前景。现今的无人船系统最重要的,也是最能带给人们方便的功能就是远程无线通讯功能,不再如原来的载人设备需要技术员现场操作设备的行进,还需要人工采集相机图片或是水中样本,无线通讯可令连接在局域网中的水中设备和岸上的电脑进行实时的数据交流。利用许多无线网卡都具有的发射无线AP的功能,可以建立一个小型的无线局域网,连接在同一无线局域网的设备就可以通过这个网络进行通讯。这非常类似于手机设置俗称的“热点”,其他连接这个热点的手机也可以正常连接上网络。这种无线视频信号的传输方式具有良好的效率和实时性。SOCKET通信机制是无线局域网中客户端与服务器相互收发数据的一直常用通讯机制。
船体运动的控制采用了无线数据传输模块APC220。APC220模块是射频信号类的无线数传模块,体积非常小,可直接搭配TTL转串口模块接入电脑的USB口以串口通讯的方式正常使用。用户使用时可自行配置一对APC220的发射频率和通讯密钥,使得传输的安全性和抗干扰能力大大提高。此模块的功率低至20mW,但却可以轻易的实现空旷区域600米以上的通信距离,非常适合对小型的无人船系统进行动作的控制指令发送。
2.1.2 无人船可视化系统的程序功能
此无人船水下可视化系统的软件程序包括三个部分,分别为Arduino单片机烧录的程序、树莓派3B开发板基于Linux系统下的一系列脚本程序以及PC机上利用Labview编写的上位机程序。
- Arduino单片机烧录的程序的功能为读取APC220接收端收到的串口数据,将数据与“w”、“a”、“s”、“d”四个字母进行比较,如果是这四个字母中的一个,则调用相应函数驱动船体左右两侧的电机正反转,达到控制无人船动作的目的。
- 树莓派开发板上安装了使用率最高的Raspbian操作系统,有着和Windows类似的操作界面,方便大多数使用者进行操作。另外安装VNC Server远程登录服务软件,可以在PC或手机上通过VNC Viewer远程登录树莓派,为操作提供方便。配置USB无线网卡使之具有发射无线AP的功能,配置USB摄像头驱动程序使之可以正常摄像。安装和编写mjpg-streamer脚本程序,将视频信号发送至无线网络。
- PC上利用Labview编写的上位机程序有串口通讯的功能,通过单击w,a,s,d四个按键将控制信号发送给APC220发射模块,进而控制船体的动作。同时上位机程序具有一个浏览器页面,可以输入树莓派显示视频的ip地址实现实时的水下视频显示。
2.2 开源程序mjpg-streamer简要分析
2.2.1mjpg-streamer工作流程
- V4L2驱动USB摄像头采集到的视频信号,传输至input_uvc.c采集程序,也即客户端的数据。
- 客户端的数据被压缩成JPG图像,是经由压缩程序simplified_jpeg_encoder。
- JPG图像数据经由发送程序output_httd.so通过socket通讯机制传输至局域网中。
- 服务器端需要了解摄像头的一些配置信息如帧率和分辨率,所以此时用init_v4l2函数完成一系列输出格式的配置,同时分配一个临时缓冲区。
- 创建线程,同时响应多个客户端的请求。
其工作流程图如图2.1所示
图2.1 mjpg-streamer工作流程
2.2.1 socket简介
Socket中文叫做套接字,几乎所有的利用无线局域网的通信过程利用的都是套接字。它起源于Unix,在Unix和Linux中有一种概念叫做“一切都是文件”,都可以打开、读写和关闭。套接字也是继承了这种理念,可以把套接字看成一种特殊的文件。Socket的高明之处在于它的这种类似“文件收发”的机制并不是一对一的,而可以将一个服务器端打开的一个Socket看成是一个插座,用户端看成是一个个的插头,这一个插座可以同时接入很多个插头,也即客户端与服务器端的对应关系为多对一。Socket的连接过程分为三个步骤:1.服务器监听。2.客户端请求。3.连接确认。服务器开始工作,还未连接客户端时处于监听状态,等待客户端的请求连接消息[4]。客户端准确的向某个特定IP地址和准确端口号的服务器端发出连接请求后,服务器端会接收到这个请求并发回一个信号给客户端,响应这个请求,同时创建一个新的线程,此时客户端进行确定 ,代表双方都同意连接,已经可以开始通讯。套接字的连接过程如图2.2所示:
图2.2 套接字连接过程
2.4 方案论述
本次设计中我考虑了如下两种下位机硬件方案:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: