2015年7月10日 星期五

新手的多軸飛行小物 - X9D+整合433數傳

在去年我提到433增程,把原本一般2.4G的遙控訊號改為433MHz,好處就是讓遙控距離增加。在文中我也提到可以整合數傳資料,以往我們要接收數傳資料,可能會加上一組915MHz的數傳Radio,但透過433可以把這訊號合併一起傳送回來,省掉外掛一個915的數傳radio在多軸上。
首先回顧一下之前文章 http://oaione.blogspot.tw/2014/09/iv-433-mhz-1w100mw.html
使用OrangeRX傳送與發送模組,接收模組放在多軸上面,發射模組在地面中繼站,原本的2.4G接收器也合併到中繼站裡面,簡單說就是我們手中2.4G訊號發射到中繼站裡面的2.4G接收器,2.4G接收器透過PPM encoder轉發訊號到433發射模組,433發射模組在把這訊號使用433MHz傳送到多軸上面的433接收模組。
433除了單向遙控訊號的傳輸,還可以雙向傳輸,因此延伸出把數傳的資料整合到433,承上面的說法,原本多軸上面的433接收模組會扮演同時發射的角色,我使用的Pixhawk飛控,原本是透過915 radio傳輸數傳資料,改用433後,Pixhawk上面的Telm接口連接到433接收/發射模組並把數傳資料發射回地面中繼站,但問題來了,原本我們使用915 radio是透過USB接到電腦,改成433後,可以使用藍牙或者FTDI連接到電腦,我個人是使用藍牙。

首先這張示意圖是單純433遠程遙控,橘色線是433的訊號路徑
PastedGraphic1-2015-07-10-10-49.png

