2024年12月3日 星期二

ELRS整合MAVLINK 一統RC跟DATA LINKI



寫在一開頭 該死的BETAFPV

 ******BETAFPV ELRS 2.4GHz 1W Micro RF Modul 不能用這種模式 爛爆了 害我測好久*******


1. MDL(右邊銀色按鈕)->Extermal RF->Baudrate->400K (這個部分原本預設最慢的115k 會影響發射速率)

  **如果Packet Rate設定高於模組通訊速度的話,會導致LUA介面一直停在loading這個訊息,這時候只要回到這個介面將速度調高即可



2. SYS->ExpressLRS 腳本

 Packet Rate: 333 Full 2.4G (如果上一個不改的話 最多是100 Full 2.4G)

 Telem Ratio: 1:2 (新版3.5.2好像把Link Mode改成MAVLink之後會變成灰色,無論之前是多少都跳成1:2 不能改。要注意如果改回來之後,這兩個變成灰色選項也不會跳回原本的設定)

 Link Mode: MAVLink (這個部分如果再跟接收機連線狀態下是無法更新的)



3. 將接收機開機,跳出Lua之後再進入後可以看到下面的Other Devices 進入之後可以看到妳的接收機->Protocol->MAVLINK

   最後一併在一次檢查接收機從web介面 

   OPTIONS->UART baud為 420000 (這個數字是預設的)

   MODEL->Serial Protocol>MAVLINK (這邊可以透過web介面改或者透過發射的lua script改)



飛控部分:

1. RSSI -> RSSI_TYPE ->5

2. Serial1_BAUD 設為460 (460800) (這個部分應改跟接收機裡頭 OPTIONS->UART baud為 420000 這個設定有關)

3. Serial1_PROTOCOL -> 2


連線

 跟電腦連線速度也是460800 (-這個啟動速度如果不匹配的話,嘗試連線到最後會導致發射模組重啟動)(所以這個連線速度也是跟 接收機OPTIONS->UART baud為 420000 有關)

無線wifi連線 則是在mission planner上先選好UDP 速度選460800,然後到LUA去把backpack的wifi啟動,然後電腦連上backpack wifi之後,mission planner就會自動連線上

2024年10月7日 星期一

OpenIPC 介紹

 


目前FPV飛行的影像傳輸解決方案,主要分成數位和類比兩種。類比解決方案用的人較多,好處是延遲低、重量輕、價格便宜、市場上選擇也非常多樣。但是缺點就是在使用的過程中很容易會產生雜訊。至於數位解決方案的話,目前主流的就是DJIfpv眼鏡,效果就不多說了,主打的就是一個高畫質。但是缺點就是貴,真的很貴。當然市場上也有競爭產品,比較有名的是蝸牛跟HD Zero。其他的品牌就沒甚麼印象了。數位化傳輸的產品為什么價格特別貴呢?我相信主要的原因還是在於技術門檻。由於技術門檻高,能夠提供產品的公司也相對少。那么價格自然也是節節高漲。

類比系統的話。便宜還有一個原因,就是因為它的產品都是使用相同的開放規格去設計的,所以它有一個最大的好處,就是彼此之間雖然是不同品牌的商品,但是訊號都是相容的。在這樣子的環境之下,因為廠商之間的競爭就很容易造福到消費者。而數碼產品的話。因為技術是比較封閉,所以各個廠商各自弄個字的產品,不過好在最近有一個好消息就是,數位解決方案現在也慢慢有開源的產品出現了。開源產品常常都是產品的下降的一個主因。在根本技術上面,如果有一些神人願意把主要技術放出來的話,其實之前就有很多相關的案例,像是3D列印最早也是開源產品開始的。然後在一瞬間就百花齊放。發展到今天,大家才能有機會玩到很便宜的3D電影產品。那麼,至於遙控器的話,最有名的就是open TX。之前,遙控器主要都被JRFutaba兩家把持,遙控器一直以來都非常貴,而中國那邊的話雖然生產能力強,但是因為核心技術的關係,所以弄出來產品常常穩定性都不夠,那後來有open TX這個東西,他把軟體跟硬體架構基本上都釋放出來,然後導致現在遙控器百花齊放,大家才有機會買得到那種非常便宜然後又高效能的產品。我最近也是開始慢慢轉移到openTX的產品上面。真的是好用,抗干擾性跟距離都是以前無法想像的。

