基于qt的飞行器上位机软件设计_第1页
基于qt的飞行器上位机软件设计_第2页
基于qt的飞行器上位机软件设计_第3页
基于qt的飞行器上位机软件设计_第4页
基于qt的飞行器上位机软件设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Qt的飞行器通用上位机软件设计

作者:吕伟龙向豪杨雨昕

来源:《电子技术与软件工程》第07期

摘要针对飞行器上位机控制器的应用需求,设计了一种合用于桌面、移动端、嵌入式平台等的跨平台飞行器上位机软件。本系统基于Qt5.5框架,运用C++语言编写出主程序,在Qt框架中调用百度地图,实现飞行器的途径规划与显示;采用JSON格式自定义的通信合同,实现上、下位机的数据交换和上位机的命令公布。另外,本文还具体讨论了通信时的界面控制逻辑与飞行器安全飞行的控制方案。

【核心词】多旋翼飞行器上位机图形视图框架数据传输合同

Qt是一种由Trolltech公司开发的,为桌面,移动端,嵌入式设计的跨平台的应用程序框架,支持涉及Linux,OSX,Windows,VxWorks,QNX,Android,iOS,BlackBerry,SailfishOS等平台。Qt本身不是一种编程语言,它是一种用C++写的框架。预解决器(MOC元对象编译器)被用于运用某些特性(例如信号和槽)来拓展C++语言。在编译环节中,MOC解析用Qt扩展的C++源文献并从中生成符合原则的C++的源文献。因此框架本身和应用程序/库使用它能够通过任何符合原则的C++编译器例如Clang,GCC,ICC,MinGW和MSVC。

多旋翼飞行器由于其能够垂直起降,并且含有机动灵活的特点,不仅广泛应用于军事、农业、商业等领域,并且近些年逐步进入大众的视野里,成为普通百姓也能购置、操作的机械“玩具”。但由于多旋翼飞行器的旋翼转速极快,如果误操作或者飞行器失控很容易发生危险;市面上也极少有能够支持多品牌、多个多旋翼飞行器的上位机程序。为理解决这些问题,本文基于Qt平台设计了一种控制简朴、操作安全、顾客体验较好的通用飞行器上位机系统。

1通信原理介绍

1.1数据传输系统

本文采用的是一种主从式的数据传输系统。主设备(上位机)先对数据进行解决,然后再向从设备(下位机)发送所要执行的命令;从设备接受到数据后分析是哪种命令,接着发送已接受到的信号和有关的信息给主设备;主设备接受到从设备已接受的信号后,开始重复第一步,依次循环。数据传输系统的流程图如图1所示。

1.2数据传输合同

本文采用的通信合同运用的是轻量级数据交换格式JSON,具体交换内容如表1所示。

2上位机软件设计

上位机软件的重要功效构造图如图2所示。

采用Qt框架,C++语言实现的上位机软件,重要涉及下列窗口:

2.1设立窗口

重要实现通信前对多个有关数据的设立和途径规划,同时也将有关信息在窗口中显示给顾客,重要涉及下列界面:

2.1.1基本设立界面

重要实现对通信所需的各个数据的初始化和电量显示,重要涉及下列功效(界面如图3所示):

(1)串口设立:通过调用Qt的

串口库来对串口的几个参数(串标语,波特率,数据位,停止位,校验位,流控)进行设立,顾客能够在设立好参数后,点击打开串口按钮开始通信。

(2)安全有关提示设立:可在次部分对失控行为,低电量、超低电量提示进行设立,也能够在次部分看到电池电量,确保飞行器的安全。

2.1.2途径设立界面

重要实现在开始任务前对飞行途径的设立,重要涉及下列功效(界面如图4所示):

(1)地图显示:通过调用Qt的库加载在线地图,地图里涉及操作手现在位置、飞行器现在位置和飞行器的行动轨迹。

(2)飞行途径设立:顾客能够通过点击地图来规划飞行器的飞行轨迹,也能够按下旁边的删除一种/删除全部按钮来对之前点击的轨迹进行修改,重要通过修改.html的代码实现。

2.2控制窗口

重要实现通信时对多个有关部件的控制,同时也将有关信息在窗口中显示给顾客,重要涉及下列功效(界面如图5所示):

(1)云台控制:顾客能够通过点击其中的按钮,来变化云台的状态(光圈,变倍,焦距,方向)并保存至本地,每次交换数据结束后自动清空这类数据。

(2)任务指令公布:提供8个指令方便顾客操控飞行器,当顾客点击按钮后,根据顾客所要公布的指令,读取有关本地数据,自动构成一种符合JSON规定的字符串并通过串口发送出去。

(3)高度速度控制:顾客能够通过滑动控件来变化飞行器的高度和速度。

(4)有关信息显示:在每次交换信息之后,将新传来的核心数据显示出来,方便顾客在控制飞行器时实时的获取飞行器的核心信息。

