2023年2月8日 星期三

Omnibus F4 Por 安裝Ardupilot

 


這兩張圖超級重要
固件我選擇這個版本 https://firmware.ardupilot.org/Plane/latest/omnibusf4pro/
看起來,手邊這款應該是Por版本
Ardupilot的說明頁其實就講得蠻清楚的
https://ardupilot.org/blimp/docs/common-omnibusf4pro.html

安裝沒甚麼問題,安裝GPS、Compass、Telemetry最重要的是Compass的I2C要有拉升電路。參看https://www.flightcoach.org/omnibus-f4-v3/

手邊的兩個M8N看起來都沒有這個電路,而老曹的獨立compas居然有,所以最後採用老曹的GPS+Compass

安裝好之後如下


最後是compass安裝方向跟設定
請看這裡 https://ardupilot.org/copter/docs/common-external-magnetometer-for-improved-performance.html

最後...接上servo就把MPU6000搞掛了....2023/2/8 搞了一天 最後收工
官方文件有註記如何使用外部電源供應伺服器


23/2/12
默认时,Omnibus F4 Pro烧写APM飞控后,电池检测器没有设置的。想要屏幕上显示电池电压和电流信息,就需要设置一下。

设置信息如下:
BATT_MONITOR=4
然后重启:
重启后,继续设置:
BATT_VOLT_PIN 12
BATT_CURR_PIN 11

以上两步很重要,设置引脚。

BATT_VOLT_MULT 11.0

然后,到mission planner主界面,就可以看到电池电压电流信息了。不过可能电池电压此时的信息不一定对,剩下的就是校准电压。

用万用表量下实际电池电压,然后填在下图“测量电池电压”这。
————————————————
版权声明:本文为CSDN博主「浅浅的小草」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xjhappyarrow/article/details/118634994

23/6/21
關於5v接腳為何只量到4.7v以及為什麼5v的pin沒有辦法有足夠電流供應舵機使用
看這個影片
https://youtu.be/O1D0BKL8bDA
雖然板載BEC有足夠電流,但是連到5v接腳的時候經過了一個基鈉二極體,使得整個供電被壓降而且最大電流也被限制。

這也解釋為什麼Ardupilot官網建議使用外部電源來供應舵機使用。

2023年1月28日 星期六

VTOL PID調整

英文原版

建议参考官方文档或者雷迅中文版http://doc.cuav.net/tutorial/copter/

一起食用,风味更佳~~!


为治疗大佬的急躁症,开出一剂特效药方~~直接下载最下方的计算器,填入详细信息直接生成·保守·保守·保守·的参数,飞行不满意在来看详解慢慢调整




MOT_BAT_VOLT_MAX    电芯最高电圧,一般电芯设置4.2,高压电芯一般设置4.35(4.3-4.4根据实际设置)*电芯数量(3S*3;4S*4);


MOT_BAT_VOLT_MIN   电芯的最低电压,一般设置3.3,高压电芯设置3.5,也可以高一点;使用18650或者21700电芯的可以设置到3*电芯数量(3S*3;4S*4)

(本人小白,理解可能不够透彻,此二参数可能涉及到电压变化时的PID补偿,请指正)


MOT_THST_EXPO     推力曲线

   如下图,根据螺旋桨尺寸设置,穿越机5寸桨设置0.55;

                                    常见的大疆2212/2312电机9045/1038桨设置0.65;

                                    6系电机20寸桨如大疆E2000动力可以设置0.75

                                    其他尺寸根据下图以此类推

                                      

../_images/tuning-process-instructions-1.hires.png


电机部分

MOT_SPIN_ARM   电机解锁时的怠速转速,指的是解锁起飞前的转速,如果怠速太高降低该值,如果解锁后电机不转或由于转速太低卡顿的情况增大该值,小比例调节,一次不要加的太多以免发生危险


MOT_SPIN_MIN   可以理解为飞行时的最低转速,注意区分上一条参数,这里指的是飞机在飞行时的转速,建议比解锁时转速大三分之一以上;有的同学动力过剩,拉低油门还往上飞,应调小该值


INS_ACCEL_FILTER  加计滤波,10-20,大桨调小小桨调大,一般默认


INS_GYRO_FILTER  陀螺滤波, 5寸80Hz ,10寸 40Hz , 20寸20Hz 

官方解释:https://ardupilot.org/copter/docs/parameters.html#ins-gyro-filter 