而現在。數位傳輸的FPV解決方案。也開始有了最原始的開源方案。主要的有Open IPCopen HD

Open HD的話,它主要是透過樹梅派來當成解碼工具。這個部分發展的比較早一點,但他的主要問題是因為樹莓派的體積重跟耗電量大。所以後來並沒有普及起來。至於open IPC的話,最早並不是為了第一人稱飛行所開發,它的主要開發的目的做家用監控的部分,因為家用監控產品。西方人很不相信大陸生產,認為大陸的家用監控產品都有開後門。所以呢,他們就開始做出了這種開園專案,主打的就是一個沒有後門。那只是後來有人發現說這個解決方案,它的解碼速度相當快,然開始有人把它轉移到FPV上使用。

那麼,這是否意味著Open IPC已經到來了?

實際上,現在有兩個可以購買的Open IPC視頻系統,一個來自RunCam,,另一個來自EMAX,不過目前EMAX似乎只有歐美那邊可以透過aliexpress買的到,淘寶反而沒買,所以我先買了RunCam來試試看。

首先說明的事情。這不是一個成熟的成,他比較像是一款DIY模塊,但由主要的FPV製造商製造,任何人都可以花錢購買並開始使用它。這是你進入Open IPC所需要做的最少工作,但它不是一個成品。它仍處於非常初級的階段。

因此,應該考慮購買這個系統的人是那些想以較少的學習曲線和較低的門檻進入alpha階段的人,而不是那些在尋找成品視頻發射機的人。


FPV NVR刷固件,可以看這支影片

1. 這支影片對於NVR刷OpenIPC固件有不錯的教學

官方網站有關NVR 設定,寫的超簡單,真是搞死人。

在操作的過程裏頭發生的問題在於固件的img檔案,官網說明是使用windows 的tftp工具來架設一個快速的tftp server,這個部分實在說明太少。在這邊卡關許久。影片裏頭這個部分他是使用linux,所以也沒有特別提到這個服務要怎麼使用。

是到最後可行的方式是tftp要下載32位元的setup版本,而service的版本安裝好之後會變成windows的系統服務,這個不要用。

setup版本安裝之後,他會幫你設定好防火牆,所以不用擔心,只要去把目錄設到放image的目錄即可。

另外就是一個很詭異的概念是tftp的gui在測試的時候會需要設定本地端檔案跟遠端檔案。

這個部分跟習慣用法不同是本地端檔案名稱設定好之後,如果是做下載的動作,無論

遠端檔名是甚麼,都會存成本地端的名稱,所以在測試的時候,會一直找不到下載的檔案就是這個原因。

另外概念就是這個軟體一跑起來,就表示tftp的server也啟動了,所以在同往域裡頭可以用兩台電腦先測試過,確定可用就可以進行下一步。

其他的則跟上頭影片一步一步照做即可。

完成刷固件之後就是要上傳gs.key 由於發射端是使用Runcam wifilink,所以我就直接使用發射端的key。其中我是覺得會需要看一下這個影片


用openipc configurator會比較方便,我是用他來傳gs.key,這個部分的步驟剛好跟影片內不同。步驟是先連到camera 然後receive drone.key

接下來連到NVR,然後send gs.key 

以上步驟我是測試成功。這時候應該會看到畫面已經顯示開始接收封包。但是沒有畫面,這是由於地面戰預設的codec跟解析度不正確。

