2018年安徽省大學生電子設計競賽“TI杯”(最高獎)獲獎作品-滅火飛行器設計報告_第1頁
2018年安徽省大學生電子設計競賽“TI杯”(最高獎)獲獎作品-滅火飛行器設計報告_第2頁
2018年安徽省大學生電子設計競賽“TI杯”(最高獎)獲獎作品-滅火飛行器設計報告_第3頁
2018年安徽省大學生電子設計競賽“TI杯”(最高獎)獲獎作品-滅火飛行器設計報告_第4頁
2018年安徽省大學生電子設計競賽“TI杯”(最高獎)獲獎作品-滅火飛行器設計報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 2018 年安徽省 TI 杯大學生電子設計競賽滅火飛行器( B 題)設計報告目錄 TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 摘要: 2 HYPERLINK l bookmark6 o Current Document 關鍵詞: 2 HYPERLINK l bookmark8 o Current Document 一、系統方案 3 HYPERLINK l bookmark10 o Current Document 控制系統的選擇 3飛行姿態控制的論證與選擇 3電機的選擇 3 HYPERLINK l bookmark12 o C

2、urrent Document 高度測量模塊的論證與選擇 3 HYPERLINK l bookmark14 o Current Document 邊界判斷模塊的選擇 3角速度與加速度測量模塊選擇 4 HYPERLINK l bookmark16 o Current Document 二、設計與論證 4 HYPERLINK l bookmark18 o Current Document 控制方法設計 4降落及飛行軌跡控制 4飛行高度控制 5飛行姿態控制 5 HYPERLINK l bookmark20 o Current Document 參數計算 6 HYPERLINK l bookmark2

3、2 o Current Document 三、理論分析與計算 6 HYPERLINK l bookmark24 o Current Document Pid 控制算法分析 6 HYPERLINK l bookmark30 o Current Document 四、電路與程序設計 9 HYPERLINK l bookmark32 o Current Document 系統組成 9 HYPERLINK l bookmark34 o Current Document 系統框圖 9系統各模塊電路圖 10 HYPERLINK l bookmark36 o Current Document 程序流程圖 1

4、3 HYPERLINK l bookmark38 o Current Document 五、測試方案與測試條件 13 HYPERLINK l bookmark40 o Current Document 測試方案 13 HYPERLINK l bookmark42 o Current Document 測試條件 14 HYPERLINK l bookmark46 o Current Document 六、結論 16 HYPERLINK l bookmark48 o Current Document pid 控制如下圖: 16 HYPERLINK l bookmark54 o Current Do

5、cument 附錄一:元器件明細表 18附錄二:儀器設備清單 18附錄三:程序 18摘要:本系統由數據采集、 數據信號處理、飛行姿態和航向控制等部分組成。系統 選用 STM32F4單片機作為主控芯片, 對從 STM32F4芯片讀取到的一系列數據進行 PID 算法處理并向飛行器的電調給出相應指令, 從而達到對飛行器飛行姿態的控 制。采用 STM32F4芯片采集四旋翼飛行器的三軸角速度和三軸角加速度數據 , 用 激光定高來判斷“火源位置”,以保證飛行器可以直接找到“火源”。通過使用 激光判斷邊界區域,確保可以在相應范圍內飛行; nrf51422 無線通信模塊用來 實現遙控器和飛行器之間的通信。關鍵

6、詞:STM32F4單片機 激光傳感器 超聲波測距定高 PID 算法 光流定點模塊 nrf51422 無線模塊、系統方案本系統主要由控制模塊、激光定高模塊、電機調速模塊、循跡模塊、無線通信模塊組成,下面分別論證這幾個模塊的選擇。控制系統的選擇方案一: STM32F1單片機作為主控芯片來控制飛行器的飛行姿態與方向,帶 有攝像頭采集,并把攝像頭采集的數據發送給 STM32F4進行處理,運用 pid 算 法進行姿態調整。方案二:采用激光定高模塊,把數據發送到 STM32F4單片機進行數據處理。 由于單片機質量比較重,飛機飛行過程中佩戴攝像頭及單片機時,飛行姿態 不穩定,較難實現比賽的要求,故采用方案二

