2016年1月24日 星期日

遙控小車-吳志文老師研發版V2-mblock馬達與超音波測試篇

遙控小車-吳志文老師研發版V2-mblock馬達與超音波測試篇

安裝程式


  1. 安裝Arduino的驅動程式(影片)
  2. 因為下載板用的是CH304晶片,因此要另外安裝驅動程式(影片)
  3. 安裝mblock的軟體(影片)

連接mblock與小車

  1. 將小車的下載板、USB連接線、杜邦排線接妥,如圖1,檢查電腦是否抓到小車的驅動程式,並檢查其與電腦的連接窗口代號,如圖2,開啟mblock軟體,設定UNO板、串列窗口,並上傳韌體,如圖3,按下使用馬達的Switch,如圖4,並將小車架高使車輪懸空。(影片)

圖片1:連接下載板、電腦、小車


圖片2:檢查驅動與通訊窗口

圖片3:確認mblock與小車連接

測試馬達運作


先拉出「設置數位腳位積木」並將其設定成10、高電位,然後拉出「設置PWM腳位積木」,設定為5、0,將其兩個積木連接在一起後,快點兩下滑鼠左鍵後你會發現右輪全速向前旋轉;接下來修改第5腳輸出為50、100、150、200,你會發現速度會越來越慢,255時會停止,你也可以手動輸入0~255其中任何數值,例如20、89、241...,最後你會發現當第10腳是高電位時,第5腳的PWM數字越小,轉動越快,這是因為它們(D10到D5)的電位(電壓)差比較大,而第5腳的PWM數字越大,轉動越慢,這是因為它們的電位差比較小;












圖5:右輪正轉速率調整

※P.S.電位差小於某個數值時,馬達無法啟動,因為馬達在啟動的瞬間需要比較大的動能,類似最大靜摩擦力的概念,當已經在轉動時,電位差即使小,也還會轉動,就像動摩擦力比最大靜摩擦力小的意思一樣。

接下來,將10設為低電位,調整5的PWM在0~255之間,你會發現,10設低電位,輪胎會倒轉,5腳PWM的數字越高,則轉動越快,越低,則轉動越慢。

圖6:右輪逆轉速率調整

知道原理以後,你可以再測試左輪,左輪的使用方式和右輪相同,不再贅述。之後我們得出一個左右輪運作的列表:(P.S.使用L293模組的會跟這種方式不同)



左輪
右輪
前進
D11 高電位
D10 高電位
前進時功率調整
D6  0最快←→255停止
D5  0最快←→255停止
後退
D11 低電位
D10 低電位
後退時功率調整
D6  255最快←→0停止
D5  255最快←→0停止


然後我們要想像一下,如果車要前進,就是兩輪一起向前,向後倒退,就是兩輪一起後退,而左轉(原地旋轉)就是左輪後退右輪前進,而右轉(原地旋轉)就是右輪後退左輪前進,停止則是將兩腳位設定成一樣是低電位,或一樣是高電位即可;因此我們可以利用“廣播功能積木”將車子的前進、後退、停止、左轉、右轉的功能組合出來,而且因為每一顆馬達的輸出不一定會相同,因此也能在這裡做微調,如下圖:


圖7:各個輪子的控制


圖8:車子的控制


超音波感測器的使用

這裡的超音波用的是SR-04,mblock裡有專屬的積木,可以測試前方障礙物的距離,單位是公分,最遠約到160公分左右;但是S4A就無法使用了,這也沒辦法,無法兩邊兼顧,因此如果是S4A的使用者,只好自己另購U-016了

超音波感測器部分:Trig/D2、Echo/D4


圖9:超音波感測器的控制

殘念


  1. P.S.因為mblock支援UNO的部分BUG其實還很多,在按下綠旗旁的停止按鈕時會造成右輪仍然持續轉動,還是得手動按一下程式中的右輪停止。(用S4A沒這問題)
  2. 至於紅外線的部分也是,mblock對於連續讀取A0~A5的輸入,好像非常的不穩定(單一個又好像可以),又很當,因此無法測試...
  3. mBlock支援自家的產品mBot很穩定,可惜支援開放硬體的部分好像沒有很積極改進,許多地方不是很穩定,不管是輸出的控制、或是輸入的偵測,總是有許多狀況,這就是我還不敢在學校推行mBlock的理由,畢竟目前還是S4A最穩!
待續
  1. 最近(105.02.01)在宜蘭的研習見識到Webduino,很適合拿來做進階感測器的使用和上雲端互動,除了沒有S4A的多媒體和mBlock的燒錄外,進階的感測器、元件的控制、與雲端的結合超級簡單,雖然是新公司(慶奇科技),到是很值得關注。
  2. 至於吳組長自製的感測器,他尚未大量生產,工程樣本測試起來很正常,請稍待文章與影片...
  3. 另外由於這車子是UNO的標準擴充座,因此UNO能玩的他都可以用,我建議國中小買一下通用的感測器擴充板V5,來連接各式各樣的感測器和元件;或是購買motoduino即將出版的第二代S4A學習板,作為一般教學的擴充,畢竟.... Arduino不是只有機器人一條路,可以用在生活上很多的創意!






