WFduino第20課遙控車
步驟概要:
1.接線
2.啟動scratch2.0及WFduino
3.利用Arduino的數位腳來發出訊號,控制左、右馬達的正、反轉,讓小車前、後、左、右移動。
材料:
自走車(智能小車)底盤套件、L298N 馬達驅動板、電線、外接電池(盒)、按鍵、麵包板、烙鐵、焊錫。
組合:
1.先將直流減速馬達的電線焊接出來(用軟的電線,硬線容易將馬達的連接銅片折斷)
2.再依照說明書將自走車的底盤、馬達、輪子等組裝完成。
鎖馬達時要注意螺絲方向,以免螺絲伸出卡到輪緣。
3.馬達連接
自走車底盤套件,動力就是直流減速馬達,Arduino控制板的輸出訊號無法直接驅動馬達,需要使用一個L298N 馬達驅動板來協助。(註)
12V連接外部電源,(直接連接Arduino板的Vin,錯誤示範)。
正確的作法,應該要分開2組電源分別接L298N和Arduino。
Arduino供電:電池組接圓形的電源輸入插座,或5V行動電源接USB連接埠
L298N供電:電池組(8V以上)另外12V,負極接GND
GND接Arduino板的GND
5V接Arduino板的5V
IN1~IN4分別接Arduino板的數位腳,例如:D5、D6、D9、D10
OUT1、OUT2接左邊馬達
OUT3、OUT4接右邊馬達
直流馬達 | 旋轉方式 | IN1 | IN2 | IN3 | IN4 |
M1 | 正轉 | 高 | 低 | – | – |
反轉 | 低 | 高 | – | – | |
停止 | 低 | 低 | – | – | |
M2 | 正轉 | – | – | 高 | 低 |
反轉 | – | – | 低 | 高 | |
停止 | – | – | 低 | 低 |
1.利用Arduino的數位腳來發出訊號,控制左、右馬達的正、反轉,讓小車前、後、左、右移動。
2.外接電源可以讓小車行走更順暢,也可以省略。
—————————–
用鍵盤操控小車
—————————-
設定停止按鍵(這裡用[空白鍵]),當發生亂跑情形時,就可以按[空白鍵]鍵停止。
用鍵盤的上、下、左、右鍵來控制車子前進、後退、左轉、右轉,[空白鍵]停止。
注意:
記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。
IN1~IN4分別接Arduino板的數位腳位D5、D6、D9、D10
數位腳位D5、D6控制右輪(馬達M1),數位腳位D9、D10控制左輪(馬達M2)。
因為每個指令依序進行,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。
建議使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為依序執行的延遲造成轉動時間差。
A.數位控制
1.設定12、13、14、15為OUTPUT
2.按下按鍵分別讓個腳位輸出不同的電位,讓2顆馬達做動作
程式下載:數位控制.sb2
因為沒有負載,如果將外接電源移除,直接使用USB線連接提供電源,也可以緩緩移動。
B.數位控制(改進)
上面的程式按鍵後腳位持續輸出訊號,馬達持續運轉,感覺無法掌控。
增加等待0.5秒後,停止馬達動作,這樣只要放開按鍵,經過0.5秒,馬達就停止。
感覺就是有按著按鍵才會動,放開就停止。
程式下載:數位控制1.sb2
C.類比控制
前面的數位控制馬達轉動速度太快了,不好控制。改用類比控制,可以控制馬達的轉動速度。
使用類比電壓輸出,調整IN1~IN4的電壓差來控制馬達轉速,調整小車速度。
arduino的類比輸出範圍是0~255,因為外接電源輸出太大,所以這裡只用100
1.設定5、6、9、10為OUTPUT
2.按下按鍵分別讓個腳位輸出不同的類比電位,讓2顆馬達做動作
程式下載:類比控制.sb2
D.類比控制(改進)
上面的程式按鍵後腳位持續輸出訊號,馬達持續運轉,感覺無法掌控。
增加等待0.5秒後,停止馬達動作,這樣只要放開按鍵,經過0.5秒,馬達就停止。
感覺就是有按著按鍵才會動,放開就停止。
程式下載:類比控制1.sb2
延伸:
只有D3、D5、D6、D9、D10、D11六個腳位可以模擬類比輸出,這裡用掉4個。
如果其他感測器也需要使用模擬類比輸出,模擬類比輸出不夠用時,我們可以想想看如何減少類比輸出也可以達到[類比控制]的效果。
使用2個數位輸出+2個類比輸出也可以達到[類比控制]的效果喔。
註:
還有一種直流馬達驅動模塊,接線較簡單價格也較便宜,L9110S 直流馬達驅動模塊。(請參考http://blog.ilc.edu.tw/blog/blog/868/post/104089/681767)
市面上常見的L9110S有上面兩種形式,兩種L9110S的訊號線接頭位置不一樣,請注意看清楚。
———————————-
相關連結:
WFduino Chrome App
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303
初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433
設計視訊互動遊戲超簡單
http://blog.ilc.edu.tw/blog/blog/868/post/10898/621592
WFduino課前準備
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665
WFduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745
WFduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840
WFduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841
WFduino第四課(3顆LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850
WFduino第五課(PWM模擬類比輸出)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450
WFduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508
WFduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509
WFduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090
WFduino顏色猜猜機(第8-1課)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091
WFduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092
WFduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093
WFduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094
WFduino第十二課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095
WFduino第十三課(繼電器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096
WFduino第十四課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850
WFduino第十五課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852
WFduino第十六課(七段顯示器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853
WFduino第十七課(搖桿)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/645549
WFduino第十八課視訊控制
http://blog.ilc.edu.tw/blog/blog/868/post/97509/647945
WFduino第十九課語音控制(for scratch2.0)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/644624
WFduino第二十課(遙控車)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/648422
英文聽音打字練習(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484
會說時間的鬧鐘(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772
會說話的九九乘法表(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482
WFduino 小技巧
http://blog.ilc.edu.tw/blog/blog/868/post/10898/649653
WF8266R無線遙控車
http://blog.ilc.edu.tw/blog/blog/868/post/10898/648630
WFduino語音控制(forcratchX)
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592
WFduino無線操控arduino
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819
WFduino原廠使用方法介紹網頁
http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks
WFduino for ScratchX
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190
WF8266R雲端外部感應器