7、。飛行姿態控制的論證與選擇 方案一:單片機將從定高模塊中讀取出來的飛行原始數據進行 PID 算法運算, 得到當前的飛行器歐拉角, 單片機得到這個歐拉角后根據歐拉角的角度及方向輸 出相應的指令給電調,從而達到控制飛行器平穩飛行的目的 方案二:單片機將定高模塊中讀取出來的飛行原始數據進行 PID 算法運算, 得到當前飛行器的四元數,單片機再將數據融合,并對電調發出相應指令, 從而 達到控制飛行器的飛行姿態的目的。從算法的復雜程度及我們對算法的熟悉程度,我們選擇方案二。電機的選擇 方案一:電機選擇空心杯電機,因為是由廠家自帶,比較容易使用。 方案二:電機選擇無刷電機。 由于無刷電機質量大,飛機較小,

8、使用無刷電機很難帶動,故選擇方案一。高度測量模塊的論證與選擇方案一:采用 HC-SR04超聲波傳感器測量飛行器當前的飛行高度。 方案二:采用激光定高模塊測量高度。 考慮到對元件的熟悉程度、元件的價格和程序的編寫,選擇方案二。邊界判斷模塊的選擇內置的激光模塊, 在發射激光的同時,信號返還的值不同,由于邊界貼上了 黑色膠袋,返回值會產生較大變化,即可以達到邊界判斷的目的。角速度與加速度測量模塊選擇 歐拉角算法通過求解歐拉角微分方程直接計算航向角、 俯仰角和橫滾角。 歐 拉角微分方程關系簡單明了 , 概念直觀 , 容易理解,解算過程中無需作正交化處理 但方程中包含有三角運算 , 這給實時計算帶來一定

9、困難。而且當俯仰角接近 90 時方程出現退化現象 , 這相當于平臺慣導中慣性平臺的鎖定,所以這種方法只適 用于水平姿態變化不大的情況 , 而不適用于全姿態運載體的姿態確定。 方向余弦法對姿態矩陣微分方程作求解 , 避免了歐拉角法中方程的退化問 題,可全姿態工作。 但姿態矩陣微分方程實質上是包含九個未知量的線性微分方 程組,與四元數法相比 , 計算量大 , 實時計算困難,所以工程 . 上并不實用。 四元數法只需求解四個未知量的線性微分方程組 , 計算量比方向余弦法小 , 且算法簡單,易于操作 , 是較實用的工程方法。但四元數法實質上是旋轉矢量法 中的單子樣算法 , 對有限轉動引起的不可交換誤差的

10、補償程度不夠 ,所以只適用 于低動態運載體 (如運輸機等 )的姿態解算。而對高動態運載體 ,姿態解算中的算 法漂移會十分嚴重。旋轉矢量法可采用多子樣算法實現對不可交換誤差做有效補償 , 算法關系簡 單,易于操作 , 并且通過對系數的優化處理使算法漂移在相同子樣算法中達到最 小,因此特別適用于角機動頻繁激烈或存在嚴重角振動的運載體的姿態更新。四元數法和旋轉矢量法都通過計算姿態四元數實現姿態更新, 但前者直接求 解姿態四元數微分方程 , 而后者通過求解姿態變化四元數再求解姿態四元數 ,兩 者的算法思路并不相同。利用加速度計所獲得的角度信息 g 與陀螺儀積分后的角度 進行比較, 將比較的誤差信號經過

