国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于樹莓派的四軸飛行器設(shè)計(jì)

2020-07-04 02:27:37田東波徐鵬程張德俊周琦楊云露
關(guān)鍵詞:樹莓派

田東波 徐鵬程 張德俊 周琦 楊云露

摘要:傳統(tǒng)四軸飛行器只能通過遠(yuǎn)程遙控的方式工作,在實(shí)際運(yùn)用中存在很大的局限性。針對(duì)上述問題本文提出并設(shè)計(jì)了一款基于樹莓派的四軸飛行器,其與傳統(tǒng)的飛行器相比多了一個(gè)智能控制模塊,該模塊可以代替人工控制。飛行器采用STM32F103作為飛控模塊的核心芯片,采用樹莓派3B模塊作為智能控制模塊,通過MPU9250模塊獲取飛行器的姿態(tài)信息,通過GPS模塊獲取飛行器的位置信息,通過WiFi或4G實(shí)現(xiàn)對(duì)飛行器的遠(yuǎn)程遙控。手機(jī)或PC端通過基于TCP/IP的協(xié)議向飛行器的智能控制模塊發(fā)送控制指令從而實(shí)現(xiàn)對(duì)飛行器的控制,而智能控制模塊通過SPI總線以及相關(guān)協(xié)議對(duì)飛控模塊進(jìn)行控制。實(shí)驗(yàn)測(cè)試表明,本文所提出的四軸飛行器設(shè)計(jì)方案具有可行性,值得進(jìn)一步研究。

關(guān)鍵詞: 四軸飛行器; 樹莓派; STM32; TCP/IP; SPI

【Abstract】 The traditional four-axis aircraft can only work by remote control, which has great limitations in practical use. In response to the above problems, this paper proposes and designs a four-axis aircraft based on the Raspberry Pi. Compared with the traditional aircraft, it has an intelligent control module, which can replace the manual control. The aircraft adopts STM32F103 as the core chip of the flight control module, adopts the Raspberry Pi 3B module as the intelligent control module, acquires the attitude information of the aircraft through the MPU9250 module, acquires the position information of the aircraft through the GPS module, and realizes the remote control of the aircraft through WiFi or 4G. ?The mobile phone or PC transmits control commands to the intelligent control module of the aircraft through a TCP/IP-based protocol to control the aircraft, and the intelligent control module controls the flight control module through the SPI bus and related protocols. The experimental test shows that the design scheme of the four-axis aircraft proposed in this paper is feasible and worthy of further study.

【Key words】 ?quadcopter; Raspberry Pi; STM32; TCP/IP; SPI

0 引 言

四軸飛行器最初被發(fā)明是用于軍事領(lǐng)域,隨著近些年半導(dǎo)體以及嵌入式行業(yè)的發(fā)展,四軸飛行器的制作成本以及開發(fā)難度大大降低,其應(yīng)用逐漸走向民用領(lǐng)域。在日常生活中,四軸飛行器最常見的用途是航拍,而此類用途對(duì)飛行器的功能要求并不是特別高,僅需要支持無(wú)線遙控。隨著近些年網(wǎng)購(gòu)的興起,四軸飛行器甚至被用來(lái)運(yùn)送快遞,在此類應(yīng)用中四軸飛行器僅僅支持無(wú)線遙控遠(yuǎn)遠(yuǎn)是不夠的,還需要其具有智能控制功能。傳統(tǒng)的四軸飛行器僅僅采用一塊MCU芯片作為控制單元的核心,無(wú)法滿足相關(guān)智能控制算法運(yùn)行的硬件要求,因此需要進(jìn)一步研究和開發(fā)。

1 相關(guān)理論

1.1 四軸飛行器工作原理

四軸飛行的機(jī)身布局通常有2種模式,分別是十字模式和X模式。在實(shí)際應(yīng)用中,四軸飛行器通常會(huì)攜帶攝像頭等視頻圖像采集設(shè)備,為保證視線的良好,四軸飛行器大多采用X模式的機(jī)身布局。X模式的機(jī)身布局如圖1所示。

2 總體設(shè)計(jì)方案

2.1 系統(tǒng)設(shè)計(jì)方案