ATC_ACCEL_P_MAX

ATC_ACCEL_R_MAX

10寸110000,20寸 50000 , 30寸20000 


ATC_ACCEL_Y_MAX     10寸27000, 20寸18000 ,30寸 9000  


必改,疗效显著,但我使用的是偏方,大家还是按官方的来·······

P/R/Y具体参数参考下图






本疗程结束,开始试飞,基本常识不在复述、、、比如飞控校准,电机顺序、转向,螺旋桨正反,遥控通道正反等...自查自纠


自稳模式解锁,慢慢给油,飞机线性拉起不要飞太高不要有大动作,观察飞机姿态是晃还是抖,是大动作还是小动作

如果离地前就感觉要翻,立即收油上锁,参照上一条检查,一般是电调插错了火者螺旋桨装错

http://47.110.9.138/zb_users/upload/2021/01/202101061609922091692054.xls


T-1 Ranger VTOL Ardupilot設定流程

 參考至這個影片,摘錄重點


一開始校正跟遙控器設定就跳過去了

新增第二個副翼舵機,兩傾轉舵機以及三個馬達

https://youtu.be/NJMIgvoN6aU?t=133

這段自己看影片,沒甚麼特別的。

接下來是參數設定

Q_ENABLE = 1,重開機,重新連接(或者右邊有Reflash Params的按鈕) 等待新的參數顯示。

Q_FRAME_CLASS = 7 

Q_TILT_ENABLE = 1,重新開機,重新連線等待新參數顯示

Q_TILT_TYPE = 2 (Vectored)

Q_TILT_MASK = 3 (啟用tilt servos)

設定三個飛行模式 QSTABLE,FWA,MANUAL

首先在FWA模式檢查所有伺服器動作是否正常,在Servo Outputed頁面反向

QSTABLE模式檢查馬達是否達到超過垂直一定角度(12-15度),在Servo Output頁面調出最大角度,直到螺旋槳不會擊中飛機。

https://youtu.be/NJMIgvoN6aU?t=582

FWA模式是否水平,否則在Servo Output頁面調整

接下來再QSTALBE調整,Q_TILT_YAW_ANGLE,讓馬達垂直

https://youtu.be/NJMIgvoN6aU?t=630

到這邊應該大致上可以了,剩下來就是PID。

其他建議調整參數

Q_ASSIST_SPEED = -1,即使在最低速度時也不啟動馬達來協助飛行,其實是有道理的,因為傾轉馬達如果要協助浮力的話,會瞬間減速,因為馬達要抬起來。

Q_M_BAT_VOLT_MAX,Q_M_BAT_VOLT_MIN 設定電池最高最低電壓,如果沒有電池感應器就不用設定

Q_M_PWM_MAX,Q_M_PWM_MIN 這個是ESC的PWM訊號

Q_M_PWM_TYPE ESC通訊協定 

Q_OPTIONS 選Level Transition, (在轉換期間限制角度...難怪不太轉的動) ThrLandControl, (啟用油門控制著陸速率...不懂)  EnableLandReposition (enable pilot controlled repositioning in AUTO land.Descent will pause while repositioning 不懂)

https://youtu.be/NJMIgvoN6aU?t=818

Q_RTL_ALT = 15,回家的高度

Q_RTL_MODE = 1

Q_TRANSITION_MS = 3000 原本是5000 ....轉換時間(不太懂)

Q_WVANG_HGT_MIN

Q_YAW_RATE_MAX = 240 應該是YAW的最大旋轉速度吧

剩下來應該就是PID了


2023年1月5日 星期四

Tailsitter Planes Setting

 這次要設定的目標是長這樣


沒有控制面是特色

設定參考頁面https://ardupilot.org/plane/docs/guide-tailsitter.html

1. Q_TAILSIT_ENABLE設置為2(對於 Copter Motor Only Tailsitters 的特殊情況(沒有升降舵或副翼/升降舵的控制面))來啟用

ArduPilot 將 tailsitters 細分為兩大類:

  • 矢量尾翼

  • 非矢量尾翼, 在 Non-vectored 中有兩個子類別,Single/Dual Motor 和 CopterMotor:我們要採用的是CopterMotor 使用三個、四個或更多電機,並以更像直升機的方式運行。這些可能有也可能沒有可用於固定翼飛行的控制面以進行控制。** 沒有它們的 CopterMotor 尾翼(即只有一個沒有控制面的升力翼)在固定翼飛行模式下必須始終使用它們的電機來提供控制。設置Q_TAILSIT_ENABLE = 2 會自動執行此操作。**