2016年1月23日 星期六

遙控小車-吳志文老師研發版V2開箱文

遙控小車-吳志文老師研發版V2

想做車子或機器人的移動底盤,一般而言有下列幾種方式:

  1. 直接用兩個連續旋轉伺服機+萬向輪:這種最簡單,馬達兩顆約500,不含車體
  2. 使用L298N模組+兩個直流減速馬達:要DIY,車體連馬達及L298N模組約500
  3. 直接購買做好的車子,例如下面所要介紹的吳老師自行研發的,約1650左右
  4. 直接購買mbot,約3000元,或是樂高、智高積木,可自行組裝,價格我不清楚。


前年吧?(2013)吳志文老師研發了一款專門用來學走迷宮、循跡、遙控的Arduino小車,經由蘇恆誠老師老師在松山工農的研習中,讓我們大開眼界,唯一可惜的是他教的程式是C、Ardublock、App Inventor,這對我們國小來說,比較難以推廣,以目前市面上S4A、mBlock能用的小車,除了簡單的兩顆連續旋轉Servor+自製車體外,就是廉價的土炮智能小車車體+L298N馬達控制模組。於是我和鄭之婷就對吳老師的小車寄予厚望,希望吳老師可以稍微改版一下,讓腳位符合S4A的規範,因為S4A是腳位定的最死的,如果S4A能做的,mblock一定能做,其他ardublock、C更不會有問題,如此一來,國中小學習車子的控制又多一項選擇了。


圖1:利用2顆連續旋轉Servor+自製車體以S4A控制的小車(最簡單)


圖2:土炮智能小車車體+L298N模組+一般直流減速馬達所做的車體(速度較快)

去年(2015)年底,就收到了老師寄來的V2新版小車,針對S4A做了改版,因此S4A、mBlock也能用,接下來我們就來看看這台整合度相當高的小車,原來學車子的控制也可以不需要了解車體的製作歐!更何況它的價格只有mbot的一半....


圖3:整合性高的Ardu_Car_S4A V1.0,其實是第二版,這台車的馬達腳位針對S4A修改成右輪為D5(PWM)+D10(方向)、以及左輪D6(PWM)+D11(方向)來控制,而mblock因為可以自訂腳位,所以也能使用,也有擴充版的插座方便使用與擴充,用起來和UNO是完全一樣的。


圖4:右側的Switch,要使用馬達和超音波時要記得壓下去,它的定義如下:
Tr/Ec:超音波感測器的發射與接收
ML:左馬達的控制接腳(1數位1PWM),D6(PWM)+D11(方向)
MR:右馬達的控制接腳(1數位1PWM),D5(PWM)+D10(方向)


圖5:左後方的Switch,要使用藍芽和前方的紅外線感測器時記得要壓下去做選擇,藍色是外接電源的開關,黑色是把PWM功能的腳位做成外接擴充的杜邦插座,還有micro usb的連接線插座,手機充電線就能使用,無須另外購買(有附送),Switch接腳定義如下:
1:藍芽開關
2~6:A0~A4循跡用的紅外線開關


















圖6:右下角是用來連接下載板的插座,這台車寫程式要用吳老師自製的下載板,一般的UNO板子是內含下載板功能的,吳老師把他分開是因為下載板還有其他的用途。


圖7:這是吳老師自製的下載板


圖8:馬達採用高品質、體積小,金屬齒輪的N20,不是一般土炮用的學生做實驗用的直流減速馬達,N20耐用多了,而且需要的電流更小


圖9:完全符合UNO規格的擴充板插槽,可以和UNO一樣加擴充板或做其他用途的學習,還有藍芽插座


圖10:吳老師自製的感測器擴充板,用來做基礎的感測器控制學習,有三個滑動電位計(可變電阻)、2個按鈕、1個搖桿、1個RGB全彩燈、3個綠、黃、紅的LED燈、還有一個無源的蜂鳴器(mblock可調音階、S4A頂多低頻聲),※要注意的是,這片擴充板不能和馬達的功能同時使用,他的接腳控制如下:

OUTPUT
Digital12:綠燈
Digital10:紅燈
Ddigital11:黃燈
Ddigital13:蜂鳴器
Analog9B
Analog6G
Analog5R

INPUT
Analog0:搖桿左右
Analog1:搖桿上下
Analog2:左VR
Analog3:右VR
Analog4:中VR
Digital2:左開關
Digital3:右開關(搖桿開關)

超音波感測器部分:
Trig:D2
Echo:D4


圖11:其他配件:有2個電池盒(3號*4、18650可充電,可當行動電源)、1個超音波SR-04(S4A不可用,mBlock可以,建議改成US-016,就全都能用)、還有藍芽、電源線、USB線,和一個工具盒




