溫 全,成天樂(lè),蘇澤亞
(湖南文理學(xué)院, 湖南 常德 415000)
基于STM32和OV2640的自主循跡四旋翼飛行器設(shè)計(jì)*
溫 全,成天樂(lè),蘇澤亞
(湖南文理學(xué)院, 湖南 常德 415000)
本四旋翼自主飛行器采用STM32F407ARM芯片作為飛控主控制核心, 硬件包括了飛行姿態(tài)采集模塊、超聲波測(cè)距模塊、攝像頭循跡模塊、無(wú)刷電機(jī)驅(qū)動(dòng)模塊以及STM32F407攝像頭數(shù)據(jù)處理模塊等。 飛行姿態(tài)處理由MPU-9150加速度計(jì)陀螺儀提供, 實(shí)現(xiàn)了飛行器的平穩(wěn)飛行。 超聲波測(cè)距模塊和攝像頭循跡模塊為飛行器提供導(dǎo)航參數(shù),使飛行器可以按照規(guī)定航線并以一定高度飛行。為了保證攝像頭數(shù)據(jù)處理的實(shí)時(shí)性,本設(shè)計(jì)中增加了一片STM32F407芯片專門處理攝像頭數(shù)據(jù)。通過(guò)姿態(tài)解算、PID控制算法、攝像頭數(shù)據(jù)采集處理, 使飛行器實(shí)現(xiàn)一鍵式起飛, 定高跟著賽道線穩(wěn)定飛行, 最終平穩(wěn)降落。 通過(guò)多次測(cè)試,證明該基于雙STM32芯片和OV2640的自主循跡四旋翼飛行器穩(wěn)定、可靠。
四旋翼飛行器; 自主循跡飛行;PID算法
四旋翼飛行器,也稱為四旋翼直升機(jī),是一種有4個(gè)螺旋槳且螺旋槳呈十字形交叉的飛行器,可以搭配微型相機(jī)錄制航拍視頻。 它具有多種飛行模式切換自由、方向控制靈活等特點(diǎn),其實(shí)用性也從原來(lái)單純的飛行應(yīng)用發(fā)展為現(xiàn)在集軍用、商用、民用等多位一體的無(wú)人駕駛工具[1]。
四旋翼飛行器中最核心的部分是飛控,飛控子系統(tǒng)是無(wú)人機(jī)完成起飛、空中飛行、執(zhí)行任務(wù)和返場(chǎng)回收等整個(gè)飛行過(guò)程的核心系統(tǒng),飛控對(duì)于無(wú)人機(jī)相當(dāng)于駕駛員對(duì)于有人機(jī)的作用,目前在民用領(lǐng)域已經(jīng)有很多很成熟的飛控,如大疆、APM、MWC、零度、PIX等[2-3],它們?cè)诜€(wěn)定性和速度方面都已經(jīng)做得很優(yōu)秀,具有很好的參考價(jià)值。特別是近幾年無(wú)人機(jī)越來(lái)越流行,很多的競(jìng)賽也選用四旋翼做考題。目前,實(shí)現(xiàn)無(wú)人機(jī)穩(wěn)定、快速的巡線飛行已經(jīng)成為一個(gè)熱門話題。
本文采用STM32F407ARM作為控制核心的四旋翼飛行器控制系統(tǒng), 調(diào)制PWM信號(hào)輸出占空比驅(qū)動(dòng)無(wú)刷直流電機(jī)。 通過(guò)對(duì)四旋翼飛行器工作原理的分析, 開展對(duì)四旋翼工作模式與控制參數(shù)的研究,參考著名開源飛控APM得到相應(yīng)的控制算法, 然后編程、 仿真, 實(shí)現(xiàn)四旋翼飛行器飛行姿態(tài)的平穩(wěn)飛行。為了讓四旋翼實(shí)現(xiàn)自主循跡飛行,本文還添加了一片STM32F407ARM專門處理攝像頭數(shù)據(jù),并通過(guò)串口將路線信息發(fā)送給飛控使其調(diào)整飛行路線達(dá)到巡線的目的。最后,通過(guò)編程并多次試飛測(cè)試,本文所設(shè)計(jì)的四旋翼飛行器達(dá)到了非常理想的飛行器自主巡線效果。
本系統(tǒng)采用STM32F407ARM芯片作為四旋翼自主飛行器的控制核心, 主要由STM32F407飛行控制模塊、飛行姿態(tài)采集模塊、超聲波測(cè)距模塊、攝像頭模塊、STM32F407攝像頭數(shù)據(jù)處理模塊、電機(jī)驅(qū)動(dòng)模塊組成,如圖1所示。
圖1 系統(tǒng)硬件組成圖
1.1 飛控主控制芯片選擇
采用STM32F407ARM處理器, 該芯片搭載ARM公司的Cortex-M3內(nèi)核,內(nèi)部集成1MBFlash和192KBRAM, 內(nèi)置高速片上振蕩器時(shí)鐘, 最高頻率可達(dá)168MHz,支持看門狗定時(shí)器,內(nèi)置上電復(fù)位、按鍵中斷、時(shí)鐘輸出、蜂鳴器輸出控制電路等,該芯片具有出色的實(shí)時(shí)性和優(yōu)越的功耗控制;同時(shí),它還有豐富的外設(shè),如IIC接口、Usart接口等,方便連接數(shù)傳、超聲波、GPS、WiFi、OSD、GPRS等模塊,大大提高系統(tǒng)的拓展性。
1.2 驅(qū)動(dòng)模塊的選擇
通過(guò)綜合考慮飛行器載重能力、起飛高度、平穩(wěn)性等因素, 采用無(wú)刷電機(jī)和電調(diào)為飛行器的驅(qū)動(dòng)模塊。 無(wú)刷直流電機(jī)由電動(dòng)機(jī)主體和驅(qū)動(dòng)器組成, 是一種典型的機(jī)電一體化產(chǎn)品。 由于無(wú)刷直流電動(dòng)機(jī)是以自控式運(yùn)行的, 不會(huì)像變頻調(diào)速下重載啟動(dòng)的同步電機(jī)那樣在轉(zhuǎn)子上另加啟動(dòng)繞組, 也不會(huì)在負(fù)載突變時(shí)產(chǎn)生振蕩和失步。 其優(yōu)點(diǎn)是無(wú)電刷、 低干擾; 噪音低、 運(yùn)轉(zhuǎn)順暢; 壽命長(zhǎng)、 低維護(hù)成本。其通常用在航模、精密儀器儀表等對(duì)電機(jī)轉(zhuǎn)速控制要求嚴(yán)格的設(shè)備上。
1.3 高度測(cè)量模塊選擇
使用HY-SRF05 超聲波測(cè)距模塊測(cè)量飛行器的離地高度。它可提供2~450cm的非接觸式距離感測(cè)功能,測(cè)距精度可高達(dá)3mm。
1.4 飛行姿態(tài)采集模塊選擇
使用MPU-9150模塊,該模塊集成了三軸陀螺儀、三軸加速度、三軸磁場(chǎng)。使用3~5V的電源,采用標(biāo)準(zhǔn)IIC通信協(xié)議進(jìn)行通信。芯片內(nèi)置了16bitAD轉(zhuǎn)換器,實(shí)現(xiàn)了16位數(shù)據(jù)輸出。
陀螺儀可測(cè)范圍為±250、500、1 000、2 000(°/s),加速度可測(cè)范圍為±2g、±4g、±8g、±16g,磁場(chǎng)可測(cè)范圍為±1 200μT。為于減少機(jī)架上震動(dòng)的影響,該飛行器用泡沫把姿態(tài)模塊包裹起來(lái),以削弱震動(dòng)對(duì)姿態(tài)解析的影響[4]。
1.5 攝像頭模塊選擇
使用OV2640模塊作為飛行器的圖像采集模塊,該模塊具有體積小、工作電壓低的特點(diǎn),并且具有高靈敏度,提供單片UXGA攝像頭和影像處理器的所有功能。通過(guò)SCCB總線控制,可以輸出整幀、子采樣、縮放和取窗口等方式的各種分辨率8/10位影像數(shù)據(jù)。該模塊SVGA輸出可達(dá)30幀。用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。所有圖像處理功能過(guò)程包括伽瑪曲線、白平衡、對(duì)比度、色度等都可以通過(guò)SCCB接口編程。
2.1 飛行姿態(tài)算法分析
飛行器的飛行姿態(tài)是通過(guò)調(diào)節(jié) 4個(gè)無(wú)刷電機(jī)的轉(zhuǎn)速進(jìn)行控制的,飛行控制系統(tǒng)通過(guò)各傳感器獲得飛行器的姿態(tài)信息, 經(jīng)過(guò)PID控制算法得出 4個(gè)電機(jī)的應(yīng)有的轉(zhuǎn)速,然后通過(guò)PWM定時(shí)器接口發(fā)送給電調(diào) , 調(diào)整 4個(gè)電機(jī)的轉(zhuǎn)速來(lái)實(shí)現(xiàn)對(duì)其姿態(tài)的控制。 姿態(tài)解算和PID控制是整個(gè)飛行控制的基礎(chǔ)。需要檢測(cè)的姿態(tài)角有3個(gè):俯仰角、偏航角、翻滾角。
本飛行器中姿態(tài)解算利用的是MPU-9150的DMP(DigitalMotionProcess)輸出的四元數(shù)。為了有較好的線性度,將需要的姿態(tài)差轉(zhuǎn)換為歐拉角后再進(jìn)行PID控制。
在得到姿態(tài)后,最重要的是通過(guò)控制算法來(lái)控制飛行,本文采用了PID算法,該算法很大程度上參考了APM的控制算法。它是采用角度P和角速度PID的雙閉環(huán)PID算法。角度的誤差被作為期望輸入到角速度控制器中。雙閉環(huán)PID相比傳統(tǒng)的單環(huán)PID來(lái)說(shuō)性能有了極大的提升[5]。
橫滾角(Roll)和俯仰角(Pitch)的控制算法是一樣的,控制參數(shù)也比較接近。首先得到姿態(tài)的角度差,將該值乘以角度系數(shù)p后限幅作為角速度控制器期望值。該期望值與MPU9150得到的當(dāng)前角速度作差,得到角速度誤差乘以kp得到P。在I值小于限幅值時(shí)將角速度誤差累加到I中。前后兩次角速度誤差的差作為D項(xiàng),最后將P、I、D三者相加并限幅得到最終PID輸出。
通過(guò)測(cè)試,飛行器能夠很穩(wěn)定地起飛、降落,并且具備非常快的反應(yīng)速度。飛控算法滿足要求。
2.2 飛行器自主循跡算法分析
為了實(shí)現(xiàn)自主巡線飛行本文采用了OV2640模塊來(lái)采集線道信息。巡線飛行簡(jiǎn)單的實(shí)現(xiàn)就是讓飛機(jī)時(shí)刻處于賽道線的正上方。本設(shè)計(jì)將攝像頭安裝在飛機(jī)的下面正中心的位置。
為了保證采集的圖像不會(huì)因?yàn)轱w行器的高度變化而受到影響,在飛行器上裝配了HY-SRF05 模塊來(lái)采集高度信息,并在飛控程序中加入了定高飛行代碼。為了保證攝像頭數(shù)據(jù)處理的實(shí)時(shí)性,在系統(tǒng)上又增加了一片STM32F407ARM專門處理圖像數(shù)據(jù),通過(guò)攝像頭對(duì)實(shí)時(shí)圖像進(jìn)行采集,得到道路的信息,對(duì)當(dāng)前采集到的圖像信息做出判斷,從而得到道路的情況,之后將處理完的結(jié)果通過(guò)串口發(fā)送給飛控主控制芯片達(dá)到循跡的目的。
一般賽道圖像都由黑線和白色背景構(gòu)成,圖像信息簡(jiǎn)單并且對(duì)比明顯。在處理時(shí)可以將一幀圖像轉(zhuǎn)換成“ 0”、“ 1”(0為背景,1為賽道)信息保存。然后提取黑線中心以得到黑線位置。提取黑線中心部分是小車路徑識(shí)別系統(tǒng)中最為重要的一個(gè)環(huán)節(jié),關(guān)系到飛行器巡線質(zhì)量的好壞。
本文采用的自主循跡算法分為4步:
(1)對(duì)圖像進(jìn)行中值濾波。因?yàn)镺V2640攝像頭采集的圖像通常都會(huì)有大量的椒鹽噪聲,而噪聲會(huì)影響后面的賽道中心提取,所以本設(shè)計(jì)選擇去除椒鹽噪聲的中值濾波進(jìn)行處理。
(2)提取每一行的黑線中心點(diǎn)。具體方法為依次判斷這一行中每一個(gè)像素點(diǎn)是否為黑點(diǎn)(數(shù)據(jù)信息“1”),如是是白點(diǎn)則不處理,當(dāng)遇到黑點(diǎn)時(shí)則統(tǒng)計(jì)黑點(diǎn)個(gè)數(shù)(設(shè)計(jì)數(shù)為Y),記錄下黑點(diǎn)在該行的位置并與之前黑點(diǎn)的位置相加保存到X,當(dāng)一行數(shù)據(jù)處理完時(shí),X是該行所有黑點(diǎn)位置的總和,最后用X/Y得到該行黑線的中心點(diǎn)[6]。
(3)對(duì)所有的中心點(diǎn)信息求均值,即將所有點(diǎn)值求和然后除以行數(shù)。
(4)由于攝像頭被安裝在飛機(jī)的下面正中心的位置,根據(jù)提取到的黑線中心可以得到飛機(jī)是否偏離了賽道線,進(jìn)而可以根據(jù)偏移量適當(dāng)?shù)卣{(diào)整飛機(jī)的飛行角度,使其回到賽道線的正上方。
自主循跡算法的流程圖如圖2所示。
經(jīng)過(guò)測(cè)試,由于賽道本身比較簡(jiǎn)單,對(duì)比度明顯,加上中值濾波對(duì)椒鹽噪聲的濾除,可以很準(zhǔn)確地提取出賽道中心線位置,但是該算法涉及的運(yùn)算較多,如果只用主飛控來(lái)接收處理攝像頭數(shù)據(jù),1s內(nèi)只能處理1幀圖像,這么慢的處理速度很容易導(dǎo)致飛機(jī)飛出賽道外,于是本設(shè)計(jì)添加了一片STM32F407ARM專門處理攝像頭數(shù)據(jù),并將控制信息通過(guò)串口發(fā)送給主飛控芯片,通過(guò)優(yōu)化算法,最終可以實(shí)現(xiàn)1s處理8幀圖像,大大提高了實(shí)時(shí)性。
本文提出一種基于OV2640攝像頭和STM32芯片的自循跡四旋翼飛行器的設(shè)計(jì)及實(shí)現(xiàn)方法,飛行器飛行穩(wěn)定,循跡效果好。文中提出到的算法適用于簡(jiǎn)單背景和賽道對(duì)比度較大的情況。仿真及四旋翼飛行器測(cè)試結(jié)果表明,由于采用了2片STM32芯片,大大提高了算法實(shí)時(shí)性和穩(wěn)定性。
[1]SONKAM,HLAVACV,BOYLER.Imageprocessing,analysis,andmachinevision(SecondEdition)[M].USA:ThomsonLearningandPTPress,1999.
[2] 劉紅莉,王國(guó)宇,馬原.基于水下圖像小波變換的圖像閾值去噪方法的研究[J]. 現(xiàn)代電子技術(shù),2011,34(15):79-81.
[3] 陳懷琛,吳大正,高西全.MATLAB及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2006.
[4] 徐飛,施曉紅.MATLAB應(yīng)用圖像處理[M].西安:西安電子科技大學(xué)出版社,2002.
[5] 清源計(jì)算機(jī)工作室.MATLAB6.0高級(jí)應(yīng)用:圖形圖像處理[M].北京:機(jī)械工業(yè)出版社,2001.
[6] 史忠科,曹力.交通圖像檢測(cè)與分析[M].北京:科學(xué)出版社,2007.
Intelligent monitoring and analysis system of water environment based on IoT
WenQuan,ChengTianle,SuZeya
(HunanUniversityofArtsandScience,Changde415000,China)
Thefour-rotoraircraftusesSTM32F407ARMautonomousflightcontrolchipasthemaincontrolcenterhardwarewhichincludesflightattitudeacquisitionmodule,ultrasonicrangingmodule,cameratrackingmodule,brushlessmotordrivemoduleandSTM32F407cameradataprocessingmodule.Inordertoensurereal-timecameradataprocessing,thedesignaddsaSTM32F407chipdedicatedcameradataprocessing.Throughattitudecomputation,PIDcontrolalgorithm,cameradataacquisitionandprocessing,aircraftcantakeoffbyonetouch,flightstablyalonggivenheighttrackline,andultimatelygetasmoothlanding.Severaltestsprovethattheautonomoustrackingfour-rotoraircraftbasedondualSTM32chipandOV2640isstableandreliable.
four-rotoraircraft;autonomoustrackingflight;PIDalgorithm
TP
ADOI: 10.19358/j.issn.1674- 7720.2016.22.028
溫全,成天樂(lè),蘇澤亞. 基于STM32和OV2640的自主循跡四旋翼飛行器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(22):105-107.
0 引言
2015年湖南省大學(xué)生研究性學(xué)習(xí)和創(chuàng)新性實(shí)驗(yàn)計(jì)劃項(xiàng)目資助(湘教通[2015]269號(hào)第385號(hào))
2016-06-30)
溫泉(1995-),男,本科生,主要研究方向:自動(dòng)控制。
成天樂(lè)(1983-),通信作者,男,碩士,助教,主要研究方向:自動(dòng)控制、人工智能。E-mail:17184835@qq.com。