這張圖示增加數傳,綠色線是數傳路徑
PastedGraphic2-2015-07-10-10-49.png
目前要把數傳訊號整合到433,必須把OrangeRX韌體刷掉,目前有三種韌體可以使用
1.上一篇文章提到的flipflap版本,可以參考 http://www.itluxembourg.lu/site/
2.rctw上面kris000的版本,可以參考 http://www.rctw.net/thread-326448-1-1.html
3.openLRSng的gitsly版本,我目前也是使用這個版本 https://github.com/gitsly/openLRSng
要刷的朋友可以使用kris的版本,他有修正一些錯誤,有興趣的人可以去爬那一串大樓。
從上面那張圖可以想像,在遙控過程,操控者必須透過電腦或者手機才可以顯示數傳的資料,一般手機是使用Tower這個App(https://play.google.com/store/apps/details?id=org.droidplanner.android&hl=zh_HK)
透過App可以做一些地面站功能,可以從螢幕看到一些數傳資料,目前Mode、電壓、高度等等訊息,也可以做一些Auto航點設定等等,非常方便。
但是我們都知道X9D+其實本身就有雙向傳輸功能,目前市面上一些遙控器要顯示多軸上面的電壓高度等等訊息都要額外安裝各廠牌自有的感測器,但X9D+本身就是開源的,所以他的態度基本上是廣納最大應用者。
X9D+已經支援顯示數傳資料,但是不直接相容Pixhawk/APM的Mavlink協定,所以網路上有神人想出一套方法,可以參考此網址
http://diydrones.com/forum/topics/amp-to-frsky-x8r-sport-converter
簡單說就是透過Teensy 3.1這塊開發板去分流資料,並把Mavlink的資料轉發到Frsky X8R上的S.port,這樣X9D+就可以讀取到Mavlink數傳資料。
簡單示意圖如下,當多軸的數傳資料傳送到433模組,空中的433模組把數傳+遙控訊號打回地面中繼站433模組,中繼站中的433模組在把數傳資料發送到Teensy 3.1,這時候Teensy3.1會把數傳資料分成兩路,一路可以丟到藍牙模組,這樣App可以持續收到數傳資料,另一路丟到Frsky X8r的S.port,這樣就達到X9D+顯示數傳資料

PastedGraphic3-2015-07-10-10-49.png

這樣我們就可以在X9D+上面顯示如下的畫面,我們可以看到電壓、電流、高度、速度、GPS、方向、離家距離等等訊息,非常強大!

PastedGraphic4-2015-07-10-10-49.png
我目前使用的版本是這一版本 https://github.com/Clooney82/MavLink_FrSkySPort
為何選擇這一版本,主要是這一版本作者還有在維護,所以未來需要任何變動,作者都可以繼續幫忙改版。
大概提一下Teensy 3.1這塊開發板,因為數傳資料其實非常龐大複雜,所以需要一個比較強大的模組來負責分析跟轉發這兩個動作,Teensy 3.1的記憶體64KB,Flash有256KB,32-bit ARM M4 CPU,所以可以負責大量資料的分析,他又有3個硬體Serial port,可以把資料快速分成兩路分流轉發。
如果要購買teensy 3.1,個人建議是去國外Sparkfun購買 https://www.sparkfun.com/products/12646 加上運費都還比在台灣買便宜,對岸的淘寶沒在賣。
所以透過以上方法,我們就可以達到兩個數傳顯示,一個在App上面顯示,一個在X9D+上面顯示。

以下是實機運作畫面,右邊黑色盒子是我的中繼站,數傳資料可以顯示在X9D+面板上,同時App也可以接收到數傳資料。
2015-05-0423.08.36-2015-07-10-10-49.jpg 2015-05-0822.33.09-2015-07-10-10-49.jpg
下一篇我會教如何透過X9D+語音播放數傳資料,這樣就可以專心遙控,不需要分心低頭看數傳資料。

16 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 三向?我文章的例子已經是三向(電腦/平板/X9D<-->433中繼站<--->多軸)

      刪除
    2. 我想問的是這時PC或平板是可以收和送到Arducopter嗎?是有現成的程式還是自己改的?

      刪除
    3. 可以收送。程式我在文章都有寫到了,連結都有

      刪除
  2. 但是程式只看到arducopter to frsky 沒看到bluetooth to arducopter 的部份,還是我漏了什麼?謝謝

    回覆刪除
    回覆
    1. 文章有寫..."在遙控過程,操控者必須透過電腦或者手機才可以顯示數傳的資料,一般手機是使用Tower這個App(https://play.google.com/store/apps/details?id=org.droidplanner.android&hl=zh_HK)
      透過App可以做一些地面站功能"

      刪除
    2. 我是指teensy 程式中只看到arducopter to frsky 沒看到bluetooth to arducopter 的部份

      刪除
    3. 接在同一個Serial。Teensy程式MavLink_FrSkySPort.ino裡面有說明
      Note that when used with other telemetry device (3DR Radio 433 or 3DR Bluetooth tested) in parallel
      on the same port the Teensy should only Receive, so please remove it's TX output (RX input on PixHawk or APM)

      刪除
  3. 啊了解,但這樣如果bluetooth PC/平板没連線,taranis 會收不到資料,pixhawk telemetry 要設成強制送出才可以

    回覆刪除
    回覆
    1. pixhawk那一端通常就會設定強制送出。
      請參考
      https://github.com/Clooney82/MavLink_FrSkySPort/wiki/1.1.-Teensy-and-APM-pixhawk

      刪除
  4. 大大你好:

    一直是你網站的忠實讀者,最近也入手 X9D+ 了,看著你這篇文章,也一路爬文把一些相關的文章大概看了一下。

    http://www.craftandtheoryllc.com/frsky-telemetry-cable-and-user-interface-for-pixhawk/ 大大對這個東西有興趣嗎?

    我有點想買 XD 一起買可以省點運費 哈哈 ~

    回覆刪除
    回覆
    1. 我的x8r是放在中繼站沒有跟pixhawk接在一起,而且這種東西我比較愛開源的,arducopter改版數傳格式一改,開源的速度比較跟得上。

      刪除
    2. 而且他要用他們客製化的arducopter韌體,限制太多了

      刪除
    3. 作者已經移除這則留言。

      刪除
  5. 的確是啊,我也是一看到要用客製化的 firmware,就有點縮手了,不然這東西可能現在就在機子上了 XD

    另外,有在爬這一篇文章(只看懂一點點):https://github.com/diydrones/ardupilot/issues/1587,似乎有原生支援的可能性?

    回覆刪除
    回覆
    1. OpenTX 2.2.0 應該會支援,這樣就不用透過LUA script去轉。但我想大多數的人是希望看到很炫的X9D+面板畫面。

      刪除