溫 全,成天樂,蘇澤亞
(湖南文理學院, 湖南 常德 415000)
基于STM32和OV2640的自主循跡四旋翼飛行器設計*
溫 全,成天樂,蘇澤亞
(湖南文理學院, 湖南 常德 415000)
本四旋翼自主飛行器采用STM32F407ARM芯片作為飛控主控制核心, 硬件包括了飛行姿態采集模塊、超聲波測距模塊、攝像頭循跡模塊、無刷電機驅動模塊以及STM32F407攝像頭數據處理模塊等。 飛行姿態處理由MPU-9150加速度計陀螺儀提供, 實現了飛行器的平穩飛行。 超聲波測距模塊和攝像頭循跡模塊為飛行器提供導航參數,使飛行器可以按照規定航線并以一定高度飛行。為了保證攝像頭數據處理的實時性,本設計中增加了一片STM32F407芯片專門處理攝像頭數據。通過姿態解算、PID控制算法、攝像頭數據采集處理, 使飛行器實現一鍵式起飛, 定高跟著賽道線穩定飛行, 最終平穩降落。 通過多次測試,證明該基于雙STM32芯片和OV2640的自主循跡四旋翼飛行器穩定、可靠。
四旋翼飛行器; 自主循跡飛行;PID算法
四旋翼飛行器,也稱為四旋翼直升機,是一種有4個螺旋槳且螺旋槳呈十字形交叉的飛行器,可以搭配微型相機錄制航拍視頻。 它具有多種飛行模式切換自由、方向控制靈活等特點,其實用性也從原來單純的飛行應用發展為現在集軍用、商用、民用等多位一體的無人駕駛工具[1]。
四旋翼飛行器中最核心的部分是飛控,飛控子系統是無人機完成起飛、空中飛行、執行任務和返場回收等整個飛行過程的核心系統,飛控對于無人機相當于駕駛員對于有人機的作用,目前在民用領域已經有很多很成熟的飛控,如大疆、APM、MWC、零度、PIX等[2-3],它們在穩定性和速度方面都已經做得很優秀,具有很好的參考價值。特別是近幾年無人機越來越流行,很多的競賽也選用四旋翼做考題。目前,實現無人機穩定、快速的巡線飛行已經成為一個熱門話題。
本文采用STM32F407ARM作為控制核心的四旋翼飛行器控制系統, 調制PWM信號輸出占空比驅動無刷直流電機。 通過對四旋翼飛行器工作原理的分析, 開展對四旋翼工作模式與控制參數的研究,參考著名開源飛控APM得到相應的控制算法, 然后編程、 仿真, 實現四旋翼飛行器飛行姿態的平穩飛行。為了讓四旋翼實現自主循跡飛行,本文還添加了一片STM32F407ARM專門處理攝像頭數據,并通過串口將路線信息發送給飛控使其調整飛行路線達到巡線的目的。最后,通過編程并多次試飛測試,本文所設計的四旋翼飛行器達到了非常理想的飛行器自主巡線效果。
本系統采用STM32F407ARM芯片作為四旋翼自主飛行器的控制核心, 主要由STM32F407飛行控制模塊、飛行姿態采集模塊、超聲波測距模塊、攝像頭模塊、STM32F407攝像頭數據處理模塊、電機驅動模塊組成,如圖1所示。