11、比例 Tg 放大之后與陀螺儀輸出的角速度信號疊加之后再 進行積分。對于加速度計給定的角度 g ,經過比例、積分環節之后產生的角度 必然最終等于 g 。由于加速度計獲得的角度信息不會存在積累誤差, 所以最 終將輸出角度 中的積累誤差消除了。 加速度計所產生的角度信息 g 中會疊加 很強的有四軸運動加速度噪聲信號。為了避免該信號對于角度 的影響,因此 比例系數 Tg 應該非常小。這樣,加速度的噪聲信號經過比例、積分后,在輸出 角度信息中就會非常小了。由于存在積分環節,所以無論比例Tg 多么小,最終輸出角度 必然與加速度計測量的角度 g 相等,只是這個調節過程會隨著 Tg 的減小而延長。二、設計與論

12、證控制方法設計降落及飛行軌跡控制 由于題中有指示線, 所以我們采用漫反射激光定高來識別地面的指示線, 紅外模塊將識別指示線后的信號以數據的方式傳給單片機,單片機對信號做出反 應,控制電調,從而控制飛行器飛行軌跡。程序流程圖如下:飛行高度控制飛行高度的采集采用激光定高模塊來實現飛行姿態控制通過 MPU6050模塊來測量當前飛行器的三軸加速度和三軸角加速度, 利用瑞 薩單片機的 IIC 協議從 MPU6050中讀取出數據, 解讀飛行器的飛行姿態, 并經過 PID 算法程序來對數據進行處理,得到當前歐拉角的值,并將處理后的信號傳給 電調,控制電機的轉速,從而達到控制飛行器的飛行姿態的目的。程序流程圖

13、如圖:參數計算本系統最主要的參數計算是對 MPU-6050等傳感器采集的原始飛行數據進 行處理。單片機從 MPU-6050芯片獲取的數據是飛行器的三軸角速度和三軸角加速度, MCU對數據進行 PID算法處理可以得到飛行器當前的飛行姿態, PID是比例 ,積分, 微分的縮寫。比例調節作用:是按比例反應系統的偏差 , 系統一旦出現了偏差 , 比例調節立即產生調節作用用以減少偏差。 比例作用大,可以加快調節 ,減少誤差, 但是過大的比例 , 使系統的穩定性下降 , 甚至造成系統的不穩定。積分調節作用: 是使系統消除穩態誤差 , 提高無差度。因為有誤差 , 積分調節就進行 , 直至無差 , 積分調節停

14、止 , 積分調節輸出一常值。積分作用的強弱取決與積分時間常數 Ti,Ti 越小, 積分作用就越強。反之 Ti 大則積分作用弱 ,加入積分調節可使系統穩定性 下降,動態響應變慢。積分作用常與另兩種調節規律結合 ,組成 PI調節器或 PID 調節器。三、理論分析與計算Pid 控制算法分析由于四旋翼飛行器由四路電機帶動兩對反向螺旋槳來產生推力,所以如何保 證電機在平穩懸浮或上升狀態時轉速的一致性及不同動作時各個電機轉速的比 例關系是飛行器按照期望姿態飛行的關鍵。 所以這里我們采用到 pid 控制理論把飛機的當前姿態調整到期望姿態Pid 控制是通過姿態采集模塊發送回來的數據與期望姿態進行比對,如果存

15、在誤差,就對誤差進行比例、積分、微分的調整,再將調整后的值加到當前電機 上,從而達到調整的目的。比例調節的反應速度較快,而且調節作用明顯,飛機 出現俯仰和翻滾時能快速調節回來,但是穩定性較差,往往會調節過火; 積分調 節可以消除長期誤差, 排除外界因素的干擾, 但是同樣會降低系統整體的穩定性, 使飛機發生震蕩;微分調節可以預測被控設備的將來狀態,及時的進行調整, 而 且對比例調節有抑制作用,加強單比例調節的穩定性,排除調節過度的問題。 所 以通過 pid 控制可以完全考慮到整個系統的過去、現在、將來,以使系統達到穩Pid 控制油門原理框圖如下:飛行姿態控制單元飛行器模擬圖如下圖, 姿態控制是通