Q_TAILSIT_MOTMX = 15 (啟動motor 1- 4)
Q_FRAME_CLASS = 1 (quad)
Q_FRAME_TYPE = 17 (X) ***
Q_A_ANGLE_BOOST = 0 未能禁用此功能將導致油門隨著機頭下沉而減小,使機頭進一步下沉並導致撞車。

有兩種直升機尾翼特定配置可供使用,它們為直升機式電機提供無偏航扭矩 (NYT) 控制:Q_FRAME_TYPE = 15 (Plus) 和 =16 (X)。

(從上方俯視鼻子)

NYT QUAD PLUS 電機尾翼

電機由 M1-M4 輸出控制:

../_images/plus-copter-quadplane.jpg

NYT QUAD X 電動尾翼

電機由 M1-M4 輸出控制:

../_images/x-copter-quadplane.jpg
飛控的安裝方向依照飛機形式朝機頭方向
***搞死人,要注意馬達方向,跟常見的Quad不同

這邊有寫到啟動的方式: 簡單的說,要水平啟動,然後再立起來
  • Power up horizontally, and allow the autopilot to begin initialization in this position. After the IMUs tilt initialization is completed (usually in the first ten to fifteen seconds or so), the Tailsitter can be set vertically for the remainder of the initialization (ie after GPS lock and EKF is using the GPS) and then armed.

  • Or, if you get the Pre-Arm failure above, lay the Tailsitter down horizontally for 10-30 seconds to allow the various AHRS subsystems to synchronize. After that it can be raised and arming should proceed normally.

23/01/10

機體的部分依照進度慢慢完成當中,只有幾個小地方沒注意到。像是3mm碳纖棒開的孔3.2mm是不夠的,應該需要到3.4mm
另外就是艙蓋沒有設計固定的方式

至於飛控,PID的部分已經調整的差不多了。原來是這個P值超低,所以預設值放上去都一直震動。而YAW還是不受控制,除非YAW的問題能夠解決,不然應該會失敗。
我有找到一篇討論,跟我的問題一模一樣
https://discuss.ardupilot.org/t/quad-motor-tail-sitter-4-1-yaw-response/77025
最後一個回答是
I suggest to increase Q_A_ACCEL_Y_MAX to 110000.
明天試試看,希望有用。

23/01/11 
還是沒用,而且我把油門用手壓住只轉YAW,然後觀察飛機的反應,基本上YAW是完全沒動作的。
想了很久...我覺得應該是我自己完全會錯意了

Q_FRAME_TYPE = 15 (Plus) 和 =16 (X) 這兩種構型應該是不提供YAW控制
我原文看了幾次才慢慢了解 之前以為是為了無舵面飛機特別提供
其實原文的意思是早期的版本並沒有YAW控制功能,後來新版有了,但是為了給舊版用習慣的人可以沿用舊的控制,所以增加這兩種構型。

好吧...等等調整一下 明天測測看


23/01/13
很順利,沒錯,就是搞錯,Q_RAaME_TYPE = 1就OK了
並且做最後組裝。
幾個洞的角度跟大小沒調整得很好,但是無礙。我會把3D圖修正一下。
底蓋廢棄,因為在畫的時候沒注意到低點是主翼後緣,所以底蓋廢棄。
倒是在測試的時候,發現飛機模式時候,YAW的偏行不是很明顯。所以我會加上垂直翼以防萬一。





23/01/19
前幾天去試飛,還是一樣發生原地自旋。一直以為已經解決。回來看log也是找不到問題。主要是看磁羅盤跟震動,好像都在範圍之內,發生自旋的時候,IMU也是有正確偵測到。
後來在飛場還發顯馬達運轉不良。原本以為是內部線圈有斷掉,但回來之後怎麼檢查都找不到問題,最後整個韌體重刷過就神奇恢復。
難道是馬達的問題?不知道,反正今天換上新馬達,有空重新測試。

