後來想到一個好方法
到Mission Planner裏頭的 Servo Output 把每個通道的Function 都設定成RCIN3 也就是直接由搖控器控制
然後板子接USB供電 全油門 然後接電池啟動ESC 然後把油門全收
就完成校正了
後來想到一個好方法
到Mission Planner裏頭的 Servo Output 把每個通道的Function 都設定成RCIN3 也就是直接由搖控器控制
然後板子接USB供電 全油門 然後接電池啟動ESC 然後把油門全收
就完成校正了
6/16 今天確認
使用Omnibus F4 Pro透過Telemetry時候,會無法在MP上顯示電壓。但是Telemetry log中有電壓紀錄。目前還找不到方法解決。
一步一步檢查,發現只要把Q_ENABLE啟動之後,電壓資料就沒辦法透過無線數傳顯示了。但是USB OK
類似的問題在Pixhawk 2.4上頭也有,是電流顯示斷斷續續。
6/18 解決
使用Custom Firmware Builder的方式重建firmware
https://custom.ardupilot.org/
我主要有發現三點
1. 版本要選stable 如果選擇last的話 編譯到BMP280會失敗
2. 我有把Battery->Synthetic Current Monitor選起來 不確定是否有關
3. 關閉一堆沒用到的功能 主要有Camer全部 Gimbal全部 Payload全部,選擇項目如下
做好的檔案放這 https://drive.google.com/file/d/1fZChu_bX3e4MKovGLSIpwrDsOBIl3w1c/view?usp=drive_link
6/19 發現OSD居然沒有工作 所以又重新build一次,這次刪掉的功能更多了
檔案放這邊 https://drive.google.com/file/d/1WpBQ7FYM4RWfwL8r-DZFD4ipjgVsG3FC/view?usp=drive_link6/21 今天發現另外一個造成的原因是SBUS接收機,只要接收機有工作就沒辦法顯示電壓,而且傳輸速度超慢。如果一開始沒接上接收,電壓顯示正常,即使電源沒拔下的情況下接上接收機,然後重新抓TELEMETRY,電壓顯示也會消失。
再深入研究 發現SBUS接收機使用的是UART1跟Telemetry共用,但是因為SBUS反向線路只建立在UART1 所以要嘛把Telemetry移開,要嘛改成ELRS接收
我看硬體分布 很容易搞混Serial / UART / TX,RX接點。
目前看來 UART是指板子上TX/RX接點。ex TX1 RX1就是指UART1 目前是分派給Serial 1
整理如下:
UART1 Serial1 Telem
UART2 (沒有硬體接點)
UART3 Serial2 (I2C共用接點) BRD_ALT_CONFIG =1
UART4 TX=RSSI (BRD_ALT_CONFIG =2 or 3)
UART4 RX = PWM 5 (BRD_ALT_CONFIG = 3)
UART5 (沒有硬體接點)
UART6 Serial 3 GPS
反過來看
SERIAL0 = 控制台 = USB
SERIAL1 = Telemetry1 = USART1 (好像TEL跟SBUS衝突)
SERIAL2 = 未分配(Telemetry2 = USART3,如果BRD_ALT_CONFIG =1)pin跟 I2C (羅盤的)共用
SERIAL3 = GPS1 = USART6
SERIAL4 = GPS2 = UART4(如果BRD_ALT_CONFIG = 2 或 3)
SERIAL5 = 未分配
SERIAL6 = 未分配
第一個注意事項是大多數期間都需要使用BEC作為供電,不然UART裝置會看起來像是啟動,但是都怪怪的,原因是USB供電的話,從板子上量測到的電壓只3.7v左右。
第二個要注意的事項是如果要使用內建wifi來連線的話,除了要用BEC供電之外,要把板子上的RGB燈號切到白燈慢閃,且依照下圖設定
討論區說 ARSPD_BUS 要從1改成0
說明書 : https://store-fhxxhuiq8q.mybigcommerce.com/product_images/img_SpeedyBee_F405_WING_APP/SpeedyBee_F405_WING_APP_Manual_V1.1-CN.pdf
最開始是看到一個youtube的影片
這是整個點子的來源,影片下面有相關論文的資料,就順藤摸瓜的看下去了。不過還是得承認內容大多都看不太懂,不過得到翼型跟重心兩個重要資料
https://www.mdpi.com/2504-446X/4/2/14
Eppler E169
http://airfoiltools.com/airfoil/details?airfoil=e169-il
重心在1/4 12度迎角
而控制方式則跟之前做的Qualsitter完全相同。所以就以手邊的馬達以及螺旋槳尺寸為基礎開始設計。
設計上也沒甚麼特別困難的地方,就是重心位置要抓在1/4的地方,而螺旋槳面也要在這個位置,所以電池跟飛控擺放位置就得猜猜看。
組裝的部分就是整個外圈黏起來不太容易,因為每一片都有一點點誤差,導致整圈黏起來的時候間隙頗大,就用紫外線補土補一補。其他就沒甚麼問題。
試飛也是一次就成功,
比想像中好飛,浮力很好,飛行速度也比較慢,跟雙翼機的感覺很像。
整台圓圓的,在平飛時候很難確定飛機姿態,但是一下子就習慣了。
雖然重量比較重,但是耗電比四軸或者一般構型的Tailsitter VTOL要低。連停懸也是一樣,可能跟導風扇產生額外浮力有關。
停懸大概11-12A,平飛大概8-9A
而問題則跟另外一台Quadsitter一樣,平飛速度太快(應該跟AOA設定有關),還有就是數傳也是不太穩定。
比較跟相同動力配置的Quadsitter,會明顯發現速度慢很多
2023-5-30墜毀
墜毀原因是測試QRTL,結果證實在飛機模式切QRTL會直接撞地球,原因不明。
這次要設定的目標是長這樣
沒有控制面是特色
設定參考頁面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 會自動執行此操作。**
有兩種直升機尾翼特定配置可供使用,它們為直升機式電機提供無偏航扭矩 (NYT) 控制:Q_FRAME_TYPE = 15 (Plus) 和 =16 (X)。
(從上方俯視鼻子)
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.
雖然通常不推薦,但可以駕駛沒有控制面的尾翼飛機。應注意首先讓車輛在懸停模式下飛行良好。
Q_OPTIONS位 7:強制Qassist將強制車輛在所有飛行模式下使用直升機控制器。
Q_OPTIONS位 8:Mtrs_Only_ Qassist允許對電機使用直升機控制器,但將任何控製表面留在平面控制下,這允許控製表面充當電機的“微調選項卡”。
有關如何通過空速、高度、姿態和/或開關自動啟用和禁用Qassist的更多詳細信息,請參閱輔助固定翼飛行。RCx_OPTION
https://oscarliang.com/choose-esc-racing-drones/#firmware
他奶奶的...原來之前工具都下載錯了
所以BLHeliSutie跟BLHeliSuit是兩種不同的工具
而更早的BLHeli config則是跟後者相同 但是功能比較簡單
OK....反正手邊4in1連不上的今天都連上去了...
而之前要刷Hobbywing Xrotor 10A成BLHeli固件的也是一換工具就OK....
相關資料:
http://dronehitech.com/en/flash-silabs-esc-blheli-firmware/
https://oscarliang.com/flash-blheli-s-esc-firmware-fc-pass-through/
https://github.com/bitdump/BLHeli/blob/master/SiLabs/BLHeli%20supported%20SiLabs%20ESCs.pdf
手邊一堆的雷虎30AOPTO原來是HOBBY Platinum Pro 30A OPTO,難怪這麼眼熟
然後得到一個驚人的結果,原來好盈出貨給雷虎的已經是刷好Blheli的電變。
應該是吧,這顆是我從箱子裡翻出來已經去皮的,可是印象中我沒有動過韌體。
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 就可以正常運作了。
最後結論是預設參數根本沒有跟這個硬體配合,所以很多外掛都要重新設定才行。
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。
9/7 DIY飛行控制器....
9/12 台版Tennsy 4.0燒掉了!
今天燒掉第二片,一模一樣的狀況,都是跑大約一兩分鐘之後當掉,然後重新boot又OK,然後又幾分鐘當機,幾次之後就死掉了。
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 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就可以了。