此實例實現了通過藍牙連接小車和手機,在手機端用軟件控制小車前進,后退,左/右轉向,控制行駛速度。并能讓小車自動行駛,躲避障礙。我買的是最便宜的黃色四驅小車,加了一個電機驅動模塊(用于控制小車),一個藍牙模塊(用于與手機連接),一個距離傳感器(測試前方是否有障礙物),一個舵機(在遇到障礙時,控制距離傳感器轉動,判斷左/右哪邊空間更大)。
(加起來百十來塊錢)
小車(30+),含車架,車輪,電動機等。最便宜的一套30塊錢左右(四驅),當然也不怎么結實。實驗用沒什么問題。
電機驅動模塊可使用L298n(5+)或L293D(8+)。一個L298N可驅動兩個電機,一個L293D可驅動四個電機。我使用的是一個L298N,控制四個電機(兩兩串聯,也帶得動)。不太喜歡L293D擴展板,它是Arduino UNO R3的擴展板,是直接插在Arduino板上用的,我買的那一塊,雖然能接幾個舵機,幾個直流電機,但是要想再插傳感器就比較麻煩了,還有TX/RX接藍牙好像也沒引出來。它雖然把A0-5以及幾個供電引出來,可以焊上針腳使用,但還是麻煩。
在小車上,一般用超聲距離傳感器(4+)加小舵機(6+)或紅外距離傳感器x 2 (2+)用作判斷前方是否有障礙物。有的小車正面安裝一個超聲,左前右前各安一個紅外;有的把超聲安在一個小舵機上,通過步進電機實現“轉頭”的功能。超聲距離傳感器可測到具體的距離,而紅外距離傳感器則是設定一個閥值,據此判斷回傳0或1。由于日光里也有紅外線,所以在戶外會有一定影響,建議使用超聲傳感器加舵機的方案。
可使用航模電池加充電器(35+),也可以用電池盒。由于需要提供Arduino板和電機驅動的供電,一般使用6-12V,用電池盒試了一次,電壓降得很快,建議購買航模充電電池。
本例中使用了ArduinoUNO R3 (15+) 和sensor shieldv5.0 擴展板(6+)Arduino上一般有一個3.3V和一個5V供電,三個GND,外接硬件超過兩個,供電就比較難插,這里至少需要一個藍牙模塊,一個距離傳感器,一個控制傳感器方向的舵機,一個電機驅動模塊。擴展板為每個IO都配上了VCC和GND;且sensor shield v5.0可直接插在Arduino UNO R3上,非常方便。
紅外遙控接收器(2+)或藍牙模塊(17+)紅外遙控和藍牙模塊取其中之一即可,各有優勢:紅遙控接收器很便宜,可以和任何一個家用遙控板配合使用,但是必須對準,才起作用,小車行進的過程中就不太好用,另外因為日光中有紅外線,所以戶外不太好用;藍牙模塊稍貴,只要在附近就能收到,但需要其它藍牙設備控制,如:手機控制,同時還要在手機端寫相應程序,比較復雜。
杜邦線若干(5+):公對公,母對公,公對母,15-20cm,開關一個(0.2+)
超聲傳感器一般安裝在小車前端,有時通過舵機相連。有的店賣一些塑料的連接板,購買時請注意和超聲傳感器是否配套,如不配套,可能安裝不上,或者影響偵測距離。
對于調速,有人說通過使能端調速ENA/ENB,我用的是L298n紅板,試了不管用,于是用Arduino的5,6,9,10(PWM)連接電機驅動板,并用AnalogWrite寫入0-255即可調速。
我買的小車電動機有個銅片,我在其上焊了兩條杜邦線,然后用膠封了一下。
總體來說,裝硬件調試還是很麻煩。對于增加更多功能,我覺得比較好的解決方案是與手機相連,把更多軟件的邏輯放在手機端,也能更好地利用手機的傳感器,聲音,以及攝像頭等等,以實現更多功能,同時又不會讓電路變得過于復雜。比如:把手機放車上,使用其上的重力傳感和指南針,判斷小車位置,繪制地圖(手機上也有距離傳感器);手機用藍牙控制小車;用OpenGL辨別圖像,實現追蹤等功能;根據小車情況,加一些語音提示…
新聞熱點
疑難解答