新DiFi第18課無線自走車
使用新DiFi學習板來控制小車成為遙控自走車。
硬體:新DiFi學習板+小車+L9110S直流馬達驅動模塊+超音波感測器
軟體:Scatch2.0+WFduino
主要架構如下圖:
——————-
材料:
自走車(智能小車)底盤套件、L9110S 直流馬達驅動模塊、超音波感測器、電線、外接電池(盒)、麵包板、烙鐵、焊錫。
組合:
1.先將直流減速馬達的電線焊接出來(用軟的電線,硬線容易將馬達的連接銅片折斷)
2.再依照說明書將自走車的底盤、馬達、輪子等組裝完成。
鎖馬達時要注意螺絲方向,以免螺絲伸出卡到輪緣。
3.馬達連接
自走車底盤套件,動力就是直流減速馬達,新DiFi學習板的輸出訊號無法直接驅動馬達,需要使用一個L9110S 直流馬達驅動模塊來協助。(註)
市面上常見的L9110S有上面兩種形式,兩種L9110S的訊號線接頭位置不一樣,請注意看清楚。
L9110S左邊分別接小車兩邊的直流減速馬達A和B的兩個接頭,右邊接新DiFi學習板。
A-1A、A-1B分別接新DiFi學習板的D1、D2
B-1A、B-1B分別接新DiFi學習板的D6、D7
GND接新DiFi學習板的GND(錯誤示範,可能會燒掉)。
VCC接新DiFi學習板的5V(錯誤示範,可能會燒掉)。
正確的作法,應該要分開2組電源分別接L9110S和DiFi。
新DiFi學習板供電:電池組接圓形的電源輸入插座,或5V行動電源接USB連接埠
L9110S供電:電池組(或5V行動電源)另外正極接VCC,負極接GND
注意:
1.因為馬達的耗電量很大,容易造成連線當掉,最好另外接電源供電。
2.直接使用USB線連接電腦時,會造成連線當掉,可以先將L9110S的VCC和學習板的杜邦線先拔掉,等wifi設定好後,拔掉USB線,改接行動電源時,再接上。
3.也可以直接在學習板上外接電源。
各腳位的輸出值高低請參考下表調整。
直流馬達 | 旋轉方式 | A-1A | A-1B | B-1A | B-1B |
M1 | 正轉 | 高 | 低 | – | – |
反轉 | 低 | 高 | – | – | |
停止 | 低 | 低 | – | – | |
M2 | 正轉 | – | – | 高 | 低 |
反轉 | – | – | 低 | 高 | |
停止 | – | – | 低 | 低 |
1.利用新DiFi學習板的數位(或類比)腳位發出訊號,控制左、右馬達的正、反轉,讓小車前、後、左、右移動。
2.外接電源可以讓小車行走更順暢。
3.因為接線關係,馬達正轉、反轉跟小車前進方向可能會有不同,實際使用時請自行調整輸出腳位即可。
4.無線連接方法請看新DiFi第16課無線連接(http://blog.ilc.edu.tw/blog/blog/868/post/104089/678445)
5.無線連接時,因為Scratch執行時會一直不斷的傳訊號,而無線傳輸本來就有速度上的限制,所以程式中每個指令下需要加上等待時間,讓資料(訊號)有時間傳送,才不會造成資料(訊號)跟不上程式,等待時間看網路品質而定,一般約等待0.3秒。
—————————–
一、用鍵盤操控小車(數位控制)
設定停止按鍵(這裡用[空白鍵]),當發生亂跑情形時,就可以按[空白鍵]鍵停止。
用鍵盤的上、下、左、右鍵來控制車子前進、後退、左轉、右轉,[空白鍵]停止。
注意:
記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。
注意:
因為無線連接時,每個指令間需要加上等待時間,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。
以下範例請修正為:使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為延遲造成輪子轉動的時間差,影響正確路徑。
1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。
2.按下按鍵分別讓個腳位輸出不同的電位,讓2顆馬達做動作。
3.按下按鍵後腳位持續輸出訊號,馬達持續運轉,無線傳輸速度較慢,怕無法及時掌控。增加等待0.5秒後,停止馬達動作,這樣只要放開按鍵,經過0.5秒,馬達就停止。必須一直按著按鍵才會動,放開就停止。
程式下載:小車(數位).sb2
二、鍵盤控制小車(數位同時輸出)
因為無線連接時,每個指令間需要加上等待時間,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。
使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為延遲造成轉動時間差。
程式下載:鍵盤控制小車(數位同時輸出).sb2
三、用鍵盤操控小車(類比控制)
設定停止按鍵(這裡用[空白鍵]),當發生亂跑情形時,就可以按[空白鍵]鍵停止。
用鍵盤的上、下、左、右鍵來控制車子前進、後退、左轉、右轉,[空白鍵]停止。
前面的數位控制馬達轉動速度太快了,不好控制。改用類比控制,可以控制馬達的轉動速度。
使用類比電壓輸出,調整D1、D2和D6、D7的電壓差來控制馬達轉速,調整小車速度。
類比輸出範圍是0~255,請依實際情形調整。
注意:
記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。
1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。
2.按下按鍵分別讓個腳位輸出不同的電位,讓2顆馬達做動作。
3.按下按鍵後腳位持續輸出訊號,馬達持續運轉,無線傳輸速度較慢,怕無法及時掌控。增加等待0.5秒後,停止馬達動作,這樣只要放開按鍵,經過0.5秒,馬達就停止。必須一直按著按鍵才會動,放開就停止。
程式下載:小車(類比).sb2
延伸:
因為無線連接時,每個指令間需要加上等待時間,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。請修整為:使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為延遲造成轉動時間差。
四、生日快樂
當燈暗時,小車停止不動,燈亮時,小車往前走,再唱生日快樂歌。
使用光敏電阻感應光線變化,蜂鳴器發出音樂。
使用Jump直接將A0和[PhotoR](光敏電阻)、D8和BEEP(蜂鳴器)兩兩接上。
1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。
2.[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。
3.重複執行,讀取A0的值,如果A0的值大於800(光敏電阻感應到亮光),就發送前進指令,然後唱生日快樂歌(新DiFi板子上的蜂鳴器)。
程式下載:小車(生日快樂).sb2
延伸:
因為無線連接時,每個指令間需要加上等待時間,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。請修整為:使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為延遲造成轉動時間差。
五、避障小車
小車遇到障礙物自動會後退、轉彎,再前進。
主要接線同上面,增加一個超音波感測器。
1.超音波感測器的Vcc接5V,Gnd接地,Trig接腳位5,Echo接腳位3
超音波感測器原理及詳細接線,請參考WFduino第十二課超音波感測器
2.程式部分可以視偵測結果自由發揮。
3.空曠場地可以調整類比輸出大一點,走快一點。場地狹小,類比輸出就要小一點,走慢一點,以免反應不及撞到。
1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。
2.重複執行超音波偵測,如果超音波偵測值大於50,就往前進,否則就向後退、轉彎。
程式下載:小車(避障).sb2
延伸:
因為無線連接時,每個指令間需要加上等待時間,會造成馬達轉動的時間延遲,小車無法正確執行指令效果。請修整為:使用[同時輸出]積木,可以同時控制四個腳位輸出,就不會因為延遲造成轉動時間差。
六、跟屁蟲小車
小車跟在主人移動,主人往前走,小車就往前走,主人停止,小車就停止;主人後退時,小車也會後退。
1.超音波感測器的Vcc接5V,Gnd接地,Trig接腳位5,Echo接腳位3
超音波感測器原理及詳細接線,請參考WFduino第十二課超音波感測器
2.程式部分可以視偵測結果自由發揮。
1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。
2.重複執行超音波偵測,如果超音波偵測值大於40,就往前進。
3.如果超音波偵測值小於20,就向後退。
程式下載:跟屁蟲小車.sb2
———————————-
註:
這裡使用L9110S直流馬達驅動模塊,接線較簡單價格也較便宜。
也可以使用L298N 馬達驅動板(請參考WFduino第二十課遙控車),動力較強。
28BYJ-48 步進馬達
https://sites.google.com/site/csjhmaker/d-dong-li-pian/28byj-48-bu-jin-ma-da
————–
相關連結:
新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192
WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433