影片-使用S4A測試(續待)

影片-使用mBlock測試(續待)

S4A-土炮製作遙控車-L298N馬達控制原理

S4A-製作遙控車-L298N馬達控制原理
使用L298N製作遙控車步驟(針對一般廉價車體,或自製車體)

1.        組裝車體:


Ø  撕掉車架壓克力上的貼紙(平均力道較易移除)
Ø  焊接馬達電線(不分正負極,11)
Ø  組裝馬達與車架並連接車輪。
Ø  組裝萬向輪(不一定要墊高)
Ø  安排與固定Arduino機板、電池盒、L298N模組位置,注意擴充板組合時會不會擋住、還有鎖線材時會不會擋住、線材是否夠長等問題,可用3M可重複使用雙面膠或是黏土固定。
Ø  組合擴充板、安排固定走線與位置。

2.        連接線材:


Ø  電池盒  擴充板
======  ======
+(紅線)←→VCC
-(黑線)←→GND

Ø  L298N  馬達
=====  ======
OUT1←→右馬達紅線
OUT2←→右馬達黑線
OUT3←→左馬達紅線
OUT4←→左馬達黑線

Ø  L298N  擴充板
=====  ======
In1←→S5(D5)──┬右馬達控制
In2←→S10(D10)─┘
In3←→S6(D6) ──┬左馬達控制
In4←→S11(D11) ─┘
VCC←→VCC(與電池盒共鎖同一接點)
GND←→任一G(GND)
5V←→任一V(5V)

3.        調整跳線與準備:


Ø  安裝擴充板SEL跳線(選擇由電池盒供電)
Ø  安裝乾電池
Ø  將車體置放於置物盒上並將車輪懸空
Ø  連接ArduinoUSB與電腦連線
Ø  驅動Arduino與上傳S4A韌體(做過一次即可,日後不用再做)

4.        L298N馬達模組先備知識:


Ø  ENAENB5V表示使用啟用控制馬達輸出,能開、關、正轉、逆轉、PWM控制輸出功率大小;其控制接腳兩個一組,一組一個數位輸出控制方向、一個PWM輸出控制功率。本例安排如下
Ø  In1D5控制右馬達功率
Ø  In2D10控制右馬達方向
Ø  In3D6控制左馬達方向
Ø  In4D11控制左馬達方向
Ø  如果馬達控制方向與你想像不同,建議交換OUT馬達腳位的電線即可,也可將成程式相反設定(較不直覺)

5.        單輪程式測試:(P.S.如果你使用的是L293模組,控制方式會不同)


Ø  準備五個程式積木如下,在未點擊任何積木時接腳輸出均為off0,且當你未點擊改變狀態時,他會維持現在狀況。
Ø 
Ø  (目前D10offD50):先雙擊“digital 10 on”發現右輪以全力向前轉動,再點擊“analog 5 value 128”發現右前輪以半力向前轉動,再點擊“analog 5 value 255”發現右前輪停止。
Ø  (目前D10onD5255) :先雙擊“digital 10 off”發現右輪以全力向後轉動,再點擊“analog 5 value 128”發現右前輪以半力向後轉動,再點擊“analog 5 value 0”發現右前輪停止。
Ø  (目前D10offD50)這次點擊“analog 5 value 128”讓輪子以半速旋轉,當我們點擊“digital 10 on”會發現輪子向前旋轉,當我們點擊“digital 10 off”會發現輪子向後旋轉。
Ø  將輪子停下(D10on & D50 )(D10off & D5255)
Ø  以同樣方法測試左輪後並將輪子停下(D11D6)
Ø  我們將會歸納出以下內容:

左輪D11:方向/D6:功率
右輪D10:方向/D5:功率
方向
D11on向前
D11off向後
D10on向前
D10off向後
功率
255停←→0全力
小←→大
255全力←→0
大←→小
255停←→0全力
小←→大
255全力←→0
大←→小
Ø  我們用圖示比較容易說明:

Ø

Ø  注意:馬達一開始轉動時功率需求比較大。

6.        車子程式控制:


常用控制方式
左輪
右輪
停止
停止
D11:on&D6:255
D11:off&D6:0
停止
D10:on&D5:255
D10:off&D5:0
前進
前進
D11:on&D6:0~128
前進
D10:on&D5:0~128
後退
後退
D11:off&D6:255~128
後退
D10:off&D5:255~128
原地左轉
後退
D11:off&D6:255~128
前進
D10:on&D5:0~128
原地右轉
前進
D11:on&D6:0~128
後退
D10:off&D5:255~128
左輪為軸心左轉
停止
D11:on&D6:255
D11:off&D6:0
前進
D10:on&D5:0~128

右輪為軸心右轉
前進
D11:on&D6:0~128
停止
D10:on&D5:255
D10:off&D5:0

7.程式範例:


先定義前進、後退、停止、左轉、右轉


再定義控制按鍵