色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

查看: 24472|回復(fù): 0
打印 上一主題 下一主題

【飛控開發(fā)高級(jí)教程1】瘋殼·開源編隊(duì)無人機(jī)-飛控整機(jī)代碼走讀、編譯與燒寫

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-7-27 11:02:22 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
COCOFLY教程
——瘋殼·無人機(jī)系列
飛控整機(jī)代碼走讀、編譯與燒寫





圖1


一、代碼架構(gòu)
  飛控的整體代碼工程由 8 個(gè)工作組組成,分別是 Ctrl、Driver、VL53L1X、STM32_LIB、USB、USB/Lib、StartUP 以及 Drv_Point,如下圖所示。


圖2
  各個(gè)組的具體的代碼功能如下表所示。


表1

二、代碼走讀

  系統(tǒng)的主函數(shù)部分是整個(gè)代碼的起始運(yùn)行位置,在主函數(shù)內(nèi)主要做兩個(gè)事情:1、初始化外設(shè)及參數(shù),2、輪詢線程。


圖3
  系統(tǒng)的每一個(gè)線程都已經(jīng)分配好了運(yùn)行周期,在不同的線程里執(zhí)行不同的事情,線程的切換通過函數(shù)指針的形式切換,而系統(tǒng)的運(yùn)行時(shí)間由 sysTick 提供即系統(tǒng)的“滴答”時(shí)鐘。各個(gè)線程的入口如下。


圖4
  分別有 1000ms 周期的任務(wù)、50ms 周期的任務(wù)、20ms 周期的任務(wù)、10ms 周期的任務(wù)、6ms 周期的任務(wù)、4ms 周期的任務(wù)、3ms 周期的任務(wù)以及 2ms 周期的任務(wù)。
  整個(gè)飛控可以平穩(wěn)飛行,重點(diǎn)在于控制部分,即工作組“Ctrl”里面的代碼。如下圖所示為“Ctrl”組的代碼框架。


圖5
  其中與遙控器、上位機(jī)的數(shù)據(jù)通信處理包含在 Data_Transfers.c 內(nèi)。里面無非就是對(duì)數(shù)據(jù)包進(jìn)行拆解包、封裝包等。如下圖所示為對(duì)接收到的遙控器數(shù)據(jù)進(jìn)行解包分析的代碼。














  三軸數(shù)據(jù)的獲取處理在 mpu_perpare.c 內(nèi),如下圖所示。




圖15
  PID 控制相關(guān)代碼集中在 Ctrl.c 及 Alt_Ctrl.c 內(nèi),其中 Ctrl.c 負(fù)責(zé)角度環(huán)、角速度環(huán) PID 控制,而 Alt_Ctrl.c 則負(fù)責(zé)高度環(huán)、高度速度環(huán)的 PID 控制。
  IMU.c 和 MotionCal.c 是保證整個(gè)飛控平穩(wěn)飛行的重要一環(huán),這兩個(gè) c 文件主要負(fù)責(zé)飛控的姿態(tài)解算、數(shù)據(jù)融合處理等。


  工作組“USB”以及“USB/Lib”,負(fù)責(zé)通過 STM32 自帶的 USB,虛擬出串口,方便與上位機(jī)進(jìn)行通信。
  此外為了保護(hù)開發(fā)者的勞動(dòng)成果,Player_Flight.lib 還封裝了秘鑰驗(yàn)證激活算法、多機(jī)編隊(duì)控制、水平方向的速度和位置環(huán)的 PID 控制以及 3D 翻滾控制代碼。
  保存、編譯最后把代碼燒寫的飛控主板中,配合遙控器就可以正常使用了。如下圖所示 1 為保存、2 為編譯、3 為下載燒寫。


圖16




如需定制開發(fā),請(qǐng)通過官網(wǎng)“瘋殼”網(wǎng)頁底部的“聯(lián)系我們”進(jìn)行聯(lián)系

文件下載請(qǐng)點(diǎn)擊: 【1】飛控整機(jī)代碼走讀、編譯與燒寫.pdf (1.17 MB)

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表