16、過陀螺儀模塊進行數據的采集, 根據它 采集回來的俯仰角( pitch),翻滾角( roll ),四旋翼采用十字型連接,這樣的 話能明確分離俯仰姿態和翻滾姿態, 進行分別控制。 這時如果飛機處于俯仰狀態 就調機頭和機尾的電機, 那邊高就減小那邊電機的轉速, 相應的那邊低則加大那 邊電機的轉速。如果飛機處于翻滾狀態,則調左右電機。尾尾右光流模塊原理可以看到, 光流模塊原理圖還是比較簡單的, 一顆光流模組 PMW3901,一顆 激光測距傳感器 VL53L0X, 2 顆 LDO,一組 2.0 間距排母,一個 ADC 采集點,以 及電阻、電容、二三極管和 MOS 管。PMW3901 是 PixArt 公

17、司最新的高精度低功耗光學追蹤模組, 可直接獲取 xy 方向運動信息,測量范圍 8cm 以上,工作電流9mA,工作電 VDD(1.82.1VDC) 和 VDDIO(1.83.6VDC), 使用 4 線 SPI 接口通信。原理圖可以看出, 2 顆 LDO , 一顆 1.8V的LDO 提供給 VDD ,一顆 3.0V的LDO 提供給 VDDIO 。 SPI 接口使 用硬件 SPI2,片選信號 PA8, 另外 LED1 為紅外 LED, 默認沒有焊接。VL53L0X 是 ST 公司的第二代激光測距傳感器, 該芯片集成了激光發射器和 SPAD 紅外接收器,采用 FlightSenseTM技術,通過接收器

18、接收到的光子時間來 計算距離,實現更快、更遠、更精確的測距功能,該傳感器工作電壓 AVDD 由3.0V 的 LDO 經過一個 10R 電阻得到,大概是 2.8V,也恰好是 VL53L0X 工作最 佳電壓,該傳感器測量距離 3cm 200cm,使用 IIC 通信接口,最大通信速率 400K, 我們使用模擬 IIC (SDA/PB4,SCL/PB5) 和飛控端通信。此模塊同 ATK-LED-RING 燈環模塊,ATK-WIFI-MODULE 攝像頭模塊一樣, 有一個 ADC 采集腳, 根據不同的 ADC 電壓值來識別不同的模塊 ID,然后飛控根 據模塊 ID來控制模塊,光流模塊的 ADC 值為 2

19、.06V,ADC 的值由電阻 R6和 R7 分壓得到。模塊的電源通過 MOS1 控制通斷,控制信號為 E_ SCL/PB0。另外可以看到電感 L1 和 L2,通過 L1 和 L2 來選擇 VDDIO, 如果使用 L1, 那么 VDDIO 電源來自于飛控 VCC3.0, 如果使用 L2 ,那么 VDDIO 電源來自光流模塊 3.0V LDO IC2 ,默認焊接 L2,這樣可以得到更穩定的電源。四、電路與程序設計系統組成本設計采用 STM32F411CE 作為滅火飛行器系統的主控芯片, 搭載光流定點 模塊、激光定高模塊、 NRF 無線通信模塊、電機控制模塊等組成。光流定點模塊精確控制巡航高度為 1

20、.5m,激光定高模塊用來判斷邊界和 “火 源”, NRF 無線通信模塊用來實現飛行器和單片機之間的無線通信,電機驅動 飛機飛行。系統框圖系統各模塊電路圖(1)nrf 通信模塊電路圖(2)電源和 USB電路圖(3)MiniFly 遙控器 MCU STM32F103C8T6電 路圖(4)光流模塊電路圖圖( 1)nrf 通信模塊電路圖圖( 2)電源和 USB電路圖圖( 3) MiniFly 遙控器 MCU STM32F103C8T電6 路圖圖( 4)光流模塊電路圖程序流程圖本系統程序的編寫采用 KEIL軟件進行程序的編寫,用 USB ISP程序下載器 將編寫好的程序燒寫入 STM32F4單片機,軟件