23/1/21
今天去後山調參,悟到了一個參數值I的重要。之前都只調整P跟D,I值要嘛很低,不然就乾脆留0。今天把飛機拿在手裡的時候發現I值的重要。
I值主要是提供緩慢的回到初始位置,所以如果把I值設成0的話,用手去轉Yaw,轉的時候會有抵抗力,可是手一鬆他會停住。如果I值有設定的話,不只抵抗增加,手放開還會回到最開始施力的位置。重要的是它會增加抵抗力。
所以原地自轉的問題算是找到答案了,就是I值沒設。
另外今天也測試了Q_HOVER跟Q_LOITER,結果高度完全不行。沒有氣壓計高度變動得太厲害。

23/1/25
考慮許久,還是試著增加氣壓計。
相關資料
無氣壓計警告
https://ardupilot.org/copter/docs/common-speedybeef4.html
改用GPS為高度測量
https://ardupilot.org/copter/docs/common-gps-for-alt.html#common-gps-for-alt
https://ardupilot.org/copter/docs/common-non-gps-to-gps.html#common-non-gps-to-gps
https://ardupilot.org/copter/docs/common-apm-navigation-extended-kalman-filter-overview.html

23/2/2
今天氣壓計到貨,晚上弄了很久都偵測不到。同一個bus上的compass沒問題。單獨把她拿到arduino上去讀資料也ok。找不出原因....
決定放棄用這塊FC來做這個計畫,還是弄回pixhawk吧,省的白做好多工。

23/2/4
改成pixhawk之後去測試,終於把高度定住了。一整個差很多....
另外還打算測試飛行模式的控制
結果發現FWA可以控制,但是stable模式則完全沒反應。另外嘗試調整了一下PID...好像沒反應,可能統一由Quad那邊的PID調整吧??





這邊在閱讀討論區,找到一些有用資訊
你好@kd0aij,@iampete,@tridge
我正在建造四翼雙翼飛機尾翼,在從 qloiter 到 fbwb 的過渡過程中遇到了一些問題。當我切換到 fbwb 時,轉換以 45 度(默認)完成。然後它繼續俯仰直到到達地平線,因為所需的俯仰幾乎為零。這種轉變非常快,我的飛機墜毀了幾次。有什麼方法可以使過渡緩慢而平穩。另外,如果我想在向前飛行時固定俯仰角(非零值),是否可以這樣做?因為目前,fbwb 控制器希望所需音高為零。我想看看我的飛機在固定高度下的俯仰角與速度圖的表現。我想以 10 度的增量從 90(零速度)到 10 度(我猜是最快的速度)改變俯仰,並研究所消耗的功率如何變化以找到最佳俯仰角。我希望你能在這方面幫助我。您的幫助將不勝感激。

  • 如果您沒有足夠快地達到飛行速度,您可以將過渡角度 Q_TAILSIT_ANGLE 增加到大約 60 度……您還可以(在 master 中)確定從垂直到 60 度所需的時間:Q_TAILSIT_RAT_FW
  • FW 中的俯仰角從自動駕駛儀的角度(即機身框架)始終為 0,但是,您可以通過僅在 Mission Planner 中將飛機保持在所需角度進行校準水平來更改迎角(地球框架中的俯仰角)攻擊(通常在機翼弦上 3-5 度,相對於地平面參考),那麼您將需要調整 Q_TRIM_PITCH 參數以補償 VTOL 模式下的垂直為 0 俯仰,或者您可以使用 TRIM_PITCH_CD 參數僅影響FW 模式下的俯仰調整,然而,這不會反映在 OSD 或 Mission Planner VHR_HUD 顯示中,並且看起來自動駕駛儀總是偏離水平,所以我更喜歡第一種方式,我自己
    另一種設置俯仰微調而不是使用 Mission Planner 中的 LEVEL Calibrate 按鈕的方法是手動設置 AHRS_TRIM_Y 值……以弧度為單位,因此您可以在飛行到 FBWA 中的不同值時設置它並查看需要什麼油門以保持恆定高度……然後您可以查看地面速度的對數值(假設您進行逆風和順風通過以及空速的平均值)與油門與您使用 AHRS_TRIM_Y 修剪的俯仰角
另外關於Q_OPTIONS bit 7 跟8

控制面

雖然通常不推薦,但可以駕駛沒有控制面的尾翼飛機。應注意首先讓車輛在懸停模式下飛行良好。

  • Q_OPTIONS位 7:強制Qassist將強制車輛在所有飛行模式下使用直升機控制器。

  • Q_OPTIONS位 8:Mtrs_Only_ Qassist允許對電機使用直升機控制器,但將任何控製表面留在平面控制下,這允許控製表面充當電機的“微調選項卡”。