四軸飛行器的系統(tǒng)設(shè)計(jì)方案如圖2所示。本設(shè)計(jì)采用樹莓派3B模塊作為智能控制模塊,并且通過UART接口在樹莓派上擴(kuò)展GPS模塊以及通過USB接口擴(kuò)展攝像頭模塊;采用STM32F103作為飛控模塊的控制芯片,該芯片分別對(duì)4個(gè)電調(diào)模塊提供PWM輸出,并且通過I2C接口擴(kuò)展MPU9250模塊。手機(jī)或PC端通過TCP/IP來(lái)向四軸飛行器的智能控制模塊發(fā)送控制指令,智能控制模塊通過SPI向飛控模塊下發(fā)飛行狀態(tài)指令。

由圖2可知,對(duì)于系統(tǒng)中各主要模塊的設(shè)計(jì)功能可做概述如下:樹莓派3B模塊是英國(guó)樹莓派基金會(huì)開發(fā)的一款卡片式電腦,該模塊內(nèi)部集成有高性能的SOC芯片以及WiFi、藍(lán)牙等通信模塊,除此之外該模塊還具有豐富的外設(shè)接口以及供二次開發(fā)的GPIO接口[8-9];GPS模塊采用的是移遠(yuǎn)科技的L80R模塊;STM32F103芯片是意法半導(dǎo)體的一款32位ARM架構(gòu)的MCU;MPU9250是一款高性能的位姿傳感器模塊,內(nèi)部集成有 3軸陀螺儀、3軸加速度計(jì)以及3軸磁力計(jì)。

2.2 電源設(shè)計(jì)方案

本設(shè)計(jì)采用16.8 V的鋰電池作為輸入電源,同時(shí)為滿足不同模塊的供電要求,采用DCDC先將16 V降壓到5 V,然后再通過DCDC將5V降壓到3.3 V。16 V降5 V采用的是MP2225芯片,該芯片可以最大提供5 A的電流輸出;5 V降3.3 V采用的是AMS117-3.3,該芯片最大提供1A的電流輸出。系統(tǒng)的供電方案如圖3所示。

3 硬件設(shè)計(jì)

四軸飛行器的硬件設(shè)計(jì)部分包括:電源電路設(shè)計(jì)、STM32F103最小系統(tǒng)設(shè)計(jì)、電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)、MPU9250電路設(shè)計(jì)等。這里,對(duì)其中主要電路的設(shè)計(jì)擬展開研究論述如下。

3.1 電源電路設(shè)計(jì)

16.8 V降壓到5 V采用的是MP2225電源芯片,5 V降壓到3.3 V采用的是AMS1117-3.3電源芯片,電源電路設(shè)計(jì)如圖4所示,圖4中PWR_5 V_EN與樹莓派相連用于控制系統(tǒng)電源的通斷。

3.2 STM32F103最小系統(tǒng)設(shè)計(jì)

STM32F103的最小系統(tǒng)設(shè)計(jì)如圖5所示。該芯片共有48個(gè)引腳,采用3.3 V直流供電,由一個(gè)8 MHz的無(wú)源晶振提供主時(shí)鐘以及一個(gè)32 768 Hz的無(wú)源晶振提供實(shí)時(shí)時(shí)鐘,14、15是SPI接口引腳,21、22是I2C接口引腳,31、32是UART接口引腳,42、43、45、46引腳是PWM輸出引腳。

3.3 MPU9250電路設(shè)計(jì)

MPU9250的電路設(shè)計(jì)如圖6所示,該模塊采用3.3 V直流供電,MPU9250_SDA是I2C接口的數(shù)據(jù)線,MPU9250_SDL是I2C接口的時(shí)鐘線,與STM32F103芯片的I2C接口相連。

4 軟件設(shè)計(jì)及測(cè)試

本文設(shè)計(jì)的飛行器與傳統(tǒng)的四軸飛行器相比,增加了智能控制模塊。智能控制模塊的主要功能是接收和解析用戶通過手機(jī)或PC端發(fā)送的指令并執(zhí)行相應(yīng)的控制程序,通過SPI向飛控模塊發(fā)送控制指令實(shí)現(xiàn)對(duì)四軸飛行器的運(yùn)動(dòng)控制。為實(shí)現(xiàn)上述功能,需指定相關(guān)的協(xié)議,本節(jié)主要對(duì)相關(guān)協(xié)議的制定、軟件的設(shè)計(jì)以及測(cè)試做詳細(xì)探討與描述。

4.1 相關(guān)通信協(xié)議的制定

4.1.1 基于TCP/IP的控制協(xié)議