21、界面如下圖五、測試方案與測試條件測試方案基于四旋翼飛行器設計一個滅火飛行器(簡稱飛行器)。 飛行器活動區域示 意圖如圖 1 所示。在圖 1 中,左下方的圓形區域是飛行器起飛及降落點; 右側正 方形區域是滅火防區,防區中有 4 個用紅色 LED模擬的火源(火源用單只 0.5W 紅色發光二極管來實現,建議 LED 電流不超過 25mA)。飛行器起飛后從 A 處 進入防區, 并以指定巡航高度在防區巡邏;發現防區有火源, 用激光筆發射激光 束的方式模擬滅火操作;所有火源全部熄滅后,飛行器從 B 處飛離防區返航, 返 航途中需穿越一個矩形框。 從起飛到降落的整個操作過程不得超過 5 分鐘,時間 越短越好

22、。具體測試場地圖如下:測試條件(1)飛行器從起飛地點垂直起飛升高到 150cm10cm 的巡航高度。(2)在起飛點的巡航高度上懸停 15秒,然后以巡航高度從 A 處進入防區巡航 飛行。飛行器發現防區內的火源后, 飛往火源上方用上激光筆照射火源作為滅火; 激光筆光斑在以火源為圓心、直徑 20cm圓形區域保持 2 秒及以上即視為滅火成 功。( 3)飛行器從 B 處飛離防區。( 4)返航途中飛行器需要穿過一個寬高為 100 x70cm 的矩形框。回到降落點上空,垂直下降,準確平穩地降落在降落點; (5)整個飛行過程計時得分。測試結果表格滅火飛行器測試數據飛控標志 flag實驗序 號延時(s)傾角 1

23、( 前后 )傾角 2 (左右)位移 (cm)位移 x(cm)位移 y(cm)1 前進510-0.3-10150710-0.3-10260104-0.25-101902 向左52.9-6-15506.152.9-6-1560102.9-3-15503 后退6-4-2.5-35-1706-4-1.9-2-3006-3.9-1.9-18-2404 向右8-7-2.4-2608-7-2.7-2308-7-2.4-210六、結論pid 控制如下圖:四軸定高飛行不穩定的解決方案: 定高是我們組討論比較多的一個話題,當然主要討論的就是定高效果的問 題,比如定高飛不起來、響應緩慢、飛起來上竄下竄等,反正就是有

24、很多問題, 當然這里面不排除硬件 (電機,槳葉)的問題以及軟件 (PID)問題。所以針對這個 定高問題,我們又花了大量時間和精力來優化定高功能,我們改動了不少代碼, 甚至代碼框架也改動了, 定高使用單環 PID 控制,四軸自身重量 ( 增刪擴展模塊 ) 對定高影響很大,油門響應也很慢。最后我們修正了以上的 bug,使用串級 (位置環+速度環)PID 的方式控制定 高,增加穩定性的同時提高了響應速度, 定高穩定性也不會受到自重影響, 然后 設置默認 - - 鍵起飛高度為 150cm。偏飛厲害的解決方案:(1)電機壞了,電機壞了也分好幾種情況,比如電機藍色底座脫離或者脫 落,這種情況導致電機輸出動

25、力減弱, 甚至有燒壞 MOS管的可能; 還有像電機輸 出軸彎曲, 裝上槳葉轉動起來就會因為不平衡產生很大的震動, 震動的直接結果 就是導致傳感器讀數據精度變差甚至錯誤; 還有可能是電機長時間工作, 軸承或 者電刷磨損厲害,導致動力減弱,因為有刷電機是有壽命的,按正常使用來說, 這個電機還是有幾個月壽命的。 對于這種電機壞了的情況, 我們只需要換上新的 電機即可。(2)偏飛也有可能是槳葉不平衡所致,因為空心杯轉速高,裝上不平衡槳 葉高速轉動,就會產生很大震動,過大的震動導致傳感器度數精度降低甚至錯誤。 怎么看槳葉是否平衡呢 ?最直接的就是看槳葉是否磨損,變形以及殘缺等。如果 這種情況,直接換上新