至於這個openipc configurator軟體的bug是關於牠抓到的參數,其實跟實際的參數不同。我用軟體看到camera的code是h.264 但其實是h.265

不過不管,反正最後還是用PuTTY用ssh連到nvr,然後用vi修改。會需要修改兩個檔案,一個是w開頭的,要改channel。另外一個要改的是v開頭的,有解析度跟codec。

這樣子應該就可以看到畫面了


2024年10月4日 星期五

如何將 ELRS 接收器與 Pixhawk 連接


 ELRS 接收器可以通過 UART 埠連接到 Pixhawk。在 Pixhawk 中,這些埠是 Telemetry 1 (TELEM 1) 和 Telemetry 2 (TELEM 2)

參考: Crossfire and ELRS RC Systems — Copter documentation (ardupilot.org)

我們需要從 Mission Planner 中通過轉到 config > Full Parameters List 來設置以下參數。


設定 SERIALx_PROTOCOL = 23 (x 代表串口號,根據 Pixhawk 型號變化)

設置 RSSI_TYPE = 3

我發現只有 TELEM 1 支援 23。因此,我們將在 Pixhawk 2.4.8 中使用 TELEM 1 埠。此埠的 x 將為 1。


SERIAL1_PROTOCOL = 23

設置 RSSI_TYPE = 3


上圖顯示了 Pixhawk 中遙測埠的引腳佈局。6 個中只有 4 個將與接收器連接。


5V 將連接到接收器的 VCC

無線電 RX (FC TX) 將與接收器的 RX 連接。

無線電 TX (FC RX) 將與接收器的 TX 連接。

GND 將與接收器的接地 (GND) 連接。



YCLONE ELRS 7CH PWM 的各種問題



 固件升級選項 Generic已經被移除,請選Happymodel 2.4 GHz -> HappyModel EPW6 2.4Ghz PWM RX

如何可以啟動第七通道

請看這影片

https://youtu.be/2VZb0n_G_Pg?si=BViyAWaGsa-fYsYH

相關json檔案

影片內容

在http://10.0.0.1/hardware.html裏頭

PWM outptu pins 原本只有設定6個pin

0,1,3,9,10,5

只要把7CH.json在這個頁面上方上傳之後

會變成

0,1,3,9,10,5,16

第16是跟LED pin重複

然後頁面最下方的儲存按鈕按下即可


研究:

在上傳了custom的json設定之後,頁面上方多出了下載預設跟重設的選項

然後比對三個json之後 發現如果是serial輸入的飛控可以選擇CRSF

不過也不用擔心之後傳輸協定一定要CRSF,因為之後可以從wifi web頁面更改成其他通信協議

不過沒看到連線速率 這個部分可以要測試看看

7CH.json

{"customised":"true",

"serial_rx":-1,

"serial_tx":-1,

"radio_dio1":4,

"radio_miso":12,

"radio_mosi":13,

"radio_nss":15,

"radio_rst":2,

"radio_sck":14,

"power_min":0,

"power_high":0,

"power_max":0,

"power_default":0,

"power_control":0,

"power_values":[13],

"led":16,

"pwm_outputs":[0,1,3,9,10,5,16],

"vbat":17,

"vbat_offset":12,

"vbat_scale":310}

CRSH.json

{"customised":"true",

"serial_rx":3,

"serial_tx":1,

"radio_dio1":4,

"radio_miso":12,

"radio_mosi":13,

"radio_nss":15,

"radio_rst":2,

"radio_sck":14,

"power_min":0,

"power_high":0,

"power_max":0,

"power_default":0,

"power_control":0,

"power_values":[13],

"led":16,

"pwm_outputs":[-1],

"vbat":17,

"vbat_offset":12,

"vbat_scale":310}


hardware.json