有關如何通過空速、高度、姿態和/或開關自動啟用和禁用Qassist的更多詳細信息,請參閱輔助固定翼飛行。RCx_OPTION

就算看英文也不是很懂,不過好像bit7要設定成1

另外又有看到關於 QASSIST 參數:
Q_ASSIST_ALT 0.0 ****
Q_ASSIST_ANGLE 10.0
Q_ASSIST_DELAY 0.5
Q_ASSIST_SPEED 0.0 ****

打星星的兩個比較重要 不過好像預設值就長這樣

23/02/15
大失敗,Quad模式還好,轉道FWA之後大概兩三公尺,飛機就會像發瘋一樣垂直拉起來然後在天上亂飛。試了兩次最後大墜毀。
目前已知的問題是因為面積大,在Quad模式停懸稍微有點風的時候要修正Yaw光靠扭矩是不夠的,可以看到其中一個馬達都停了還無法修正。
至於轉FWA模式為什麼會垂直拉升,我有兩個猜測,第一是要修正滾轉但是扭矩不足,已經有一個馬達停掉。
另外就是可能某個參數設錯,導致飛控以為要墜毀所以強制戒數。

參考資料
  • Tailsitter 討論串  https://discuss.ardupilot.org/t/copter-tailsitters/45514?page=39
  • QuadPlane VTOL 調整» 調整過程說明 https://ardupilot.org/plane/docs/quadplane-vtol-tuning-process.html
  • QuadPlane Setup » Tailsitter Planes https://ardupilot.org/plane/docs/guide-tailsitter.html

2023年1月4日 星期三

更新BLHELI ESC


 之前想要更新飛塔上的ESC,用BLHeliSuite怎麼連都連不上。今天不知道看到哪篇文章,才赫然發現,原來BLHeli有兩種,一個是Blheli_32另外一個是Blheli_S,我之前以為後綴32是新板,結果發現是意思是給32bit MCU用的而_S則是比較弱的MCU用的

https://oscarliang.com/choose-esc-racing-drones/#firmware

他奶奶的...原來之前工具都下載錯了

所以BLHeliSutie跟BLHeliSuit是兩種不同的工具

而更早的BLHeli config則是跟後者相同 但是功能比較簡單

OK....反正手邊4in1連不上的今天都連上去了...

而之前要刷Hobbywing Xrotor 10A成BLHeli固件的也是一換工具就OK....


相關資料: 

  • Xrotor 10A 刷Blheli文章參考這 

http://dronehitech.com/en/flash-silabs-esc-blheli-firmware/

  • 刷寫工具跟用法

https://oscarliang.com/flash-blheli-s-esc-firmware-fc-pass-through/

  • 支援的ESC列表

https://github.com/bitdump/BLHeli/blob/master/SiLabs/BLHeli%20supported%20SiLabs%20ESCs.pdf


手邊一堆的雷虎30AOPTO原來是HOBBY  Platinum Pro 30A OPTO,難怪這麼眼熟


然後得到一個驚人的結果,原來好盈出貨給雷虎的已經是刷好Blheli的電變。

應該是吧,這顆是我從箱子裡翻出來已經去皮的,可是印象中我沒有動過韌體。



2022年12月25日 星期日

Mamba F405 MK2 使用Ardupilot固件



 22/12/25

真的老了,做甚麼事情如果不寫下來,當下以為記得,其實下次再弄的時候已經忘了。

很久以前訂了Mamba F405 Mk2打算來弄VTOL,花了一點時間安裝了Arduion的firmware之後沒把過程寫下,結果今天要再接下去的的時候已經忘了怎麼燒錄的。

研究一下應該是看這篇

https://ardupilot.org/plane/docs/common-loading-firmware-onto-chibios-only-boards.html#common-loading-firmware-onto-chibios-only-boards

使用的是STM自己的燒錄軟體,韌體是https://firmware.ardupilot.org/Copter/beta/MambaF405v2/

裏頭的arducopter_with_bl.hex

with_bl是with boot loader的意思,裝好之後下次就可以用MissionPlanner來刷固件。印象中刷固件的過程好像要拔起來,按住按鈕然後再插上。

有bootloader的話好像不用....要再研究。

今天的工作是慢慢的把周邊裝上。參考這一頁

https://ardupilot.org/plane/docs/common-serial-options.html

