close

這篇充其量只能算是Rx系列的第一篇,因為只是抓到了伺服馬達的Rx信號,但是還沒有開始解碼。

一開始先來張照片,這張照片的 紅色區域,直接接到Uno的 Tx(D3);橙色區域直接拉到伺服馬達的S腳,土黃色區域是接在Uno的Rx(D2)

0xFAAF開頭的封包是Uno傳給馬達要資料的。0xFDDF是伺服馬達回傳給Uno的封包。

2014-08-27 02.19.53

第三隻腳有收到0xFD, 0XDF,表示伺服馬達有送封包回來了,伺服馬達的sign 腳平常是Rx狀態,收到Request封包後,會轉為Tx狀態,傳完後立刻變回Rx狀態。

程式碼下載:https://box.nctu.edu.tw/public.php?service=files&t=7381a303bff015030a4b02bf0edef284&download

接著用幾張照片來解釋線路的接法,請原諒我因為工作忙碌,無法用fritzing重繪一次線路,只能用照片表示。

這裡的IC,使用74HC125,利用D8這條線控制SoftSerial的Tx訊號是否能通過74HC125。
[74HC125的控制pin腳,低電位為導通,高電位為高阻抗]

2014-08-27 02.15.34

2014-08-27 02.15.37  

2014-08-27 02.15.43  

2014-08-27 02.15.51  

2014-08-27 02.16.21  

2014-08-27 02.16.32  

2014-08-27 02.16.44  

2014-08-27 02.17.15  

2014-08-27 02.18.46  

整個程式的邏輯是這樣:一開始Uno D8是低電位,所以Tx(D3)訊號可以通過74HC125,傳給伺服馬達,但是因為Uno D2( Software Serial Rx)腳也接在一起的緣故,所以Uno Rx也會收到訊號,不過這也無妨,可以從0xFDDF,過濾出是否為伺服馬達回傳的,重點在於伺服馬達有收到Uno Tx訊號嗎?從邏輯分析儀的結果,看起來是有收到。

對伺服馬達傳完要求資料的封包後,立刻把D8拉成高電位,
1.這樣子D3傳出去的封包,通過74HC125的時候,就會被擋,不會再傳到伺服馬達上。因為這時候的阻抗很高,就直接忽略這條線了吧。
2.如果不這麼作的話,Uno D2(Software Serial Rx)是收不到資料的喔,Uno D2會一直維持高電位。

從說明書上看來,伺服馬達在收到Uno傳來的封包後,預設會在100us之後,回傳自己的狀態,下圖的黃色區域是120.7us,還算合理,伺服馬達的處理器也需要時間的。

螢幕截圖 2014-08-27 02.32.42  

※因改造引起的Robi故障,本人及本站都不負賠償任,進行改造前需有小朋友出走的覺悟。

※本人沒有電子背景,作這個只是個人興趣,所以可能會有該接限流電阻結果沒接,或是要接上昇/下降電阻,卻也沒接的情形。本站的內容通常是我Try & Error出來的結果,如果有人發現我的電路有問題,拜託跟我說一聲。

arrow
arrow
    全站熱搜

    qmaw 發表在 痞客邦 留言(0) 人氣()