手機(jī)或PC端對(duì)四軸飛行器的控制協(xié)議是基于TCP/IP傳輸層協(xié)議的透明傳輸協(xié)議,一條報(bào)文的定義見表1。由表1分析可知,一條報(bào)文中各組成部分的含義可做闡釋分述如下。

(1)報(bào)文頭:一條報(bào)文的起始標(biāo)志,約定為“0xbbee”。

(2)指令:四軸飛行器的控制指令,取值在0x00-0xff之間,最多可表示255條控制指令,具體見表2。

(3)設(shè)備號(hào):用于區(qū)別不同的設(shè)備。

(4)命令參數(shù):控制指令相關(guān)的參數(shù),具體定義見表2。

(5)報(bào)文尾:一條報(bào)文的終止標(biāo)志,約定為“0xeedd”。

四軸飛行器的回復(fù)報(bào)文定義見表3,由于篇幅有限,回復(fù)報(bào)文的詳細(xì)定義不再贅述。

4.1.2 基于SPI的控制協(xié)議

智能控制模塊通過SPI向飛控模塊發(fā)送指令,控制飛行器的飛行狀態(tài)(控制指令)、獲取飛行器的狀態(tài)參數(shù)(讀指令)、設(shè)置相關(guān)參數(shù)(寫指令)??刂浦噶詈妥x指令的長(zhǎng)度都是2個(gè)字節(jié)、共16位,指令的定義見表4。bit15-14是指令位,用來(lái)區(qū)分不同的指令??刂浦噶钪衎it13以及讀寫指令的bit8都是奇偶校驗(yàn)位,用來(lái)進(jìn)行指令幀數(shù)據(jù)的校驗(yàn)??刂浦噶钪衎it12-8是指令參數(shù)位,其中bit12代表“啟/?!?,bit11代表“順/逆”,bit10代表“左/右”,bit9代表 “前/后”,bit8代表“上/下”。讀寫指令中bit13-9是讀寫地址位,用來(lái)區(qū)分不同的參數(shù)。寫指令bit7-0為寫數(shù)據(jù)位,用來(lái)存放寫入的數(shù)據(jù)。

4.2 通信軟件的設(shè)計(jì)

根據(jù)所制定的協(xié)議對(duì)相關(guān)通信軟件進(jìn)行設(shè)計(jì),軟件設(shè)計(jì)主要包括樹莓派中的命令解析執(zhí)行軟件以及STM32F103中指令解析執(zhí)行程序。由于篇幅有限,本小節(jié)只對(duì)MCU中相關(guān)程序設(shè)計(jì)做詳細(xì)介紹。研究中采用SPI接收中斷來(lái)處理相關(guān)指令,中斷的處理程序如下:

u16RecData = SPI_I2S_ReceiveData(SPI1);//讀取數(shù)據(jù)幀

cmdFrame.cmd = (u16RecData & 0xC000) >> 14;//解析命令

switch(u8Cmd)

{

case CMD_CONTROL://控制指令

cmdFrame.cmd_C_data = (u16RecData & 0x3E00) >> 9;//解析控制參數(shù)

vControl(cmdFrame.cmd_C_data);//執(zhí)行控制程序

break;

case CMD_READ://讀指令

cmdFrame.cmd_RW_address = (u16RecData & 0x3E00) >> 9;//解析讀地址

SPI_I2S_SendData(SPI1, u16GetData(cmdFrame.cmd_RW_address));//返回讀的結(jié)果

break;

case CMD_WRITE://寫指令

cmdFrame.cmd_RW_address = (u16RecData & 0x3E00) >> 9;//解析寫地址

cmdFrame.cmd_W_data = u16RecData & 0x01FF;//解析寫數(shù)據(jù)

vWriteData(cmdFrame.cmd_RW_address, cmdFrame.cmd_W_data);//執(zhí)行寫操作

break;

default:

break;

}

4.3 軟件測(cè)試

為進(jìn)一步驗(yàn)證本設(shè)計(jì)方案的可行性以及通信協(xié)議的可靠性,本文進(jìn)行了軟件測(cè)試,軟件測(cè)試的過程如圖7所示。