不過依照說明SERIAL3 TX3 / RX3 UART3 (Telem1)

安裝Telemetry到Serial3就沒反應,超鳥的,最後還是去看參數


SERIAL3_BAUD是指速度38400,SERIAL3_PROTOCOL 5是用在GPS

https://ardupilot.org/plane/docs/common-serial-options.html

感覺這個頁面寫的比較準...

正在考慮要不要換回預設的port,免得之後還要拆拆裝裝。

心得: 飛控還是別隨便亂買,Mamba會用只是單純的參考Ardupilot支持的硬體列表,加上淘寶價格還不錯。買回來發現因為飛塔為了要搭配4 in 1 ESC,所以最多只能控制四個馬達,不然如果要用在VTOL,要買Matek系列的飛控,他有針對各種布局出不同的硬體,但是缺點是單價高很多,縱使MCU沒變。

另外Mamba這片飛控沒有內建磁羅盤,不過想想也合理,因為飛塔下面就是電變,內建磁羅盤大概也被干擾到不要不要。

但是它內建OSD,外掛的ESC內建電流感應。這點還是不錯的。


22/12/26

今天裝GPS。我用的是BN-880 大陸晶片,內建compass,不知道效果如何,不過之前用過隨便的晶片都還不錯,其實也不見得一定拘泥於M8N這類美國晶片。

接上去一如既往地沒反應,所以做了一條線用電腦測試。是了幾種速度發現是9600跑的是NMEA協定,用電腦測是覺得這個晶片感度真的非常好,室內都能收到訊號,只是沒辦法定位而已。



這一個頁面是關於Serial的各種參數

https://ardupilot.org/plane/docs/parameters.html#serial1-baud

https://ardupilot.org/plane/docs/common-serial-options.html




最後找到問題了,因為預設參數,GPS是設定在SERIAL4的地方,而我們新增SERIAL6也是GPS,但是在GPS_TYPE2卻是0 (none) 把它關掉。結果Ardupilot就一直嘗試用SERIAL4去通信,所以當我把SERIAL4跟GPS_TYPE2都打開的時候,畫面會顯示GPS2 No Fix, No GPS。

最後就是把SERIAL4_PORTOCOL 設定為-1關閉 GPS_TYPE2設定為0 就可以正常運作了。

最後結論是預設參數根本沒有跟這個硬體配合,所以很多外掛都要重新設定才行。

MAMBA F405 MK2 


23/01/02

今天幾乎要把測試機完成了。又升級了一次固件,發現如果是用晶片廠的工具更新的話,參數會被抹除。

另外就是這塊飛控的溫飄超大,開機沒多久偵測的姿態就偏調,用放大鏡看晶片,編號好像怪怪的,順便查看另外一塊F4V3,是直接連型號都擦掉。看來大陸最近因為貿易戰的關係,好像很多晶片都拿不到...慘!

另外研究了一下說明,感覺氣壓計好像蠻重要的,所以就順便在網路上訂了一片單獨的I2C氣壓計外掛。

如果溫飄的問題沒解,我會再買一塊飛控。

做成飛機之前先驗證飛控用


未來飛機會長成這個樣子

後記:後來有一個臉友提醒IMU的問題,他教我用酒精擦過再看,字會比較清楚。結果居然改成MPU6500,昏倒...原本MAMBA MK2是用MPU6000的阿,阿共也真佛心,反正腳位相同,尺寸相同,功能類似就直接幫忙無償升級,真是謝謝喔....

阿這樣原本固件怎麼能用啦,我剛剛查了一下,整個原始碼include的library用不同的IMU就不同了,根本不是參數調整能解決的。靠北...


23/1/3

最後查到這個討論線程 https://discuss.ardupilot.org/t/mamba-f405-mk2-gyro-accel-drift-and-increasing-ground-speed/76436

一模一樣的漂移狀況,看來是無解。

後來放棄要換回BF的固件,發現到一些事情,這塊板子的config最新有2022A跟2022B

https://raw.githubusercontent.com/betaflight/unified-targets/master/configs/default/DIAT-MAMBAF405_2022A.config

https://raw.githubusercontent.com/betaflight/unified-targets/master/configs/default/DIAT-MAMBAF405_2022B.config

比對了一下 光開頭的#define B版就比A版加了ICM42688P這個陀螺儀,而且B版也多了氣壓計

而A版本身就有MPU6000跟6500