圖1 系統硬件組成圖
1.1 飛控主控制芯片選擇
采用STM32F407ARM處理器, 該芯片搭載ARM公司的Cortex-M3內核,內部集成1MBFlash和192KBRAM, 內置高速片上振蕩器時鐘, 最高頻率可達168MHz,支持看門狗定時器,內置上電復位、按鍵中斷、時鐘輸出、蜂鳴器輸出控制電路等,該芯片具有出色的實時性和優越的功耗控制;同時,它還有豐富的外設,如IIC接口、Usart接口等,方便連接數傳、超聲波、GPS、WiFi、OSD、GPRS等模塊,大大提高系統的拓展性。
1.2 驅動模塊的選擇
通過綜合考慮飛行器載重能力、起飛高度、平穩性等因素, 采用無刷電機和電調為飛行器的驅動模塊。 無刷直流電機由電動機主體和驅動器組成, 是一種典型的機電一體化產品。 由于無刷直流電動機是以自控式運行的, 不會像變頻調速下重載啟動的同步電機那樣在轉子上另加啟動繞組, 也不會在負載突變時產生振蕩和失步。 其優點是無電刷、 低干擾; 噪音低、 運轉順暢; 壽命長、 低維護成本。其通常用在航模、精密儀器儀表等對電機轉速控制要求嚴格的設備上。
1.3 高度測量模塊選擇
使用HY-SRF05 超聲波測距模塊測量飛行器的離地高度。它可提供2~450cm的非接觸式距離感測功能,測距精度可高達3mm。
1.4 飛行姿態采集模塊選擇
使用MPU-9150模塊,該模塊集成了三軸陀螺儀、三軸加速度、三軸磁場。使用3~5V的電源,采用標準IIC通信協議進行通信。芯片內置了16bitAD轉換器,實現了16位數據輸出。
陀螺儀可測范圍為±250、500、1 000、2 000(°/s),加速度可測范圍為±2g、±4g、±8g、±16g,磁場可測范圍為±1 200μT。為于減少機架上震動的影響,該飛行器用泡沫把姿態模塊包裹起來,以削弱震動對姿態解析的影響[4]。
1.5 攝像頭模塊選擇
使用OV2640模塊作為飛行器的圖像采集模塊,該模塊具有體積小、工作電壓低的特點,并且具有高靈敏度,提供單片UXGA攝像頭和影像處理器的所有功能。通過SCCB總線控制,可以輸出整幀、子采樣、縮放和取窗口等方式的各種分辨率8/10位影像數據。該模塊SVGA輸出可達30幀。用戶可以完全控制圖像質量、數據格式和傳輸方式。所有圖像處理功能過程包括伽瑪曲線、白平衡、對比度、色度等都可以通過SCCB接口編程。
2.1 飛行姿態算法分析
飛行器的飛行姿態是通過調節 4個無刷電機的轉速進行控制的,飛行控制系統通過各傳感器獲得飛行器的姿態信息, 經過PID控制算法得出 4個電機的應有的轉速,然后通過PWM定時器接口發送給電調 , 調整 4個電機的轉速來實現對其姿態的控制。 姿態解算和PID控制是整個飛行控制的基礎。需要檢測的姿態角有3個:俯仰角、偏航角、翻滾角。
本飛行器中姿態解算利用的是MPU-9150的DMP(DigitalMotionProcess)輸出的四元數。為了有較好的線性度,將需要的姿態差轉換為歐拉角后再進行PID控制。
在得到姿態后,最重要的是通過控制算法來控制飛行,本文采用了PID算法,該算法很大程度上參考了APM的控制算法。它是采用角度P和角速度PID的雙閉環PID算法。角度的誤差被作為期望輸入到角速度控制器中。雙閉環PID相比傳統的單環PID來說性能有了極大的提升[5]。
橫滾角(Roll)和俯仰角(Pitch)的控制算法是一樣的,控制參數也比較接近。首先得到姿態的角度差,將該值乘以角度系數p后限幅作為角速度控制器期望值。該期望值與MPU9150得到的當前角速度作差,得到角速度誤差乘以kp得到P。在I值小于限幅值時將角速度誤差累加到I中。前后兩次角速度誤差的差作為D項,最后將P、I、D三者相加并限幅得到最終PID輸出。
通過測試,飛行器能夠很穩定地起飛、降落,并且具備非常快的反應速度。飛控算法滿足要求。
2.2 飛行器自主循跡算法分析
為了實現自主巡線飛行本文采用了OV2640模塊來采集線道信息。巡線飛行簡單的實現就是讓飛機時刻處于賽道線的正上方。本設計將攝像頭安裝在飛機的下面正中心的位置。
為了保證采集的圖像不會因為飛行器的高度變化而受到影響,在飛行器上裝配了HY-SRF05 模塊來采集高度信息,并在飛控程序中加入了定高飛行代碼。為了保證攝像頭數據處理的實時性,在系統上又增加了一片STM32F407ARM專門處理圖像數據,通過攝像頭對實時圖像進行采集,得到道路的信息,對當前采集到的圖像信息做出判斷,從而得到道路的情況,之后將處理完的結果通過串口發送給飛控主控制芯片達到循跡的目的。
一般賽道圖像都由黑線和白色背景構成,圖像信息簡單并且對比明顯。在處理時可以將一幀圖像轉換成“ 0”、“ 1”(0為背景,1為賽道)信息保存。然后提取黑線中心以得到黑線位置。提取黑線中心部分是小車路徑識別系統中最為重要的一個環節,關系到飛行器巡線質量的好壞。
本文采用的自主循跡算法分為4步:
(1)對圖像進行中值濾波。因為OV2640攝像頭采集的圖像通常都會有大量的椒鹽噪聲,而噪聲會影響后面的賽道中心提取,所以本設計選擇去除椒鹽噪聲的中值濾波進行處理。
(2)提取每一行的黑線中心點。具體方法為依次判斷這一行中每一個像素點是否為黑點(數據信息“1”),如是是白點則不處理,當遇到黑點時則統計黑點個數(設計數為Y),記錄下黑點在該行的位置并與之前黑點的位置相加保存到X,當一行數據處理完時,X是該行所有黑點位置的總和,最后用X/Y得到該行黑線的中心點[6]。
(3)對所有的中心點信息求均值,即將所有點值求和然后除以行數。
(4)由于攝像頭被安裝在飛機的下面正中心的位置,根據提取到的黑線中心可以得到飛機是否偏離了賽道線,進而可以根據偏移量適當地調整飛機的飛行角度,使其回到賽道線的正上方。
自主循跡算法的流程圖如圖2所示。
經過測試,由于賽道本身比較簡單,對比度明顯,加上中值濾波對椒鹽噪聲的濾除,可以很準確地提取出賽道中心線位置,但是該算法涉及的運算較多,如果只用主飛控來接收處理攝像頭數據,1s內只能處理1幀圖像,這么慢的處理速度很容易導致飛機飛出賽道外,于是本設計添加了一片STM32F407ARM專門處理攝像頭數據,并將控制信息通過串口發送給主飛控芯片,通過優化算法,最終可以實現1s處理8幀圖像,大大提高了實時性。
本文提出一種基于OV2640攝像頭和STM32芯片的自循跡四旋翼飛行器的設計及實現方法,飛行器飛行穩定,循跡效果好。文中提出到的算法適用于簡單背景和賽道對比度較大的情況。仿真及四旋翼飛行器測試結果表明,由于采用了2片STM32芯片,大大提高了算法實時性和穩定性。
[1]SONKAM,HLAVACV,BOYLER.Imageprocessing,analysis,andmachinevision(SecondEdition)[M].USA:ThomsonLearningandPTPress,1999.
[2] 劉紅莉,王國宇,馬原.基于水下圖像小波變換的圖像閾值去噪方法的研究[J]. 現代電子技術,2011,34(15):79-81.
[3] 陳懷琛,吳大正,高西全.MATLAB及在電子信息課程中的應用[M].北京:電子工業出版社,2006.
[4] 徐飛,施曉紅.MATLAB應用圖像處理[M].西安:西安電子科技大學出版社,2002.
[5] 清源計算機工作室.MATLAB6.0高級應用:圖形圖像處理[M].北京:機械工業出版社,2001.
[6] 史忠科,曹力.交通圖像檢測與分析[M].北京:科學出版社,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
溫全,成天樂,蘇澤亞. 基于STM32和OV2640的自主循跡四旋翼飛行器設計[J].微型機與應用,2016,35(22):105-107.
0 引言
2015年湖南省大學生研究性學習和創新性實驗計劃項目資助(湘教通[2015]269號第385號)
2016-06-30)
溫泉(1995-),男,本科生,主要研究方向:自動控制。
成天樂(1983-),通信作者,男,碩士,助教,主要研究方向:自動控制、人工智能。E-mail:17184835@qq.com。