VR2ZWP 發表於 2-4-2017 12:58:33

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 發表於 2-4-2017 13:07:53

本帖最後由 VR2ZWP 於 8-4-2017 00:27 編輯


   ( SAMA2926標示圖三 )

VR2ZWP 發表於 2-4-2017 13:09:40

本帖最後由 VR2ZWP 於 8-4-2017 00:29 編輯


       ( 100A5848 標示圖一 )

VR2ZWP 發表於 2-4-2017 13:15:43

本帖最後由 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 發表於 2-4-2017 13:19:26

本帖最後由 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 發表於 2-4-2017 13:23:31

本帖最後由 VR2ZWP 於 8-4-2017 08:59 編輯


   ( 100A5588 用 bs2sx 確定可發出指令 )

後續方向

制動(brake)功能也值得研究 -- 使用額外電流,還是只消耗轉動組件存有的能量(轉矩, momentum) ?

優化四通道操作 -- 試在兩次相同指令之間更新 / 檢測各電位器數值。

VR2ZWP 發表於 2-4-2017 13:30:02

本帖最後由 VR2ZWP 於 8-4-2017 09:03 編輯


      ( 100-5805連繫自己裁制的線路板 )

由意念至可操作:八個月
工餘,先要家庭時間,然後才是興趣時間。所以成事良久,才整理記錄供分享。至於電路原理圖,無暇以電腦繪製,就讓讀者從程式與本文導引得出好了。

VR2ZWP 發表於 2-4-2017 13:32:24

三輪車與測試組件,用了組合玩具的型號:
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,程式碼

VR2ZWP 發表於 7-4-2017 22:19:18


VR2ZWP 發表於 7-4-2017 22:23:12


頁: [1] 2
查看完整版本: BASIC STAMP 實作例 - 紅外線代用遙控器(中無通訊技術稿)