這一頁有比較明確的比對

https://www.diatone.us/collections/flightcontroller/products/mamba-mk4-f405mini-flight-control-20mm-m2

看起來我手邊的MK2就只是換了陀螺儀 而沒有氣壓計 應該要用A版的固件,而B版則是給MK4有氣壓計的版本,而最早的MAMBAF405US_I2C則只能用在MPU6000上面。

***以上是錯的A或B都是給MK4用的

***應該要用  Firmware Target : FURYF4OSD (Legacy)

所以正確的產品資訊頁應該是這個

https://www.diatone.us/collections/flightcontroller/products/mb-f405-mk2-fc

超混亂....

23/1/4 凌晨

居然試出來了 太神奇了捷克 要用以下步驟

用 DFU模式直接刷這個版本 https://firmware.ardupilot.org/Copter/latest/MambaF405US-I2C/

DFU直接刷不能用 再用MP刷一次。比較特別的是MP會問要哪個版本,有I2C跟2022兩個版本。

先選I2C,這次地平線會有反應,可是從HW ID 居然沒辨識出ACC感應器 但是就不會飄移 可是GS一樣跳動

然後再用MP刷一次 改選2022版本 就完全解決問題了,GS沒跳動 也不會飄移

23/01/04 上午

昨晚發現的方法居然沒有辦法連上SBUS....幹

搞了一個上午 似乎更新的順序都會影響

燒I2c -> MP更新2022  IMU OK, no RC

燒2022 -> I2c 不行 IMU no ok, no RC

最後的解法

燒v2 ->MP更新,然後copter的不能用,只能用Plane的版本,目前最好的解法,同時解決IMU跟RC IN。


2022年11月19日 星期六

dRehmFlight F-35 Building Record

9/7 DIY飛行控制器....

很屌的案子,感覺不難就著手淘零件。
在等待零件的時間裡大致把程式看過,嚴格來說,這東西應該比較接近陀螺儀而不是飛控。沒有自動飛行這類功能,但是有一個很大的好處是可以隨便改變混控的方式,就可以做出一些奇怪的飛機。
目前剛完成焊接工作,不難。程式原始碼也很簡潔,而且打包的很好,完全沒遇到library還要自己安裝的困擾。
我第一台打算做https://youtu.be/tlD0C5CrWcA
這台VTOL的F-35板機,等搞定在分享。


9/12 台版Tennsy 4.0燒掉了!

今天燒掉第二片,一模一樣的狀況,都是跑大約一兩分鐘之後當掉,然後重新boot又OK,然後又幾分鐘當機,幾次之後就死掉了。

我檢查了好幾遍接線,確定都沒問題,USB 5V的接點有切掉改用外部,外部電源也很乾淨。
想了很久,我覺得唯一可能就是TLV75733P 可能規格不符合。因為我跑的程式需要很大量運算,需要的電流比較大就導致不穩定,最後掛點....
一片一千多的開發板莫名其妙的掛點了!還掛了兩片


10/7  拿到美國郵購的原廠Tennsy 4.1了,直接在原廠網站買,100%貨真價實


11/16 終於開始動工了,首先直接灌程式跑看看,然後測溫度,其實跟之前台版的差不多。

接著把之前的電路板位置稍微改一下,還好4.0跟4.1前面的腳位完全相同,所以只要把傳感器的座往後延伸一點就可以了




這次拿到的原版Teensy 4.1 跟手邊台灣買的Tennsy 4.0自系對比了電源晶片,發現除了上面的雷射刻字不同之外,腳位也不同。台灣買的有六個焊點,跟網站說明相同,但是美國版的卻有8個焊點,但是說明裏頭4.0根4.1用的都是TLV75733P。

下面是實拍照片




所以合理推斷,原廠可能有發現這個IC功率不夠後來換掉,而台灣買到的是舊版。不過無論如何,還是把供電電壓降到4.6v以防萬一。所以我用了網路上隨便買的MP1584 DC-DC可調模塊,大概跟下面的差不多,DIY了一個4.6v的BEC



除此之外,又想到也許是原本HITEC接收機輸出的是數位訊號,可能導致運算附載比較大,所以這次改用FUTABA原廠接收機,這樣輸出的PWM時脈則一定是標準RC PWM,畢竟FUTABA是規格創造者。

 11/19 好不容易把三個Hobbywing Xrotor 10A ESC焊再一起,接上電。伺服器都正常運作,但是ESC沒反應。原本以為是輸出的PWM超過上限,後來看程式碼才知道他只支援OneShot125,而Xrotor這種舊款ESC則不支援。煩死了,明天再換上新的4in1。