26、的槳葉即可(注意槳葉是有正反的)。(3)偏飛也有可能是信號干擾導致, 信號干擾導致四軸接受不到控制信號, 從而出現偏飛的情況,如果遇到干擾嚴重的情況,可以重置遙控器和四軸。附錄附錄一:元器件明細表(1)STM32F411C單片機(2)MPU9250(3 軸加速計 +3 軸陀螺儀 +3 軸磁力計)(3)BMP280(氣壓傳感器)(4)激光模塊(用于演示滅火)(5)光流定點模塊(6)NRF51422 無線模塊( 7) 3.7V/250mAh 鋰電池( 8) 716 空心杯電機 + 46mm 槳葉 附錄二:儀器設備清單 (1)線性穩壓電源( 2) 0.5wled 燈泡 附錄三:程序 1、多任務管理程

27、序#include usart.h#include delay.h#include led.h#include key.h#include oled.h#include 24l01.h#include adc.h#include hw_config.h#include config_param.h#include beep.h#include radiolink.h#include usblink.h#include remoter_ctrl.h#include atkp.h#include display.h#include keyTask.h/* FreeRtos includes */#

28、include FreeRTOS.h#include task.h* ALIENTEK MiniFly_Remotor* main.cstatic TaskHandle_t startTaskHandle;static void startTask(void *param); u16 flag = 0;int main(void)中斷配置初始化 */NVIC_SetVectorTable(FIRMWARE_START_ADDR,0);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);/*delay_init(); configParamInit();

29、 ledInit(); oledInit(); beepInit(); keyInit(); joystickInit(); usb_vcp_init(); radiolinkInit(); usblinkInit(); displayInit();/*delay 初始化 */* 配置參數初始化 */*led 初始化 */*oled 初始化 */* 蜂鳴器初始化 */* 按鍵初始化 */* 搖桿初始化 */*usb 虛擬串口初始化 */* 無線通信初始化 */*usb 通信初始化 */* 顯示初始化 */xTaskCreate(startTask, START_TASK, 100, NULL,

30、 2, &startTaskHandle);/* 創建起始任務 */vTaskStartScheduler();/* 開啟任務調度 */while(1);/* 任務調度后不會執行到這 */* 創建任務 */void startTask(void *param)taskENTER_CRITICAL(); /* 進入臨界區 */xTaskCreate(radiolinkTask, RADIOLINK, 100, NULL, 6, &radiolinkTaskHandle);/* 創建無線連接任務 */xTaskCreate(usblinkTxTask, USBLINK_TX, 100, NULL,

31、 5, NULL); /* 創建 usb 發送任務 */xTaskCreate(usblinkRxTask, USBLINK_RX, 100, NULL, 5, NULL); /* 創建 usb 接收任務 */xTaskCreate(commanderTask, COMMANDER, 100, NULL, 4, NULL);/*創建飛控指令發送任務 */xTaskCreate(keyTask, BUTTON_SCAN, 100, NULL, 3, NULL); /* 創建按鍵掃描任務 */xTaskCreate(displayTask, DISPLAY, 200, NULL, 1, NULL)

32、; /* 創建顯示任務 */xTaskCreate(configParamTask, CONFIG_TASK, 100, NULL, 1, NULL);/* 創建參數配置任務 */xTaskCreate(radiolinkDataProcessTask,DATA_PROCESS1,0 0, NULL, 6,NULL); /* 創建無線通信數據處理任務 */xTaskCreate(usblinkDataProcessTask, DATA_PROCESS, 100, NULL, 6, NULL); /* 創建 USB通信數據處理任務 */vTaskDelete(startTaskHandle);