3核心技术的实现

3.1地图的导入和交互

要想在Qt框架中导入百度地图,首先要到百度地图API官网上注册一种密钥,可在通过其网站自动生成一种在线地图的.html文献,也可自己编写;然后在Qt设计师界面创立一种QWebView的控件,再将QWebView控件中URL选项填入之前生成的.html文献地址,注意要调用此控件的前提是在.pro文献里添加一行QT+=webkitwidgets;接着能够修改之前的.html文献,通过百度地图的API,设计适合本系统的显示内容(如飞行途径等);最后通过调用库中的evaluateJavaScript()函数和addToJavaScriptWindowObject()函数完毕Qt与地图的交互。

3.2通讯数据的转换和分离

由于本系统调用的是Qt内部的串口库,因此不需要过多的研究底层的通信和解析方式,通过调用次库中的write()和readAll()函数能够直观的用字符串进行通信。我们要做的就是在这个库的基础上,设计一种较为简朴直观的通信合同,方便上、下位机转换、分离。

3.2.1数据的转换

本系统的数据交换量不大,故采用轻量级的数据交换格式JSON。通过Qt内部的JSON库能够很方便的转换数据到本地。

3.2.2数据的分离

由于串口的数据是每隔一段时间全部读取一次,再加上外界有可能有干扰,由此读取的数据很有可能丢失或出错,因此需要对有用的数据进行分离。本系统运用字符‘&’和‘|’表达一种命令的开头和结尾,从串口读取数据后,先将数据存入一种数据缓冲区,再将缓冲区里的数据从头开始扫,当描扫到第一种‘&’后将‘&’前的全部数据删除,再从次位开始扫描,直到出现‘|’结束,把中间的数据提出,并转换为有效的数据;若有2个‘&’持续出现,则认为是第一种‘&’之后的数据错误,将第二个‘&’前的全部字符删除。

3.3通信时的界面控制逻辑

本系统的操作命令一共有如表1所示的9种,其中前8种为手动发出的命令,它们在软件中各有一种按钮能够操控,但是它们的执行有先后次序,例如开始任务命令需要在起飞后才干执行,因此开始命令只能在起飞命令发送并完毕后才能够发送。为了避免顾客在发送命令时产生误操作,也为了顾客能更加好的明白本系统的命令执行流程,故在通信过程中,本系统加入了某些限制条件,初始状态下可按的仅有起飞按钮,具体如表2。

3.4飞行器安全飞行的控制方案

由于多旋翼飞行器的旋翼转速极快,如果误操作或者飞行器失控很容易发生危险,因此安全性问题是必须要解决的问题。因此,本系统设计了下列几点在安全性方面的优化:

(1)低电量提示:能够设立在电池处在低于20%电量的时候,上位机软件跳出提示窗口,提示顾客已低于20%电量。默认启动。

(2)超低电量提示:能够设立在电池处在低于10%电量的时候,上位机软件跳出提示窗口,提示顾客已低于10%电量,并终止现在命令,执行失控行为。此时本系统不允许顾客继续进行操作,顾客只能通过遥控器来操作飞行器。默认启动。

(3)失控行为设立:本系统中失控行为可设立的一共分为3种,悬停、返航、降落。默认为悬停。

(4)为了避免顾客过快的变化高度/速度使飞行器失控,本系统设立了一种阀值--当顾客一次性变化高度/速度超出10米/10米每秒时,本系统会跳出弹窗提示顾客不能过快的变化高度/速度,并将变化量返回至原值±10。

4结束语

文中介绍了一种合用于桌面、移动端、嵌入式平台等的跨平台飞行器上位机软件。对如何在Qt中导入地图以及如何运用Qt框架进行快速开发做了简朴的介绍,具体的分析了上、下位机的通信原理、飞行器安全飞行的控制方案和通信时的界面控制逻辑。该软件运用Qt框架大大缩短了软件开发时间并减小了软件开发难度。软件模块功效分明,易于开发和维护且含有控制简朴,操作安全的特点,合用于大部分厂商开发的飞行器。

参考文献

[1]黄超.基于Qt的嵌入式GUI的研究与实现[D].吉林大学,.

[2]张春艳.基于Qt的嵌入式图形顾客界面研究与实现[D].大连海事大学,.

[3]邢四为.基于JSON的信息交互系统的研究与实现[D].安徽大学,.

[4]柯艳,李杰,孔祥雷,刘吉吉.基于USB2.0的多路数据采集系统上位机软件设计[J].测试技术学报,(04):351-356.

[5]孙迪,李沛鸿.百度地图API在WebGIS中的应用[J].河南科技,(22):165-166.

[6]百度开发者中心.百度API介绍.http://lbsyun.百度.com/..

[7]Qt开发者中心.Qt维基.h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论