控制端軟件通過TCP/IP協(xié)議將控制指令發(fā)送給設(shè)備管理服務(wù)器端,服務(wù)器端再將命令轉(zhuǎn)發(fā)給設(shè)備,設(shè)備在接收到控制指令后解析并執(zhí)行相關(guān)操作,本測(cè)試中為更好地體現(xiàn)命令解析和執(zhí)行的結(jié)果,將設(shè)備端的執(zhí)行結(jié)果通過串口發(fā)送到PC端。測(cè)試結(jié)果表明,飛行器設(shè)備能夠很好地執(zhí)行控制端軟件發(fā)送過來(lái)的指令,達(dá)到了預(yù)期的效果。

5 結(jié)束語(yǔ)

本文主要提出了一種基于樹莓派的四軸飛行器設(shè)計(jì),包括硬件電路的設(shè)計(jì)以及通信軟件的設(shè)計(jì)。該飛行器在傳統(tǒng)四軸飛行器上增加了一個(gè)智能控制模塊,智能控制模塊通過SPI及相關(guān)協(xié)議對(duì)飛控模塊進(jìn)行控制。另外,該飛行器可以通過手機(jī)端或PC端進(jìn)行遠(yuǎn)程控制,其控制指令是基于TCP/IP來(lái)傳輸。文中對(duì)四軸飛行器的主要硬件部分進(jìn)行了設(shè)計(jì),同時(shí)對(duì)2個(gè)主要的通信協(xié)議的制定做了詳細(xì)的研究論述。文章最后對(duì)主要的控制軟件進(jìn)行了設(shè)計(jì)和調(diào)試驗(yàn)證,仿真結(jié)果表明本設(shè)計(jì)方案有著良好的可行性,為后續(xù)四軸飛行器的研究和開發(fā)提供了參考。

參考文獻(xiàn)

[1] 吳勇,羅國(guó)富,劉旭輝,等. 四軸飛行器DIY:基于STM32微控制器[M]. 北京:北京航空航天大學(xué)出版社,2016.

[2]唐懋. 基于Arduino兼容的Stm32單片機(jī)的四旋翼飛行器設(shè)計(jì)[D]. 廈門:廈門大學(xué),2014.

[3]劉杰. 四軸飛行器研究與設(shè)計(jì)[D]. 南京:南京郵電大學(xué),2013.

[4]常國(guó)權(quán),戴國(guó)強(qiáng). 基于STM32的四軸飛行器飛控系統(tǒng)設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(2):29.

[5]彭琰舉,宋文學(xué),王晉,等. 基于MPU9250的示教航行姿態(tài)研究[J]. 電子設(shè)計(jì)工程, 2018,26(16):29.

[6]劉峰,呂強(qiáng),王國(guó)勝,等. 四軸飛行器姿態(tài)控制系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制, 2011,19(3):583.

[7]葉樹球,詹林. 基于PID的四旋翼飛行器姿態(tài)控制系統(tǒng)[J]. 計(jì)算機(jī)與現(xiàn)代化, 2015(5):117.

[8]袁博,陳昕,高銘. 基于四旋翼飛行器的航拍增穩(wěn)云臺(tái)系統(tǒng)的控制算法[J]. ?數(shù)字技術(shù)與應(yīng)用,2016(1):116.

[9]陳振,胥光申. 基于RPi的面曝光快速成形機(jī)控制系統(tǒng)[J]. 輕工機(jī)械,2015,33(6):60.

猜你喜歡
樹莓派
基于微信端的智能家居監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
智能安全防盜探測(cè)小車
一種基于樹莓派的門禁系統(tǒng)快速構(gòu)建方法
煙草物流中心工業(yè)無(wú)線網(wǎng)絡(luò)安全監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
基于樹莓派的高清視頻播放器的設(shè)計(jì)與實(shí)現(xiàn)
科技視界(2015年29期)2015-10-19 10:55:56
基于嵌入式技術(shù)的農(nóng)村醫(yī)療系統(tǒng)設(shè)計(jì)
南汇区| 宁阳县| 余江县| 新昌县| 微山县| 襄垣县| 陆川县| 调兵山市| 吉木萨尔县| 凭祥市| 伊春市| 隆安县| 堆龙德庆县| 墨竹工卡县| 龙陵县| 岢岚县| 卓资县| 建湖县| 东明县| 泰和县| 三明市| 岢岚县| 吉隆县| 临澧县| 永州市| 大新县| 固阳县| 江永县| 辽源市| 镇巴县| 台州市| 中西区| 兰溪市| 四会市| 马鞍山市| 子长县| 江口县| 堆龙德庆县| 房产| 介休市| 怀仁县|