BASIC STAMP 實作例 - 紅外線代用遙控器(中無通訊技術稿)
本帖最後由 VR2ZWP 於 8-4-2017 01:53 編輯( 100A6005 標示圖二 )
本文作者陳嘉樂曾多次投稿中無通訊,本稿印發後,有感於編程內容有需要再加以補充,故再來有關資料,謹再次致謝!
塑膠積木組合玩具原創品牌,已加入了遙控功能組件。初時見本地有售的型號,其遙控器只是兩支上/下推桿式,沒甚新意。及至從互聯網找到相關資料,才知道其紅外線接收器所能解讀的指令集(操作功能),比較單一個原廠遙控器所使用的指令為多,值得研究。
嘗試用 BASIC Stamp 發出指令
由於 LPF RC Protocol 設有反向位元(toggle bit),同一個按鈕動作,第二次跟第一次產生的 18-bit 脈衝串是不同的。
每通道(channel)有兩個輸出(output A 和 output B)
聯合指令(combo command)同時控制輸出A和輸出B
一部份指令設有逾時終止(timeout),用BS2SX研發,優化編程後,改用BS2達到減少功耗。
副程式 ir_send 在 BS2SX 版本是用連串 IF THEN 指令;在 bs2 需要改為只用連串 PULSOUT,以配合組合玩具的紅外線通訊規程。
用集成線路 NE556N 產生 38kHz 載波(無穩態線路模式)和延時脈衝(單穩態線路模式)。
BS2 只需發出一個 2us 脈衝給 NE556N,就會產生一個 IR Mark。它是 Start/ High/ Low 抑或 Stop bit,就由隨後的延時時間決定。一個 IR Mark 最長為 1184us。
買來伸縮天線式(27MHz年代)槍形遙控器的機體改裝。鋸開原有的線路板, 保留跟膠殼配合的零件位置, 連繫自己裁製的線路板(BASIC Stamp + NE556N),電池架由 AA x8 改為 AA x6。保留連接插 5位/10位/ 電源線路,兩位 DIP 選擇掣供設定轉動方向。
兩粒串聯的紅外線發射二極管(Tx)是從舊滑鼠(滾珠式)拆出。雖然發射管(Tx)跟組合玩具的接收管(Rx)的波長(wavelength)未必達最佳配合,但有效接收距離仍然可達 3m。
本帖最後由 VR2ZWP 於 8-4-2017 00:27 編輯
( SAMA2926標示圖三 ) 本帖最後由 VR2ZWP 於 8-4-2017 00:29 編輯
( 100A5848 標示圖一 ) 本帖最後由 VR2ZWP 於 8-4-2017 00:34 編輯
( 100-5767紅外綫變速遙控器 )
改進操作
原廠遙控器有四通道供選擇,雖說可以多個遙控器同時操作,但紅外線跟無線電波不同,來自兩個遙控器的脈衝會被隨機混合,結果失效。為減免這情況發生,原廠遙控器把每訊號重複四次(共發五次),每通道有各自的重複週期。
代用遙控器使用兩通道,就是可同時操控四個輸出。每訊號只重覆一次(共發兩次)。這樣可縮短迴環時間(loop period)。
選用 ch2 和 ch3,因為原裝遙控器以推掣選 ch1 和 ch4 較容易, 這樣可兼容多個遙控器同時操作。
原廠遙控器 代用遙控器
----------------------------------------------------------------------
數值檢測 旋轉編碼 電位器(用 RCTIME,需要時間)
正反向各 7 段 左右各 2 段,前 3 段,後 1 段
----------------------------------------------------------------------
回中位功能 變速遙控器沒有 有
依賴 Servo Motor 定方向 可只用 M-motor
----------------------------------------------------------------------
控制四個輸出 兩個遙控器並排 已在單機上做到
----------------------------------------------------------------------
急停(Brake) 該通道的 A 和 B ch2A, ch2B, ch3A, ch3B 全停
----------------------------------------------------------------------
耗電 閒置時,電流極少 持續用電( bs2sx 更耗電)
AAA x3 AA x6, 可連線用外部電源
----------------------------------------------------------------------
操控效果 為孩童遊樂優化 為模型工程車優化
發射範圍廣闊 要注意對向
體積細小 不適合操作履帶模型
抗干擾較佳 本帖最後由 VR2ZWP 於 8-4-2017 08:47 編輯
( SAM-5094紅外線接收模組 )
相關事項
一般玩具使用的直流電機(DC motor)速度達每分鐘一千轉以上。組合玩具的“電機”是簡稱,其實內含遊星齒輪組(或稱行星齒輪組, epicyclic/planetary gear),把無載速度(no-load speed)減低至每分鐘 220 至 380 轉,讓小孩可以看清玩具齒輪的相互轉動關係;轉矩(torque)亦因此加大了。
組合玩具的電池盒和電機均內含自復式保險絲(resettable fuse)。
為應對拐彎時,內/外車輪不同的轉動幅度,差速軸/齒(differential gear)都是少不了。
業餘製作,趣味主導。不趕緊的時候,可以看到其他可行方案--尤其是從已停用或廢棄物拆出再用零件,輕易取得,減少廢棄物,練習靈活變通。
RC 的雙重意義 -- Radio Control, Resistance - Capacitance. 本帖最後由 VR2ZWP 於 8-4-2017 08:59 編輯
( 100A5588 用 bs2sx 確定可發出指令 )
後續方向
制動(brake)功能也值得研究 -- 使用額外電流,還是只消耗轉動組件存有的能量(轉矩, momentum) ?
優化四通道操作 -- 試在兩次相同指令之間更新 / 檢測各電位器數值。 本帖最後由 VR2ZWP 於 8-4-2017 09:03 編輯
( 100-5805連繫自己裁制的線路板 )
由意念至可操作:八個月
工餘,先要家庭時間,然後才是興趣時間。所以成事良久,才整理記錄供分享。至於電路原理圖,無暇以電腦繪製,就讓讀者從程式與本文導引得出好了。
三輪車與測試組件,用了組合玩具的型號:
8265 挖土機
8293 電機套裝(含 M-motor, 電池箱, LED燈一雙)
8879 紅外線變速遙控器(IR Speed Controller)
8882 特大電機(XL-motor)
8884 接收器(Receiver)
8885 紅外線遙控器(IR Controller)
88004伺服器電機(Servo Motor)
相關參考
LEGO_Power_Functions_RC.pdf
www.lego.com
http://itlug.8421.info/docs.php
LPF RC Protocol
- - - - - - - - - - - - - -
100_5767,紅外線變速遙控器
100_5805,連繫自己裁製的線路板
100A5415,伸縮天線式遙控器的原裝機體
100A5588,用bs2sx確定可發出指令
100A5848,標示圖一
100A6005,標示圖二
bs2_4.bmp, 程式選段一
bs2_6.bmp, 程式選段二
long_37_1.bmp,示波器圖像
SAM_5094,紅外線接收模組
SAMA2926,標示圖三
IR_LEGO.bs2,程式碼
頁:
[1]
2