李亮 吳杰 石道勝
【摘 要】本設計采用模塊化編程,便于移植、二次開發。控制代碼對PID算法進行優化,控制精度高、系統反應靈敏,同時采用CRC校驗方式進行數據發送,保證了數據完整性和準確性。可實現飛行器定高、定位飛行。
【關鍵詞】無人機;PID控制;MPU6050
中圖分類號: V279;V249.1 文獻標識碼: A 文章編號: 2095-2457(2018)24-0014-002
DOI:10.19694/j.cnki.issn2095-2457.2018.24.006
【Abstract】The design adopts modular programming,which is easy to transplant and redevelop.The code of PID algorithm is optimized with high control precision and sensitive response in the control system.At the same time,The CRC checking mode is used to send data and ensure the data integrity and accuracy.The aircraft can complete flight at fixed altitude and position.
【Key words】UAV;PID Control;MPU6050
0 前言
無人機是無人駕駛飛機(Unmanned Aerial Vehicle)的簡稱,是由無線電遙控設備和自備程序控制裝置的不載人飛機構成。包括無人直升機、固定翼機、多旋翼飛行器、無人飛艇、無人傘翼機。從某種角度來看,無人機可以在無人駕駛的條件下完成復雜空中飛行任務和各種負載任務。四旋翼在很早之前就已經有人研究,但是限于當時的科技還不夠發達,因此并沒有引起大家的重視。進入21世紀之后,隨著科學技術的不斷發展,以及微機電、微導航技術的出現,引來了四旋翼發展的新時代,各國都開設有相關的研究機構來對四旋翼飛行器展開研究。四旋翼擁有控制靈活、體積小、重量輕、穩定性好、可垂直起降和定點懸停等特點,不論是在軍事上還是民用上都擁有非常廣泛的應用前景[1]。本簡易四軸飛行器,去除以往其它飛行控制軟件的復雜性,并且保留了基本的四軸飛行器的功能。
1 四軸飛行器平衡設計
四軸飛行器與普通的飛行器飛行原理不同,是通過調節四個電機的轉速來改變旋翼轉速,實現升力的變化,從而控制飛行器的姿態和位置。由于飛行器是通過改變旋翼轉速實現升力變化,這樣會導致其動力不穩定,所以需要一種能夠長期保穩定的控制方法。我們選用PID控制算法對四旋翼的四個螺旋槳的輸出進行控制。利用MPU6050進行采集當前環境的三軸加速度、三軸角速度。為此需要大量測試來解決數據采集與處理,控制等時間的分配問題[2]。通過MPU6050采集的陀螺儀和加速度數據進行姿態控制,使飛行器在有外部干擾的情況下依然保持四槳向上的的直立姿態保持飛行。
當系統運行后,先進行系統初始化,包括微處理器的定時器、中斷、串口,以及傳感器的初始化。傳感器測量數據,經轉化后讀入程序中。根據讀入的數據計算出當前的飛行器姿態。讀取控制信號,并且計算出控制需要的目標姿態。比較實際姿態與目標姿態,利用PID算法計算出每個電機的調整量,根據計算出的調整量來調整微處理器的PWM模塊,使PWM模塊產生的PWM波的占空比發生變化,從而調整電機的轉速,進而調整了飛行器的姿態[3]。這樣系統通過以上的循環實現了對飛行器姿態的動態控制。
2 四軸飛行器定高設計
本四軸飛行器定高采用超聲波模塊控制,模塊使用方法簡單,工作電壓5V,只要給模塊一個10μs左右的高電平即可在模塊內部自動生成8個40KHz的方波進行測距,收到回波后的高電平時間通過比例計算即可得到相應的距離測量值。使用時不允許超過5.5V電壓,功耗電流:最小1mA,最大20mA,測量范圍1cm-5m。在環境惡劣的室外,超聲波依然可以保持較為準確的測量穩定性,作為穩定的飛行高度測量模塊較為合適[4]。
3 四軸飛行器控制器設計
本簡易四軸控制軟件主要分兩部分。分別為軟硬件初始化部分和控制主循環部分。第一部分,上電初始化,包括電機控制模塊,超聲波,六軸傳感器,串口,電子羅盤等等。初始化后等待發送接收的數據,為接下來的控制部分提供必要的準備。第二部分,主要接收遙控器傳輸過來的信息,主控芯片對信息進行解碼,做出相應的控制動作,此外當四軸懸停在空中時,系統根據超聲波、加速度傳感器等的數據對四軸的無刷電機的轉速做出調整,控制四軸的飛行姿態以保持飛行器平穩運行[5]。飛行器采用模塊化編程實現,流程圖1所示。四軸飛行器系統上電后定時器初始化,GPS和超聲波以及藍牙等傳感器初始化,初始化成功后,手機APP進行陀螺儀和加速度計校準,能夠選擇定高模式,自由模式。MPU6050傳感器傳過來三軸數據,通過反饋調節PID參數,以達到系統整體保持平衡、平穩的作用。
4 總結
本設計的四軸飛行器展示了四軸的飛行原理,控制驅動原理等。同時設計實現了四軸飛行器的起飛,降落,定高,平衡,加油門,減油門,旋轉等動作,首先各個系統初始化,超聲波定高初始化,定高PID初始化,油門PWM初始化,定時器初始化,GPS初始化。該四軸飛行器的代碼,運用了定時器的四個PWM通道,軟件通過緩慢調節PWM實現慢慢加速,軟啟動,實現了起飛,在利用MPU6050六軸傳感器進行PID調節,實現了平衡,這里主要是利用PID反饋調節PWM。利用超聲波傳感器,調節PID來定高,NRF遙控器和手機APP來遙控。
【參考文獻】
[1]王鋒,吳江,周國慶等.多旋翼飛行器發展概況研究[J].科技視界,2015(13):6-7.
[2]張權權,王立,成李浩.微型四旋翼飛行控制器設計[J].科技視界,2016(27):435-435.
[3]張新英,余發軍,劉聰.基于模糊PID控制的四旋翼無人機設計[J].實驗室研究與探索,2017,36(4):56-59.
[4]劉祥,林維昌.多功能環境監測無人機系統設計[J].科技視界,2016(12):55-56.
[5]潘春榮,許化.基于STM32的X型四旋翼無人機設計[J].工程設計學報,2017,24(2):196-202.