{

"radio_dio1":4,

"radio_miso":12,

"radio_mosi":13,

"radio_nss":15,

"radio_rst":2,

"radio_sck":14,

"power_min":0,

"power_high":0,

"power_max":0,

"power_default":0,

"power_control":0,

"power_values":[13],

"led":16,

"pwm_outputs":[0,1,3,9,10,5],

"vbat":17,

"vbat_offset":12,

"vbat_scale":310}

2024年10月3日 星期四

ELRS-RC 同時實現數傳以及RC (大失敗)






第一個參考影片:

【它来了,elrs终于支持真正意义的mavlink了】 https://www.bilibili.com/video/BV1g5WCedEET/?share_source=copy_web&vd_source=fae50ad0a6f345b9ecfa689eef597a62


設定方式

【elrs教程】怎么把elrs变成mavlink数传电台】 https://www.bilibili.com/video/BV1P4noe5Ek6/?share_source=copy_web&vd_source=fae50ad0a6f345b9ecfa689eef597a62


youtube的另一個教程 大同小異

https://youtu.be/u_ArriXbrR0?si=-8S-TUQk4GW8aFiI&t=909

但是這個教程在15:56提到發射模組的DIP要切成flashing模式??不然無法運作在Mission planner,我猜應該跟OTG協定有關,如果不透過OTG,只用USB-C to USB-C 是無法在平板中自動啟動


先改飛控參數 (omnibus f4)

serial4_baud -> 460 (230)  也有youtube教程是選19

serial4_protocol -> 2 (23)

rssi_type -> 5 (3 receiver protocol)


以下影片教程是使用發射器LUA修改

發射器 

Link Mode ->mavlink (normal)

接收機

Link Mode ->mavlink

參考其他教程我發現 接收機連線速度似乎也要檢查

UART baud ->19200 (420000)

MissionPlanner 要設定成上頭的bau rate

以上官方相關資料

MAVLink - ExpressLRS

AirPort - ExpressLRS

最後大失敗,原因不明。在完成以上設定之後,是可以遙控,但是卻無法數傳。無論平板或者電腦都讀不到資料。

2024年9月30日 星期一

OpenIPC 開源數位FPV解決方案

 

前面不廢話太多關於OpeinIPC的基本訊息。

Runcam的這個產品他稱之為WiFiLink,其實也是基於OpeinIPC的開源資料。

在產品頁面可以找到說明書下載。基本上照著操作理論上是可以順利啟動,但是偏偏我就沒辦法。

首先他推薦的地面站方案是使用Android Phone或者平板。我手邊根本沒有Android的產品,所以上網買了一台Samsung Tab a7 Lite。結果居然沒辦法啟動....

網路上可以參考的資料不多,他用的APP是FPVun,反正試過所有手法都沒辦法連上天空端,最後趕緊上網虧個幾百賣掉。

過兩天不死心,APP介紹頁面對於硬體需求是arm64-v8a,這是指令集的意思,雖然Tab A7 Lite是amr64的處理器沒錯,但卻是聯發科的。這邊要扯指令集有點太遠,不過我想起早期電腦雖然都是x86指令集,但是AMD跑起來就是沒辦法跟Intel穩定。

所以我決定再給他一次機會,我再去買了一台Tab A7,這台的處理器就是高通,結果居然真的可以...不知道該說甚麼。

好吧,反正基本廠商推薦的連線方式是可行的。

然後說明書裡頭也有Windows版本的解決方案,這個部分就沒太多問題,但是有一個步驟是要透過Zadig去把去修改驅動程式,照著說明做就可以了。

再來他還有Radxa ZERO 3W開發版,這塊板子我之前聽都沒聽過....所以放棄。

再來就是這個開源專案在github裡的資料,其他的地面站方案還有拿網路監控的模塊(NVR)去刷他自己韌體,看了一下說明也不是隨便搞搞就可以解決的。

另外還有樹梅派Pi5的解決方案,同上....應該不太容易。

再來的問題是如果要改設定...包含解析度、編碼方式、使用頻率....一堆,哪就麻煩了。這個部分我覺得如果沒有玩過linux而且還是遠端文字操作的人,應該是不太可能搞定。