相關資料: 

    Hobbywing Xrotor 10A 詳細review 

    Hobbywing Xroror 10A 刷 Blheli (考慮過,太麻煩,手邊的探針尺寸不合,不過有機會還是會試試看)

11/20 無聊去看了一下Teensy的討論區,用關鍵字搜尋了一下,找到了一個比較確定的答案關於功率晶片的事情 連接

簡單的說,就是外部電源不能超過5v,如果5.6v會直接燒掉。的確,當時我手邊的電源就是5.6v。我還在想說10%的電壓差應該沒問題。看來也許台灣買的4.0將來有機會還是可以繼續嘗試,畢竟便宜一點點。

11/22 昨天看了這個影片 ,還有dRehmFlight在RCGroups裡的討論串,都提到電源品質的問題。所以今天買了電容跟二級體,依照YT裏頭的教學 DIY了保護電路,這樣子應該便宜的DC-DC應該也很穩定了。理論上,電容可以消除波文,而二極體則可以吸收突波。我有買崩潰電壓5.2v跟5.6v。後來還是決定如同YT使用5.6v。



11/23 今天終於把所有的硬體安裝完畢了。非常幸運,在不改程式的狀況下,所有的伺服器方向都剛好正確。不過在製作過程中馬達共振得很厲害,一開始以為是電變一個通道有問題,後來換了一個通道還是一樣,所以就朝剛性處理。

主要是副翼活頁增強,除了原本傳統的話葉片之外,另外使用影片教學的熱熔膠法加強。



另外就是陀螺儀感應器增加了鉛片跟海綿厚度,讓他更能夠抵抗震動。





最後雖然有解決掉共振的問題,但是第一次試飛就發現預設的感度實在太高。可能是因為我使用的是珍珠板,跟老外用的模型板(珍珠板但是兩面有紙)的重量輕很多。所以預設的PID還是得調整。

2022/11/23 晚上: 接上電腦,直接把PID全部砍半,然後用手抓著測試一下,感覺非常OK。等哪天老婆不在的時候再來試飛,免得又罵太吵。



2022/11/25 第一次成功停懸,猜測都是對的,把PID直接砍半就可以飛了,雖然感度還有一點點高,但是起碼人肉陀螺儀的加持下,飛行是沒問題的。這次還把腳架做了加強,之前用1.5mm碳纖棒,在起飛前的一瞬間會因為彈性的關係,整台飛機搖晃而影響。這次直接再黏一隻3mm碳纖棒就沒問題了。


22/11/29 今天真是風和日麗的好天氣。幾乎無風,很順利的就起飛了,停懸模式比想像的還要穩定,但是切換到飛機模式只能說...有夠難飛。主要是重心太後面了,導致機頭根本壓不下來,轉彎也轉不動,又沒有rudder。飛一會就很容易整台飛機"站"起來,然後非得翻整個觔斗重新回到平飛,沒辦法靠升降舵下壓來回復平飛。試了兩趟隨後放棄...下次把電池往前挪應該可以改善。


22/12/20 終於放晴,今天只有測試把電池往前移動到照片裏頭衡的黑色位置。結果如預期好飛很多,但是感度過於敏感導致舵面一直修正的情況還是蠻嚴重的。雖然飛起來沒感覺,但是光聽聲音就知道伺服器一直在震動。只是原因到底是剛性不足還是感度太高,就還要再研究看看。


22/12/30 

從大陸買到的小型示波器到了,第一件事就是測試BEC的突波跟紋波狀態,沒拍照,用寫的簡單解釋一下。

簡單的說,開發板燒掉的原因找到了,就是伺服器。BEC無論是好盈還是自製,甚至只接DC-DC,在插電突波跟紋波表現都還OK,但是一接上伺服器就全掛了,好盈的稍微好一點,但是毛刺的上下高地也快要6-700mv,DC-DC甚至破1v。難怪之前只要伺服器一動作就把開發板燒掉。但並聯在電路上的電容瞬間完美解決這個問題...難怪後面就沒燒。

不過應該還是要把伺服器跟開發板電源分開才是王道。至於電壓應該不需要調到這麼低。可能標準5v就可以了。