最近與 CAVE 經常通電郵,討論新書與藍芽通訊等問題,在此分享個人觀點給大家參考。
毓祥想嚐試以 Android 手機為感測器,透過藍芽通訊把 Segway 運動狀態回傳給 NXT,遭遇到迴授延遲的困擾。
在迴授控制系統,也就是有檢知再調整的系統,迴授的速度應該要快於控制的速度,如果控制快於檢知,那將會控制過度。這樣的系統下該如何控制呢?我的建議是
放慢控制的時間,也就是說檢知到最新的狀況才來調整,如果可以的話,甚至等到控制穩定再進行下一步動作。
個人粗略估計,這系統可能需要 200ms 週期時間,因為 Android 感測需要時間、藍芽傳送需要時間、NXT解碼也需要時間,甚至馬達的穩定時間, 如果系統可以設計成 NXT 直接檢知、直接控制那是最好,延遲問題可以有顯著改善。
還討論到藍芽不配對可否加速通訊?因為這不是標準 Bluetooth SPP 做法,NXT 需要改寫韌體,它像是發射端對外廣播,不管接收端是否收到資料,因此有遺失資料風險,很像藍芽耳機會丟失封包。另外曾聽別人說有一種藍芽廣告機傳簡訊,做法很相近,不過接收端也要確認是否接收。就算有辦法搞出來,這系統的感測週期還是會很慢,通訊時間不會縮短太多,難以達成即時反應的需求。
最後再補充一點,藍芽通訊會有斷斷續續傳送資料的情形,當有一串較長的資料要傳送時,藍芽可能會分段傳輸,如果傳送的資料沒有結尾字元,那有誤判的可能,接收端須以結尾字元當結束,以免誤判。
寡人新創作的「維諾廣場」竟然特別好玩!
-
維諾廣場是一款二人弈棋(抽象策略遊戲),玩法簡單,相當有趣。
規則簡介:每方有三種棋子:法諾、米諾、維諾,盡量落下所有棋子,每個棋子落下都能加分,如果棋子的正方形組成了2×2的正方形,則可額外加4分,3×3則可加9分。互換先後手玩兩局,總分高者獲勝。
點開直玩: vino249
原本在9月中旬,大部分功能就...
1 週前

今天嘗試讓segway直立後,用手機藍芽控制來操作segway前進後退,結果好像沒用?是不是當segway在程式run的過程,不接受外部的direct command control?
回覆刪除http://cmackimo.blogspot.com/2011/08/segway.html
薛老師您好,
回覆刪除Direct command control 它隨時可以控制 NXT 動作,因為不清楚你控制端程式如何設計,無法詳細說明問題在何處。