PX4飛控之PWM輸出控制

2021-07-26 08:30:33 字數 1129 閱讀 2198

多旋翼電調如好盈xrotor,dji通用電調等都支援pwm訊號來傳輸控制訊號。常用的400hz電調訊號對應週期2500us,一般使用高電平時間1000us~2000us為有效訊號區間,即1000us為最低輸出,2000us為最高輸出,鎖定(停轉)訊號一般取900us(或950us,太低電調會判斷成無訊號,太高容易誤判成有輸出而意外啟動)。一般電調也都支援有效信區間設定,可以在典型值附近自定義。

為了保證安全,電調上電後需要先檢測到鎖定訊號,即900us左右的高電平時間,上電後檢測到鎖定訊號電調會長叫一聲(這個聲音通過電機發出來的,電動機跟揚聲器原理上很像,接上聲音頻號放放**也是毫無壓力的==),從鎖定訊號到最低輸出訊號(1000us)需要有加速過程(即分多次慢慢增加到1000us),加速完成後,進入開啟模式,這時就可以在有效訊號區間內直接輸出給定值。如果電調上電後飛控直接輸出有效訊號或從鎖定訊號直接跳變到有效訊號都會導致電調進入報警模式(急促「嘀嘀嘀」報警聲),而且控制器的輸出訊號區間(如-1~1)也需要量化到電調的有效區間,因此需要有乙個電調控制程式來啟動電調和量化有效訊號。分享下px4的電調控制程式。

enum ;
void pwm_limit_init(pwm_limit_t *limit)

switch (limit->state) 

// 開機等待50ms後再進入鎖定狀態,在鎖定狀態下才能進入其他狀態

if (hrt_elapsed_time(&limit->time_armed) >= init_time_us)

}break;

case pwm_limit_state_off:

if (armed)

break;

case pwm_limit_state_ramp:

if (!armed) else

if (hrt_elapsed_time(&limit->time_armed) >= ramp_time_us)

break;

case pwm_limit_state_on:

if (!armed)

break;

default:

break;

}

PX4飛控bootloader編譯

以前在使用pix4中,bootloader是在出廠的時候預設燒寫好的,我們直接可以通過usb更新韌體,但是要做二次開發過程中,我們需要編譯 並進行燒寫,我們以前用的編譯命令是預設v2的命令,也沒有問題,但是最近更新到了1.8.0的版本,據說從1.7.0的版本做了一些更改,主要是flash的問題,1....

PX4飛控之編譯環境搭建

本篇文件主要參考px4官方開發教程結合自身實踐過程中遇到的問題,介紹linux下px4飛控編譯環境搭建 韌體編譯 韌體上傳等。注 在ubuntu14.04 ubuntu16.04 ubuntu16.04麒麟版下親測可用 一 環境搭建及工具鏈安裝 1 許可權設定,將當前使用者組許可權設定為超級許可權 ...

ZYNQ飛控設計 PX4開發環境搭建

配置自己的工作環境 source tools xilinx vivado 2018.3 settings64.shpx4使用新增環境變數。export path opt gcc arm none eabi 9 2020 q2 update bin path我注釋了vivado的指令碼後,編譯成功。l...