2015年7月25日 星期六

新手的多軸飛行小物 - 鋰電池防爆、防火、防水

PastedGraphic-2015-07-25-22-47.png
今天看到這一則新聞,想到要來提醒玩RC的各位,我身旁越多朋友在玩多軸,多軸越組越多台,電池也就越買多越多,而且也越買越大顆,C數、S型號也都越來越大,放電能力、電壓都相對變大,往往容易忽略安全。
我自己保存電池方式通常是保持每個cell電壓在3.8~3.9之間,如果充飽結果遇到天氣不好沒去飛,我買一個電壓轉換器,把這些充飽的電池拿來充手機。
至於今天要討論的就是電池的保護,從上面新聞可以知道,凡事只怕萬一,網路上也很多例子,在充電過程電池自燃,或者電池沒用丟在一旁卻突然燃燒起來,最怕的是在半夜或者家人都出門狀況下。
我自己是都用底下這種防火袋,它是耐高溫材質,據說可以到上千度,我在充電時也會把這種防火袋墊在電池下面,當然我在充電時,人也一定保持在旁邊,如果要出門,我會暫停充電。

IMG_0577-2015-07-25-22-47.JPG
但是防火袋有一個缺點,它沒辦法完全密封,鋰電池在燃燒的過程,會產生有毒的氣體,而且產生的高溫火焰未必可以完全阻隔,如果旁邊有一些助燃物,從袋子的縫隙還是有可能觸擊到助燃物,其實危險程度還是很高。
今天要跟大家介紹這個,防爆、防火甚至防水的....鐵箱子XD
這箱子重3kg,容量30cmx15.5cmx19cm,放下我八顆電池是綽綽有餘,要去飛場飛還可以丟一些小東西進去,當工具箱使用:P 但要注意,不要放金屬物在裡面,避免不小心短路。
IMG_0576-2015-07-25-22-47.JPG
打開的容量非常足夠我使用,在放個10幾顆電池都沒問題。可以把電池先包在上面提到的防火袋,然後在放到鐵箱子裡面,雙重保護:D

箱子也很便宜,從保險角度來看,這一個小小的投資可以讓你睡的安穩、出門安心。
IMG_0575-2015-07-25-22-47.JPG

2015年7月13日 星期一

新手的多軸飛行小物 - X9D+語音播放數傳資料

*以下說法僅適用於OpenTX 2.0版本,近日OpenTX推出2.1版本,在數傳的資料定義上有很大改變,我未來會在說明。

上一篇提到X9D+透過433可以接收到數傳資料,這一篇我來探討如何透過X9D+播放數傳語音。
我們先來觀看效果,主要透過X9D+右上角的Switch D來啟動語音播放。因為在室內側錄,所以很多資料都是0。


首先為何要有語音,大家都知道在遙控的過程當中,我們眼睛大多是看著多軸,過去以往要看數傳資料,必須低下頭來看App畫面或者是遙控器上的面板,但是這一低頭看一眼到抬頭看多軸的時間差,就足以讓自己迷失眼睛的焦點,尤其在飛場,有時候雖然多軸定點在空中,但是天上好幾架多軸在附近飛,有時候一低頭一抬頭就忘記自己的多軸是哪一台了XD 這是我自己親身經歷。
當時就在思考如果有語音播放,這樣就可以一邊遙控一邊聽資料內容,不需要分心去觀看。後來rctw的kris000提出一套解決方法,透過OSD去播放語音,可以參考此網址:http://www.rctw.net/thread-335581-1-2.html
他大概作法是在多軸上面安裝一個語音播放模組,該模組由MinimOSD控制,我們都知道OSD會接收到飛控板的數傳資料,所以K兄作法是當OSD收到數傳資料後,判別數傳資料並發出語音指令給語音模組,並透過MinimOSD上面的麥克風輸入腳位回傳到地面圖傳接收器連接的FPV螢幕的喇叭。
K兄提出這作法後,這段時間我都沒有去實作,直到把遙控器從Devo10換成X9D+,把玩幾天發現X9D+上有語音播放,部分玩APM/Pixhawk會去設定X9D+的語音播放飛行模式切換,可以參考此影片
https://youtu.be/lOnQJkfAbvU?t=5m27s
知道X9D+的語音播放能力後,就開始思考要如何做到語音播放數傳,後來相繼看到X9D+整合數傳,就覺得這語音數傳整合是可行的。
大概想法就是多軸發射數傳—>地面中繼站—>X9D+收到數傳資料—>程式判別資料—>播放語音
重點就是後面這兩段,X9D+可以使用Lua script去控制,主要參考此份文件 http://www.open-tx.org/2014/07/19/Lua-reference-guide/
在此份文件後面有一份index記載數傳的對應代碼,透過getValue()可以得到數傳的值,透過playFile()可以播放語音檔案
playFile()是獨立一個排程在跑,例如你在一秒內同時下五個playfile()去播放五個分別都是四秒的語音,你會發現要20秒依序播放完畢而且無法中斷它播放,所以程式撰寫要考慮每一段語音播放時間,最好是上一個播放完畢後才可以播放下一段,例如播放現在高度,要等語音播放完高度後,程式才可以抓下一個要播放的資料。
PastedGraphic-2015-07-13-11-15.png
剩下的就是一些邏輯判斷,不斷地寫if else,所以Lua script算是簡單容易撰寫。

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+語音播放數傳資料,這樣就可以專心遙控,不需要分心低頭看數傳資料。