相同的,剛剛提到的地面站解決方案,只有推薦的Android是最簡單的,其他的方式都是以linux為基礎改的韌體,所以要改設定都得要對linux有相關經驗才行。

至於進階操作的話,我是希望能夠把畫面透過HDMI輸出到Quest 3,把VR眼鏡當成FPV眼鏡來用。這個部分一樣遇到硬體的問題 。在這邊要用Quest HDMI link這個APP,需要用到USB擷取卡,結果擷取卡有分USB2跟USB3。我一開始沒意識到差異,結果買錯。反正就是要USB3才對,不然禎率會非常差。

在來就是有我想測試把平板透過一個有HDMI輸出的USB hub把無線網卡連在上面,然後透果平板解碼的畫面在透過他自己的USB DP功能從HDMI輸出,這個部分就很冒險,感覺應該是不可行,另外在這個測試中發現平板想要直接輸出畫面,要很新款有支援USB 3以上的才可以。可惜Tab A7 不支援所以作罷。

最後要把遇到的問題跟解決方案列出

1. 當然是Android設備相容性

2. 擷取卡是否為USB3.0

3. 如果要使用USB3.0 DP功能,一定要購買支援相關規格的USB線。

5. 這個YT影片算是比較簡單的,可以參考。

2024年3月3日 星期日

光流+雷射測距感應器

 這次從大陸淘寶買的MTF-01感應器,真是夠便宜了。果然有中國出馬,甚麼價格都會捲到不行。


說實話,設定沒啥特別,原廠提供的教學影片照做即可。
測試結果還不錯







除了一點要注意,就是在Loiter Mode下,要先切到EK3之後再切到EK2才會啟動。如果從其他模式都沒辦法啟動。

speedbee f4v3新的版本預設沒有選擇這個裝置,導致相關參數根本找不到
我隨意嘗試的結果是4.4.4是可以直接使用,4.5.x以上就沒了

我去ArduPilot Custom Firmware Builder 這個地方自行將所需要的功能加進去
主要是sensor跟rangefider這兩個部分,結果是一直沒辦法build出來
以下是4.4.4選擇的


2024年3月2日 星期六

3D列印甲魚機


這個點子其實是來自於Twitter裏頭的一個日本帳號 @tomorin3939,他做了這個飛機的手辦。我就參考了造型重新設計成遙控飛機



製作過程




 

這邊是完成圖




整體而言,最擔心的是尾舵面積太小,所以我都有做放大,希望控制力是足夠的。



 

第一次測試失敗。原本以為是機頭太重,起飛兩秒後就瞬間頭朝下衝....可是後來看了影片跟檢查了設備,嚴重懷疑是飛控出了問題。
這個飛控系統電壓一直不太穩定,找也找不到問題,所以加了一個大電容濾波,我猜多半是這裡漏氣了....
好家在這個空心的大機頭幾乎吸收了所有的撞擊力道,只有機身整齊的斷了兩段。所以很快就修復了。
雖然只飛了兩秒,不過我有信心在排除電子設備問題之後應該可以順利起飛。

後來連續好長一段時間的天氣不好,有一點一點的重新檢查。並且重作機頭罩。顏色好像有點色差,不過還算OK。

最後一次重測,FC還是一樣不時重開,最後再好好測試一次,這次乾脆換掉BEC,以及發現左ESC也故障。接頭也重新整理過。這次應該是OK了。等下周天氣好來試飛。


2024年2月14日 星期三

OMINBUS F4 PRO SERIAL Port(序列)以及其他硬體設定

起因,因為想要裝光流感應器,但是找不到多的序列滬可用。

結論....最後從Ardupilot的定義檔案得知,他只有定義4個序列沪可用 

USART1 Telem (Serial 1)

USART3 I2C

USART6  GPS (Serial 3)

