今天要使用Arduino Yun 來做一台無線網路遙控車。我們可以在網頁上製作一個遙控器,控制車體前後左右移動,還能透過超音波感測器來偵測距離,今天是要把書上的專題所提供的硬體做替換,讓車體也能順利地使用
這次的專題參考的是碁峯出版:實戰物聯網開發-使用ArduinoYun
這本書是由本團隊的阿吉老師所翻譯的~~~
這本專題在第四章提到使用無線網路遙控車體,使用的材料有:
- ArduinoYun開發板
- ArduinoUno開發板
- DFRobot馬達擴充板:DFRduino
- DFRobot超音波感測器:URM37
- DFRobot:miniQ二輪平衡車機組
- DFRobot
今天,為了增加我們入手這些裝備的方便性、減少製作成本,我們會把ArduinoUno開發板(台幣:800元)、馬達擴充板(美金10元,不含運費)、超音波感測器(美金15元,不含運費)做替換。
替換的零件為:超音波感測器HS-SR04 (台幣100元,光華商場購得)
ArduinoUno + 馬達擴充板=motoduino 2.0 ,(台幣600元,官方網站購得)
接下來要疊上 Arduino Yun開發板
遙控車本身不一定要購入指定的車體,只要準備是左右輪胎透過獨立的直流馬達來驅動(共兩個)的車體即可。本範例為左右輪胎各一個直流馬達(miniQ二輪平衡車機組)
接著開始撰寫程式了~~
如果您使用的硬體跟書中使用的硬體相同的話,範例檔案可以由此下載
如果您想使用這次分享的硬體製作的話,範例檔案可以由此下載
這是這次我所製作出來的遙控車,為了方便日後加裝其他的感測器,使用了比較高的銅柱
這個遙控車與書中的遙控車有什麼地方需要注意呢?
最大的不同在於motoduino與arduinoyun接線的腳位不同,以及超音波感測器的程式碼撰寫不同
首先請到我們的檔案庫下載範例
接著將範例中的資料夾”HCSR04Ultrasonic”複製到ArduinoIDE的library當中,
請注意!ArduinoYun使用的IDE最少要1.5.6以上的版本!!
接著打開檔案”motoduino_sketch.ino”,這個檔案請燒錄在Motoduino上,畫黃線的部分是ArduinoYun與Motoduino的連接方式
還有宣告馬達的腳為5、6、7、8
圖中使用的函式庫<wire.h>是motoduino與ArduinoYun溝通(I2C)的方式
motoduino與ArduinoYun的溝通
1、將motoduino的A4腳與ArduinoYun的D2腳相連
2、將motoduino的A5腳與ArduinoYun的D3腳相連
Motoduino的馬達連接方式
1、將右邊馬達的正極接在M1+,負極接在M1-
2、將左邊馬達的正極接在M2+,負極接在M2-
接著我們來連接超音波感測器,超音波感測器的接線請接在ArduinoYun上。
首先打開檔案”HC-SR04_yun_sketch.ino”,這個檔案請燒錄在AduinoYun上,
畫黃線的部分是ArduinoYun與超音波感測器使用的函式庫、宣告的腳位為10、11
連接超音波感測器
1、感測器Vcc接腳與Yun的5V接腳相連
2、感測器Trig接腳與Yun的D10接腳相連
3、感測器Echo接腳與Yun的D11接腳相連
4、感測器GND接腳與Yun的GND接腳相連
將線連好之後,我們來測試ArduinoYun與motoduino受否能溝通成功,讓車子順利行走
將程式”HC-SR04_yun_sketch.ino”燒入ArdunioYun的程式之前,我們首先開啟測試的程式碼,
這個程式碼不需要網路連線就會對motoduino下達轉動馬達的指令
將下圖的程式碼”/*”、”*/”去除後,再進行燒入
燒入後你的ArduinoYun,就會一直傳送資料250,0,0,0給motoduino。
可以輸入的馬達馬力為0-255
控制馬達前進後退則為0、1
打開Serial monitor可以確認指令是否成功傳送
如果要確認motoduino是否有收到資料
將程式””motoduino_sketch.ino””燒入motoduino的程式之後
打開Serial monitor,就可以進行確認
超音波感測器測試
打開程式”HC-SR04_yun_sketch.ino”,接著將程式72行 //measure_distance(1);的註解刪除
接著將程式”HC-SR04_yun_sketch.ino”燒入到ArdunioYun的程式,打開Serial monitor就可以看到超音波感測器偵測時使用的時間,以及與障礙物之間的距離
今天的分享就到此為止,下篇教學將告訴您如何架設網站,透過網頁按鈕來控制這台機器人,再見囉~~~
如果在上面多一個攝影機 應該更有趣
請參考本篇喔,用 7688 Duo 更便宜 http://wp.me/p3T9Qk-4OI