前言
首先十分感謝B站TASKBL up主的視頻教程以及他的耐心指導,視頻鏈接
1.材料清單
ST-LINK V2下載器、USB數據線、電烙鐵、杜邦線及插針若干。
2.電路改造
拆下5顆固定螺絲,用電烙鐵焊除4根電源線,取下整塊電路板。
主板底面需要拆除一顆8腳芯片——SN65HVD232D,因其會影響USB燒寫,然后如圖將其中四個引腳引出,其中
USB_DP——USB數據線綠線
GND ——USB數據線黑線
VCC ——USB數據線紅線(這里最好用AMS1117-3.3將USB的5V轉為3.3V,因為芯片供電是2.6-3.6V)
USB_DP——USB數據線綠線
可以采用4P接口,方便拆裝操作,USB數據線與電腦連接進行調試。
下一步去除圖中4顆螺絲,拆開主板正面對應的小黑塊(小心排線),去除里面的加熱片,因為刷完BF之后其會一直加熱燒壞芯片。拆除之后可用熱熔膠或者704硅橡膠把里面填充一下。
3.燒寫Betaflight固件
硬件改造完成后,就可以開始往主控里燒寫程序啦~
將ST-LINK下載器的引腳與SWD下載接口連接,對應關系如圖所示。
將下載器插入電腦,打開STM32 ST-LINK Utility軟件,點擊連接;
相關資料下載鏈接:
點擊Target》Program...;
打開Betaflight固件hex文件(在網盤鏈接文件中),點擊燒寫。這里筆者使用的是4.0.0固件,高版本的固件無法啟動筆者的電機,不知其他機器如何。
燒寫完成就可以將ST-LINK斷開連接了,進入下一步Betaflight設置。
4.Betaflight飛控設置
打開Betaflight Configurator調參軟件,將之前接好的USB數據線連接電腦,選擇對應端口,點擊連接;
沒有開始設置之前是這樣的界面,主控沒有識別到傳感器,所以需要進行CLI命令行調試。
點擊CLI(命令行),將下面的命令粘貼,回車執行命令,之后輸入save,回車保存配置;
CLI命令段:
# start the command batch batch start board_name STM32F405 manufacturer_id STM32F # name: STM32F # resources resource MOTOR 1 B06 resource MOTOR 2 B09 resource MOTOR 3 B08 resource MOTOR 4 B07 resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A02 resource SERIAL_TX 4 A00 resource SERIAL_TX 6 C06 resource SERIAL_RX 1 A10 resource SERIAL_RX 1 A10 resource SERIAL_RX 4 A01 resource SERIAL_RX 5 D02 resource I2C_SCL 2 B10 resource I2C_SDA 2 B11 resource LED 1 A08 resource BEEPER 1 B05 resource SPI_SCK 1 A05 resource SPI_SCK 2 B13 resource SPI_SCK 3 C10 resource SPI_MISO 1 A06 resource SPI_MISO 2 B14 resource SPI_MISO 3 C11 resource SPI_MOSI 1 A07 resource SPI_MOSI 2 B15 resource SPI_MOSI 3 C12 resource ADC_BATT 1 C02 resource ADC_CURR 1 C01 resource BARO_CS 1 A15 resource FLASH_CS 1 B12 resource GYRO_EXTI 1 C07 resource GYRO_CS 1 B12 # master set gyro_lowpass2_hz = 300 set dyn_lpf_gyro_min_hz = 240 set dyn_lpf_gyro_max_hz = 600 set acc_calibration = -34,198,-36,1 set mag_spi_device = 1 set mag_hardware = NONE set baro_spi_device = 3 set mid_rc = 1520 set min_check = 1200 set rc_smoothing_derivative_type = BIQUAD set serialrx_provider = SBUS set adc_device = 2 set blackbox_p_ratio = 4 set min_throttle = 900 set motor_pwm_protocol = OFF set failsafe_throttle = 1100 set failsafe_procedure = AUTO-LAND set current_meter = ADC set current_meter = ADC set battery_meter = ADC set beeper_inversion = ON set beeper_od = OFF set yaw_motors_reversed = ON set deadband = 2 set yaw_deadband = 2 set pid_process_denom = 16 set system_hse_mhz = 8 set dashboard_i2c_bus = 1 set flash_spi_bus = 2 set gyro_1_bustype = SPI set gyro_1_spibus = 2 set gyro_1_sensor_align = CW0FLIP set gyro_1_align_pitch = 1800 profile 0 # profile 0 set dyn_lpf_dterm_min_hz = 84 set dyn_lpf_dterm_max_hz = 204 set dterm_lowpass2_hz = 180 set dterm_lowpass2_hz = 180 set acro_trainer_angle_limit = 25 set p_pitch = 110 set i_pitch = 135 set d_pitch = 92 set f_pitch = 171 set p_roll = 101 set i_roll = 128 set d_roll = 84 set f_roll = 162 set p_yaw = 72 set i_yaw = 135 set f_yaw = 144 set d_min_roll = 48 set d_min_pitch = 53 rateprofile 0 # rateprofile 0 set roll_rc_rate = 95 set pitch_rc_rate = 95 set yaw_rc_rate = 95 set roll_expo = 10 set pitch_expo = 10 set yaw_expo = 10 set roll_srate = 10 set pitch_srate = 10 set yaw_srate = 10 save
現在就可以識別到傳感器了,更多命令可以參考
將無人機水平放置,點擊校准加速度計進行調平;
端口設置里面,設置UART4波特率,啟動UART5串行數字接收機(與SBUS接收機通信);
配置界面中,設置混控類型為Quad X 1234並打開反轉電機轉向,這樣才與無人機的電機轉向匹配;
電調協議為PWM,打開MOTOR_STOP,防止啟動時發生意外;
接收機選擇串行數字接收機,協議選擇SBUS;
AIRMODE的作用是在零油門時依然能夠維持飛機的姿態,但是會在飛機解鎖后直接啟動電機,建議開啟。
PID參數按照默認即可,飛行很穩定;
Rate參數可按圖中設置,使遙控器撥桿沒有那么靈活,這款無人機較重不需要過大角度反饋;
后來又調節的一套PID,只調整了橫滾、俯仰的P和D值
PID的作用概述:
1、P產生響應速度和力度,是I和D的基礎
過小響應慢(雖然無震盪)
過大會產生振盪且不斷發散
2、D抑制過沖和振盪,抵抗外界的突發干擾,阻止系統的突變。
過小系統會過沖
過大會減慢響應速度(雖然不引起過沖)
3、I在有系統誤差和外力作用時消除偏差、提高精度,同時也會增加響應速度,產生過沖
過小時消除偏差的速度慢
過大會產生振盪
進入接收機界面,撥動搖桿,可以看到對應通道值的變化,搖桿低位閾值要設置的比油門最小值大一些,否則無法解鎖;
設置解鎖通道和自穩開關,對於新手來說一定要打開自穩開關,否則飛機很難控制;
其他模式可以自行摸索,這里給出一些說明(摘自
Horizon Mode (水平模式) :也是自穩模式,但是可以翻滾,感覺上和玩具的一建翻滾差不多。
Acro Mode或者Rate mode (手動模式或者比率模式) :根據遙控器桿的輸入進行相應比率的動作。真正意義 上的飛行模式就以上三種:角度模式、水平模式、手動模式,其他均為輔助飛行的模式。
Beeper (蜂鳴器) :當你的通道輸出某個值時,蜂鳴器會發聲,如果設置了電調的話,電調也會發聲。
Airmode (空中模式) :當油門]打到最低時,還可以控制飛機。如果配置表中勾選了即默認開啟,並且在模式列表中隱藏。
Anti-Gravity (反重力模式) :1 飛行時模擬無重力。 通過檢測油門]變化來實時干預PID參數中的|值運算,提供大機動大油門狀態下的飛機l值的穩定性。
一般來說Airmode和Anti-Gravity默認開啟, 增加飛行的順滑。
Blackbox Start/Erase (黑匣子開啟/清除) :名字很明顯了。
Camera Control 1, 2, 3 (相機控制) : 基本用不到,沒描述。
OSD Disable SW (OSD顯示去除鍵) :去除屏幕上的OSD顯示。
Pre-arm (預解鎖) :為了防止解鎖鍵誤按,多設置一個開關鍵, 解鎖后可以關掉。
Flip Over After Crash (反烏龜) :炸機后翻身,需要支持Dshot的電調。
VTX Pit Mode (圖傳降功率) :圖傳功率將會降到接近0,為了防止干擾其他玩家。需要圖傳支持OSD調參,並設置好。
Failsafe (失控保護) :手動進入失控保護,而不用等遙控器失控。需Betaflight另設置失控保護。
FPV angle mix (攝像頭角度補償) :簡單的來說,就是穿越機的攝像頭-般都是朝上一 個角度。這個攝像機角度軸線和機身軸線有一個角度。如果飛機以機身角度橫滾,那么從你的攝像頭里面看出去會混合一個俯仰角度進去, 因為兩個軸線不重合。
Baro或alt hold (定高模式) :也就是barometer (氣壓計)的意思,使用氣壓計定高。
Telemetry (遙控信號) :資料找不到Headfree (無頭模式或簡單模式) :當機頭朝某個方向解鎖,則方向桿向上打則是飛往那個指向,此時打油方向桿機頭會轉動,但方向桿向上打還是往那個方向飛。
Headadj (頭調整模式或超級簡單模式) :不管機頭往哪個方向朝,向桿向上打則是往你起飛點遠處飛,向上打則是往你起飛點飛。(好像要GPS ,我只試過apm飛K控)Paralyze (癱瘓模式) :團隊賽時,使用備用機,同時為了防止解鎖墜毀的飛機。當在鎖定時
可以啟動,啟動后關閉模式改變、圖傳改成不常用頻段且低功率輸出、關閉遙控信號。解鎖時
會檢測癱瘓模式是否開啟。
Acro trainer (手動模式練習) :和手動模式-樣,但是有角度限制,新手可以慢慢加大限制角度。
不裝螺旋槳的情況下,打開我已了解風險,上電拖動滑塊,對應通道的電機即可旋轉。用手輕觸電機側面,判斷電機轉向是否與軟件中相同;
所有設置已經完成了,現在即可試飛啦~
友情提醒:接非原裝電池的話,只能2-3S電池,因為主板電壓轉換芯片耐壓只有16V,4S電池會將其燒壞!
解鎖電機前要把油門按到最低,起飛時緩慢抬油門(因為原裝遙控器油門是自動回中的)。
5.更換遙控器方法
官方說原裝遙控器只能遙控200m,所以筆者更換了其他遙控器。取下原裝接收機,如圖引出主控的SBUS引腳;
按照下圖焊接取反電路,即可實現對接其他遙控器。
如圖為3.3V焊點,5V電壓可以使用L7805將電源降壓獲得。
6.焊接蜂鳴器
這一步可跳過,不影響實際飛行,只是方便飛手判斷飛控狀態。但是這一步焊接需要一定的焊功,引腳很容易粘連,一定要使用尖頭烙鐵!筆者就差一點翻車。如圖焊接蜂鳴器電路即可。
7.原裝電池改造
STM32F405RGT6主控的引腳封裝及資源使用如下:
-----------------------------------祝爽飛!----------------------------------
筆者也將教程上傳至B站(
---------------------------------------------------------------------------------
相關資料下載
鏈接:
最后再次感謝B站TASKBL up主提供的支持與幫助!