UART4 (Serial 4)

或者:

  • SERIAL0 = 主機 = USB

  • SERIAL1 = 遙測 1 = USART1

  • SERIAL2 = 未分配(如果 BRD_ALT_CONFIG =1,則為 Telemetry2 = USART3)

  • SERIAL3 = GPS1 = USART6

  • SERIAL4 = GPS2 = UART4(如果 BRD_ALT_CONFIG = 2 或 3)

  • SERIAL5 = 未分配

  • SERIAL6 = 未分配

偏偏其中一組跟I2C共用,而GPS的磁羅盤又是必要


所以唯一做法就是使用S.Bus接收,然後把BRD_ALT_CONFIG = 3 使用背後RSSI跟CH5的接點變成UART4

如果 RSSI 參數設置為 2 或 3,則可以將 RSSI 焊盤重新用作 UART4 的 TX 輸出,而不是類比 RSSI 輸入BRD_ALT_CONFIG。如果 BRD_ALT_CONFIG 參數設置為 3,則 PWM 輸出引腳 5 變為 UART4 的 RX 引腳,以提供完整的附加 UART。此外,如果 BRD_ALT_CONFIG param 設置為 4,則 UART3 和 UART4 都處於活動狀態且可用。



以下是Ardupilot 的硬體定義檔案(好用)

https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat


這個RCGRPS的Blog有一些硬體資訊

https://www.rcgroups.com/forums/member.php?u=593263

其中比較好玩的是這個圖(看起來我手邊都是V2)



下面是F405的datasheet

https://www.arterychip.com/download/DS/DS_AT32F405_402_V2.00_EN.pdf

Ardupilot預設硬體整理如下

第一行應該是MCU硬體的PIN

#pwm output. 1 - 4 on main header, 5 & 6 on separated header w/o 5V supply, 7 & 8 on CH5 and CH6 pads

CH5,6沒有5V,7,8在後面的焊盤上

https://ardupilot.org/copter/_images/PWM7-8.jpg


PB0 TIM1_CH2N TIM1 PWM(1) GPIO(50)

PB1 TIM1_CH3N TIM1 PWM(2) GPIO(51)

PA3 TIM2_CH4  TIM2 PWM(3) GPIO(52)

PA2 TIM2_CH3  TIM2 PWM(4) GPIO(53)

PA1 TIM2_CH2  TIM2 PWM(5) GPIO(54)

PA8 TIM1_CH1  TIM1 PWM(6) GPIO(55)

PC8 TIM8_CH3  TIM8 PWM(7) GPIO(56)

PC9 TIM8_CH4  TIM8 PWM(8) GPIO(59)

還有發現一個問題是Mission Planner永遠顯示Bad Battery是因為下面兩個設定錯誤

BATT_VOLT_PIN

BATT_CURR_PIN

參考硬體參數 應該要這樣設定

define HAL_BATT_VOLT_PIN 12

define HAL_BATT_CURR_PIN 11

不過很神奇的是,即使設定錯誤還是有正確讀數??除了一直狂顯示BAD Battery

然後居然電流跟電壓感測器的設定值也有

define HAL_BATT_VOLT_SCALE 11

define HAL_BATT_CURR_SCALE 18.2

2024年1月15日 星期一

要設定四合一電調的要點以及刷Ardupilot固件流程




要軟體設定四合一電調步驟

1. 飛控要刷betaflight的固件

2. 通信協定要設ONESHOT125 (預設是沒有設定)

3. 然後使用blheli config連線。版本看是32版本還是16的版本 BlHeli_32 跟BlHeli_s兩個是完全不相容的

4.然後再把飛控刷回ardupilot

  

最後刷回ardupilot的步驟也有點怪

  要先用iNAV把下載好的固件(with bl版本)刷好,這個時候雖然可以連結,但是姿態的畫面卻不能正常運最。這是後再用mission planner重新更新一次就正常了。