33、/* 刪除 開始任務 */taskEXIT_CRITICAL(); /* 退出臨界區 */2. 指令發送程序static void flight(void)static u8 flipBeepTimeOut;oled_fill(0,24,127,63,0);/* 遙控器解鎖、加鎖 */ if(getJoystick1Dir(1)=BACK_LEFT & getJoystick2Dir(1)=BACK_RIGHT)RCLock = false;if(getJoystick1Dir(1)=BACK_RIGHT & getJoystick2Dir(1)=BACK_LEFT)RCLock = true

34、;/* 顯示控制模式、鎖頭、飛行模式 */GUI_Circle(20,43,16,1);GUI_Circle(20,43,17,1);if(configParam.flight.ctrl = ALTHOLD_MODE) oled_showChar(14,30,H,12,24,1);else if(configParam.flight.ctrl = MANUAL_MODE) oled_showChar(14,30,M,12,24,1);elseoled_showChar(14,30,T,12,24,1);oled_showPicture(49,43-15,bmp_lockRCLock,30,30

35、); oled_showPicture(94,43-15,bmp_flightModeconfigParam.flight.mode ,30,30);GUI_Circle(94+15,43,16,1);GUI_Circle(94+15,43,17,1);/* 按鍵處理 */u8 keyState = getKeyState();if(keyState = KEY_J1_SHORT_PRESS)/ 一鍵起飛、降落if( RCLock=false & isMFCanFly=true &(configParam.flight.ctrl = ALTHOLD_MODE | configParam.fli

36、ght.ctrl = THREEHOLD_MODE) )sendRmotorCmd(CMD_FLIGHT_LAND, NULL);delay_ms(3000);flag = 1;/ 向前糾正delay_ms(1000);flag = 2;/ 向左糾正delay_ms(1000); flag = 0;/ 懸停 15S delay_ms(5000); delay_ms(5000); delay_ms(5000);flag = 1; / 開始進入,前進delay_ms(6000);delay_ms(1000);flag = 0;/ 第 1 次delay_ms(2000);flag = 2; / 向左

37、delay_ms(6150);delay_ms(2000);flag = 0;delay_ms(2000);flag = 3; / 向后delay_ms(6000);flag = 0;delay_ms(2000);flag = 4; / 向右delay_ms(6000);delay_ms(1500);flag = 0;delay_ms(2000);keyState=KEY_J1_SHORT_PRESS;if(keyState = KEY_J1_SHORT_PRESS)/ 一鍵起飛、降落 if( RCLock=false & isMFCanFly=true & (configParam.flig

38、ht.ctrl = ALTHOLD_MODE | configParam.flight.ctrl = THREEHOLD_MODE) )sendRmotorCmd(CMD_FLIGHT_LAND, NULL);else if(keyState = KEY_L_SHORT_PRESS)/ 緊急停機sendRmotorCmd(CMD_EMER_STOP, NULL);else if(keyState = KEY_J2_SHORT_PRESS)/ 進入微調界面 if( RCLock=false & isMFCanFly=true)trimFlag = true;runBeepAcktion(TRIM

39、_BEEP); setShow_ui(TRIM_UI);else if(keyState = KEY_R_LONG_PRESS)/ 調試界面/if(RCLock = false)setShow_ui(DEBUG_UI);else if(keyState = KEY_R_SHORT_PRESS)/ 一鍵翻滾if( RCLock=false & isMFCanFly=true &MFLowPower=false & configParam.flight.flip=FLIP_ENABLE& configParam.flight.ctrl != THREEHOLD_MODE) /* 光流定點模 式,關閉空翻 */flipFlag = !flipFlag; flipBeepTimeOut = 0; if(flipFlag = true) runBeepAcktion(FLIP_BEEP);else stopBeepAcktion(FLIP_BEEP);else if(keyState = KEY_J2_LONG_PRESS)if(RCLock = true) setShow_ui(MENU_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論