Arduino 智能小車實作-雙舵機移動的測試程式

我使用了兩個舵機 (MG995) +雲台放置於小車前方,目的是裝上如超聲波感測器後,可以讓其上下、左右移動。
雙舵機移動測試

目前已把兩個舵機含雲台給裝上小車上了,同時也把超聲波感測模組給鎖上雲台支架上,這樣看起來像雙機器人眼睛。
雙舵機移動測試

現在先把兩個舵機的測試程式寫好,至於超聲波模組的測試程式則留待另一篇討論。

舵機控制的程式相當簡單,因為 Arduino 已內建 函式庫,已經把較低階以脈衝訊號控制角度運轉的指令包裹 (wrap)成只用 write() 較高階的指令,並帶入角度 (0~180) 的整數參數即可控制舵機往所指定的角度移動。

舵機有三條電源線,一般棕色為接地、紅色為電線線;還有一條橘色則為訊號線。在 Arduino 擴展板上連接任一編號的 GVS 接腳即可。本例兩個舵機是連接編號為 4與5 的接腳組。

再來注意的是,MG995 舵機的轉向角度為 180度,但實際連接到小車後可移動角度因與其它裝置會碰觸到,所以需要經過調整,往往會小於 180度。本例控制左右的舵機把角度控制在 0~160 度;控制上下的舵機把角度控制在 0~125 度。

測試程式參考如下:

閱讀全文 »

Arduino 智能小車實作-輪胎轉動的測試程式

關於小車的轉動部分,已完成所有的接線,並已撰寫好轉動的測試程式。測試的程序需要包括 前進/後退、左轉/右轉等行進的方向;同時也需要測試轉速部分,可以調整輪胎轉動的速度。

可以先觀賞下我在 Youtube 發佈的影片:

控制小車馬達的行進方向是透過 L298N IN1~IN4 接腳的電位控制;而控制轉速則是將脈衝訊號輸入至 L298N 的 ENA/ENB。
(IN1/IN2/ENA 為馬達A的控制;IN3/IN4/ENB 為馬達B 的控制,一般 L298N 可控制兩顆馬達。)

可以參考如下圖馬達 A 的接腳說明。
L298N EN/IN 接腳說明

閱讀全文 »

Arduino 智能小車實作-連上電源與舵機測試

前日 (星期六) 把主要的電線連結起來測試馬達運轉。本來是很順利的,結果把上層壓克力板拆下來準備再接上額外的訊號控制連接線時,一個不注意竟然造成電池短路,很快的就冒岀一股燒焦味。我趕快把電池挖出來 (還好電池沒燒壞),但電池盒已燒毀,有幾根電線也燒黏在一起。

天啊!!現在我才知道 18650 鋰電池的可怕!這讓我學到一件事:不使用且沒有保護電路的情況下,隨時都要把電池拿出來。

這裡先說明一下,小車輪胎馬達是透過 L298N 控制模組來驅動的;L298N 可以控制兩顆馬達的驅動,而我這小車套件是 2WD 驅動,所以剛剛好。L298N 可以控制正、反轉,甚而控制轉速,而這些都需要再連接包括 IN(1~4)、EN(A,B)等連接埠,所以得要接上好幾條電線。這部分就留待到作輪胎運轉測試時,一併連 Arduino 控制程式再作說明。
測試舵機 MG995 驅動

對了,馬達這邊我還加裝了 0.1(104) uf 電容,比較能保護突兀而來的大電流而燒毀馬達。
測試舵機 MG995 驅動

因為當日我沒有備用的電池盒,所以乾脆轉而來測試舵機看看。 (舵機這用詞是大陸用語,英文稱為 servo、我們台灣地區則稱為伺服馬達。)

閱讀全文 »

Arduino 智能小車實作-鑽孔與配置

我這台小車套件是兩層式壓克力板的車體設計,基本上要搭載 Arduino UNO 與 L298N 電路板、電池盒、可上下左右移動的舵機 (伺服馬達),以及超聲波、藍芽等感測通訊元件,空間是足夠的。但是真要全放在一起,又不致感覺壅塞與突兀,還是需要花些心力思考該如何配置。

嗯,幾經試著幾次擺設,就決定把 L298N 放到底層靠馬達後方處;電池盒放在上層最後邊,Arduino UNO/擴展板 置於上層中間處,而超聲波、舵機等,未來它會作為車子的「眼睛與頸椎」,當然就是置於車子上層的最前方。

目前優先把動力部分給搞定再說,所以舵機還不需要放上去,先預留位置即可。規劃大致的擺設位置後,就要開始施工執行了,主要的工作就是鑽孔然後擺上組件、鎖上螺絲即可。

話說我這兩層壓克力板,店家已經鑽好許多孔位了,但卻完全一個都用不上;後來我旺旺給賣家抗議說車體號稱與 Arduino 相容,卻根本沒有該電路板的預留位置,我懷疑這壓克力板的孔位應該是給其它類型的控制板用的。(店家很內疚,所以準備待我再次採購時會再折扣便宜些。)

所以所有組件擺放的位置都必須鑽孔;還好月初我已經到光華商場 (國際廣場)的電子商家採購一番,其中迷你電鑽也是採購的項目之一,這也該算是 DIY 玩家所必備的「機絲」。

把電路板等組件擺到要固定的位置,然後用奇異筆在螺絲孔處塗個圈圈做記號,然後電鑽就給它鑽下去了。注意固定住不要滑動,反正多鑽幾次就會圓熟了。
小車鑽孔與配置

閱讀全文 »

Arduino 智能小車實作-關於電源供電方案

關於 18650 電池盒 (8V 電壓),同時供電给 Arduino Uno 主板/Shield V5.0 擴展板 與 L298N 雙橋馬達驅動板的麵包板實驗連接,可以參考錄影畫面:

關於小車輪胎的馬達驅動,一般會透過 H橋式 (H-Bridge)的馬達控制電路 (大陸地區稱為電機模塊),來控制馬達的正反轉與轉速。

我所購買的馬達模板算是用於遙控車最為普及的「雙橋式 L298N」,淘寶購買帶光耦的L298N 售價才約台幣 NT$120,可以同時驅動兩個直流馬達 (或者一個兩相四線步進馬達);邏輯輸入部分加入光電隔離模塊,從而提供更好的保護控制器。
雙H光耦L298N電機控制板

L298N 的直流電源輸入,範圍可以從 3~36 V,而小車驅動馬達為 3~6 V。原來小車提供的電池盒是 AAA 4號電池x4顆,輸入電壓為 6V (1.5V x 4);我把它改裝為 18650 x 2 顆的鋰電池,驅動電壓為 7.2V (3.6 x 2,充滿電測量有 8.05 V)。電壓大些驅動馬達會更為有力,但也不能超出太多,免得燒壞。

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal