版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Qt的飛行器通用上位機(jī)軟件設(shè)計(jì)
作者:呂偉龍向豪楊雨昕
來源:《電子技術(shù)與軟件工程》第07期
摘要針對(duì)飛行器上位機(jī)控制器的應(yīng)用需求,設(shè)計(jì)了一種合用于桌面、移動(dòng)端、嵌入式平臺(tái)等的跨平臺(tái)飛行器上位機(jī)軟件。本系統(tǒng)基于Qt5.5框架,運(yùn)用C++語言編寫出主程序,在Qt框架中調(diào)用百度地圖,實(shí)現(xiàn)飛行器的途徑規(guī)劃與顯示;采用JSON格式自定義的通信合同,實(shí)現(xiàn)上、下位機(jī)的數(shù)據(jù)交換和上位機(jī)的命令公布。另外,本文還具體討論了通信時(shí)的界面控制邏輯與飛行器安全飛行的控制方案。
【核心詞】多旋翼飛行器上位機(jī)圖形視圖框架數(shù)據(jù)傳輸合同
Qt是一種由Trolltech公司開發(fā)的,為桌面,移動(dòng)端,嵌入式設(shè)計(jì)的跨平臺(tái)的應(yīng)用程序框架,支持涉及Linux,OSX,Windows,VxWorks,QNX,Android,iOS,BlackBerry,SailfishOS等平臺(tái)。Qt本身不是一種編程語言,它是一種用C++寫的框架。預(yù)解決器(MOC元對(duì)象編譯器)被用于運(yùn)用某些特性(例如信號(hào)和槽)來拓展C++語言。在編譯環(huán)節(jié)中,MOC解析用Qt擴(kuò)展的C++源文獻(xiàn)并從中生成符合原則的C++的源文獻(xiàn)。因此框架本身和應(yīng)用程序/庫使用它能夠通過任何符合原則的C++編譯器例如Clang,GCC,ICC,MinGW和MSVC。
多旋翼飛行器由于其能夠垂直起降,并且含有機(jī)動(dòng)靈活的特點(diǎn),不僅廣泛應(yīng)用于軍事、農(nóng)業(yè)、商業(yè)等領(lǐng)域,并且近些年逐步進(jìn)入大眾的視野里,成為普通百姓也能購置、操作的機(jī)械“玩具”。但由于多旋翼飛行器的旋翼轉(zhuǎn)速極快,如果誤操作或者飛行器失控很容易發(fā)生危險(xiǎn);市面上也極少有能夠支持多品牌、多個(gè)多旋翼飛行器的上位機(jī)程序。為理解決這些問題,本文基于Qt平臺(tái)設(shè)計(jì)了一種控制簡(jiǎn)樸、操作安全、顧客體驗(yàn)較好的通用飛行器上位機(jī)系統(tǒng)。
1通信原理介紹
1.1數(shù)據(jù)傳輸系統(tǒng)
本文采用的是一種主從式的數(shù)據(jù)傳輸系統(tǒng)。主設(shè)備(上位機(jī))先對(duì)數(shù)據(jù)進(jìn)行解決,然后再向從設(shè)備(下位機(jī))發(fā)送所要執(zhí)行的命令;從設(shè)備接受到數(shù)據(jù)后分析是哪種命令,接著發(fā)送已接受到的信號(hào)和有關(guān)的信息給主設(shè)備;主設(shè)備接受到從設(shè)備已接受的信號(hào)后,開始重復(fù)第一步,依次循環(huán)。數(shù)據(jù)傳輸系統(tǒng)的流程圖如圖1所示。
1.2數(shù)據(jù)傳輸合同
本文采用的通信合同運(yùn)用的是輕量級(jí)數(shù)據(jù)交換格式JSON,具體交換內(nèi)容如表1所示。
2上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件的重要功效構(gòu)造圖如圖2所示。
采用Qt框架,C++語言實(shí)現(xiàn)的上位機(jī)軟件,重要涉及下列窗口:
2.1設(shè)立窗口
重要實(shí)現(xiàn)通信前對(duì)多個(gè)有關(guān)數(shù)據(jù)的設(shè)立和途徑規(guī)劃,同時(shí)也將有關(guān)信息在窗口中顯示給顧客,重要涉及下列界面:
2.1.1基本設(shè)立界面
重要實(shí)現(xiàn)對(duì)通信所需的各個(gè)數(shù)據(jù)的初始化和電量顯示,重要涉及下列功效(界面如圖3所示):
(1)串口設(shè)立:通過調(diào)用Qt的
串口庫來對(duì)串口的幾個(gè)參數(shù)(串標(biāo)語,波特率,數(shù)據(jù)位,停止位,校驗(yàn)位,流控)進(jìn)行設(shè)立,顧客能夠在設(shè)立好參數(shù)后,點(diǎn)擊打開串口按鈕開始通信。
(2)安全有關(guān)提示設(shè)立:可在次部分對(duì)失控行為,低電量、超低電量提示進(jìn)行設(shè)立,也能夠在次部分看到電池電量,確保飛行器的安全。
2.1.2途徑設(shè)立界面
重要實(shí)現(xiàn)在開始任務(wù)前對(duì)飛行途徑的設(shè)立,重要涉及下列功效(界面如圖4所示):
(1)地圖顯示:通過調(diào)用Qt的庫加載在線地圖,地圖里涉及操作手現(xiàn)在位置、飛行器現(xiàn)在位置和飛行器的行動(dòng)軌跡。
(2)飛行途徑設(shè)立:顧客能夠通過點(diǎn)擊地圖來規(guī)劃飛行器的飛行軌跡,也能夠按下旁邊的刪除一種/刪除全部按鈕來對(duì)之前點(diǎn)擊的軌跡進(jìn)行修改,重要通過修改.html的代碼實(shí)現(xiàn)。
2.2控制窗口
重要實(shí)現(xiàn)通信時(shí)對(duì)多個(gè)有關(guān)部件的控制,同時(shí)也將有關(guān)信息在窗口中顯示給顧客,重要涉及下列功效(界面如圖5所示):
(1)云臺(tái)控制:顧客能夠通過點(diǎn)擊其中的按鈕,來變化云臺(tái)的狀態(tài)(光圈,變倍,焦距,方向)并保存至本地,每次交換數(shù)據(jù)結(jié)束后自動(dòng)清空這類數(shù)據(jù)。
(2)任務(wù)指令公布:提供8個(gè)指令方便顧客操控飛行器,當(dāng)顧客點(diǎn)擊按鈕后,根據(jù)顧客所要公布的指令,讀取有關(guān)本地?cái)?shù)據(jù),自動(dòng)構(gòu)成一種符合JSON規(guī)定的字符串并通過串口發(fā)送出去。
(3)高度速度控制:顧客能夠通過滑動(dòng)控件來變化飛行器的高度和速度。
(4)有關(guān)信息顯示:在每次交換信息之后,將新傳來的核心數(shù)據(jù)顯示出來,方便顧客在控制飛行器時(shí)實(shí)時(shí)的獲取飛行器的核心信息。
3核心技術(shù)的實(shí)現(xiàn)
3.1地圖的導(dǎo)入和交互
要想在Qt框架中導(dǎo)入百度地圖,首先要到百度地圖API官網(wǎng)上注冊(cè)一種密鑰,可在通過其網(wǎng)站自動(dòng)生成一種在線地圖的.html文獻(xiàn),也可自己編寫;然后在Qt設(shè)計(jì)師界面創(chuàng)立一種QWebView的控件,再將QWebView控件中URL選項(xiàng)填入之前生成的.html文獻(xiàn)地址,注意要調(diào)用此控件的前提是在.pro文獻(xiàn)里添加一行QT+=webkitwidgets;接著能夠修改之前的.html文獻(xiàn),通過百度地圖的API,設(shè)計(jì)適合本系統(tǒng)的顯示內(nèi)容(如飛行途徑等);最后通過調(diào)用庫中的evaluateJavaScript()函數(shù)和addToJavaScriptWindowObject()函數(shù)完畢Qt與地圖的交互。
3.2通訊數(shù)據(jù)的轉(zhuǎn)換和分離
由于本系統(tǒng)調(diào)用的是Qt內(nèi)部的串口庫,因此不需要過多的研究底層的通信和解析方式,通過調(diào)用次庫中的write()和readAll()函數(shù)能夠直觀的用字符串進(jìn)行通信。我們要做的就是在這個(gè)庫的基礎(chǔ)上,設(shè)計(jì)一種較為簡(jiǎn)樸直觀的通信合同,方便上、下位機(jī)轉(zhuǎn)換、分離。
3.2.1數(shù)據(jù)的轉(zhuǎn)換
本系統(tǒng)的數(shù)據(jù)交換量不大,故采用輕量級(jí)的數(shù)據(jù)交換格式JSON。通過Qt內(nèi)部的JSON庫能夠很方便的轉(zhuǎn)換數(shù)據(jù)到本地。
3.2.2數(shù)據(jù)的分離
由于串口的數(shù)據(jù)是每隔一段時(shí)間全部讀取一次,再加上外界有可能有干擾,由此讀取的數(shù)據(jù)很有可能丟失或出錯(cuò),因此需要對(duì)有用的數(shù)據(jù)進(jìn)行分離。本系統(tǒng)運(yùn)用字符‘&’和‘|’表達(dá)一種命令的開頭和結(jié)尾,從串口讀取數(shù)據(jù)后,先將數(shù)據(jù)存入一種數(shù)據(jù)緩沖區(qū),再將緩沖區(qū)里的數(shù)據(jù)從頭開始掃,當(dāng)描掃到第一種‘&’后將‘&’前的全部數(shù)據(jù)刪除,再從次位開始掃描,直到出現(xiàn)‘|’結(jié)束,把中間的數(shù)據(jù)提出,并轉(zhuǎn)換為有效的數(shù)據(jù);若有2個(gè)‘&’持續(xù)出現(xiàn),則認(rèn)為是第一種‘&’之后的數(shù)據(jù)錯(cuò)誤,將第二個(gè)‘&’前的全部字符刪除。
3.3通信時(shí)的界面控制邏輯
本系統(tǒng)的操作命令一共有如表1所示的9種,其中前8種為手動(dòng)發(fā)出的命令,它們?cè)谲浖懈饔幸环N按鈕能夠操控,但是它們的執(zhí)行有先后次序,例如開始任務(wù)命令需要在起飛后才干執(zhí)行,因此開始命令只能在起飛命令發(fā)送并完畢后才能夠發(fā)送。為了避免顧客在發(fā)送命令時(shí)產(chǎn)生誤操作,也為了顧客能更加好的明白本系統(tǒng)的命令執(zhí)行流程,故在通信過程中,本系統(tǒng)加入了某些限制條件,初始狀態(tài)下可按的僅有起飛按鈕,具體如表2。
3.4飛行器安全飛行的控制方案
由于多旋翼飛行器的旋翼轉(zhuǎn)速極快,如果誤操作或者飛行器失控很容易發(fā)生危險(xiǎn),因此安全性問題是必須要解決的問題。因此,本系統(tǒng)設(shè)計(jì)了下列幾點(diǎn)在安全性方面的優(yōu)化:
(1)低電量提示:能夠設(shè)立在電池處在低于20%電量的時(shí)候,上位機(jī)軟件跳出提示窗口,提示顧客已低于20%電量。默認(rèn)啟動(dòng)。
(2)超低電量提示:能夠設(shè)立在電池處在低于10%電量的時(shí)候,上位機(jī)軟件跳出提示窗口,提示顧客已低于10%電量,并終止現(xiàn)在命令,執(zhí)行失控行為。此時(shí)本系統(tǒng)不允許顧客繼續(xù)進(jìn)行操作,顧客只能通過遙控器來操作飛行器。默認(rèn)啟動(dòng)。
(3)失控行為設(shè)立:本系統(tǒng)中失控行為可設(shè)立的一共分為3種,懸停、返航、降落。默認(rèn)為懸停。
(4)為了避免顧客過快的變化高度/速度使飛行器失控,本系統(tǒng)設(shè)立了一種閥值--當(dāng)顧客一次性變化高度/速度超出10米/10米每秒時(shí),本系統(tǒng)會(huì)跳出彈窗提示顧客不能過快的變化高度/速度,并將變化量返回至原值±10。
4結(jié)束語
文中介紹了一種合用于桌面、移動(dòng)端、嵌入式平臺(tái)等的跨平臺(tái)飛行器上位機(jī)軟件。對(duì)如何在Qt中導(dǎo)入地圖以及如何運(yùn)用Qt框架進(jìn)行快速開發(fā)做了簡(jiǎn)樸的介紹,具體的分析了上、下位機(jī)的通信原理、飛行器安全飛行的控制方案和通信時(shí)的界面控制邏輯。該軟件運(yùn)用Qt框架大大縮短了軟件開發(fā)時(shí)間并減小了軟件開發(fā)難度。軟件模塊功效分明,易于開發(fā)和維護(hù)且含有控制簡(jiǎn)樸,操作安全的特點(diǎn),合用于大部分廠商開發(fā)的飛行器。
參考文獻(xiàn)
[1]黃超.基于Qt的嵌入式GUI的研究與實(shí)現(xiàn)[D].吉林大學(xué),.
[2]張春艷.基于Qt的嵌入式圖形顧客界面研究與實(shí)現(xiàn)[D].大連海事大學(xué),.
[3]邢四為.基于JSON的信息交互系統(tǒng)的研究與實(shí)現(xiàn)[D].安徽大學(xué),.
[4]柯艷,李杰,孔祥雷,劉吉吉.基于USB2.0的多路數(shù)據(jù)采集系統(tǒng)上位機(jī)軟件設(shè)計(jì)[J].測(cè)試技術(shù)學(xué)報(bào),(04):351-356.
[5]孫迪,李沛鴻.百度地圖API在WebGIS中的應(yīng)用[J].河南科技,(22):165-166.
[6]百度開發(fā)者中心.百度API介紹.http://lbsyun.百度.com/..
[7]Qt開發(fā)者中心.Qt維基.h
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國孕婦裝行業(yè)競(jìng)爭(zhēng)格局及發(fā)展?jié)摿ρ芯繄?bào)告
- 2024-2030年中國城市公共汽車客運(yùn)行業(yè)運(yùn)營(yíng)模式及發(fā)展規(guī)劃分析報(bào)告
- 2024-2030年中國地板椅項(xiàng)目可行性研究報(bào)告
- 2024-2030年中國圖書零售連鎖行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 2024-2030年中國回收自控系統(tǒng)項(xiàng)目申請(qǐng)報(bào)告
- 2024-2030年中國啤酒行業(yè)市場(chǎng)營(yíng)銷模式及投資前景展望報(bào)告
- 2024-2030年中國原青花素行業(yè)需求規(guī)模及投資價(jià)值調(diào)研報(bào)告
- 2024年版權(quán)購買合同購買價(jià)格及版權(quán)范圍
- 2024年桶裝水品牌形象設(shè)計(jì)與宣傳推廣服務(wù)協(xié)議3篇
- 茂名職業(yè)技術(shù)學(xué)院《電子競(jìng)技用戶分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年人教版八年級(jí)地理上冊(cè)期末考試卷(附答案)
- 2024年初中七年級(jí)英語上冊(cè)單元寫作范文(新人教版)
- 2025年蛇年年會(huì)匯報(bào)年終總結(jié)大會(huì)模板
- 2024年度國家公務(wù)員考試公共基礎(chǔ)知識(shí)復(fù)習(xí)試卷及答案(共四套)
- 中國高血壓防治指南(2024年修訂版)解讀-治療篇
- 內(nèi)審檢查表完整版本
- 2024年秋季國家開放大學(xué)《形勢(shì)與政策》大作業(yè)及答案
- 上海市復(fù)旦附中2025屆高一上數(shù)學(xué)期末檢測(cè)模擬試題含解析
- 義務(wù)教育勞動(dòng)課程標(biāo)準(zhǔn)2022年版考試題庫及答案5
- 《社會(huì)調(diào)查研究與方法》形成性考核冊(cè)及參考答案
- 腫瘤所治療所致血小板減少癥診療指南
評(píng)論
0/150
提交評(píng)論