Introduction: 敵人基地偵查車

功能:

利用一台自走三輪車,順時針沿著一未知空間走一圈,測量出此未知空間大小和形狀

以SD卡記錄走過的路線,利用電腦後製畫出此空間大小及形狀

用途:

可利用此偵查車事先探測未知且具有危險性的區域

Step 1: 材料清單

Arduino Uno R3開發板*1

L9110S雙通道直流馬達/步進馬達驅動板/H橋馬達驅動*1

HC-SR04超音波模組*2

SD卡讀寫模組(SPI)*1

三輪自走車底盤組*1(內含:底板*1、輪子*2、減速直流馬達*2、電池盒*1、萬向輪*1、M3*30螺絲*4、馬達fastener*4、M3*8螺絲*8、M3螺帽*6、L12 spacer*4)

小麵包板*2

SD卡

杜邦線

單心線

三號電池*4

9V電池*1

9V電池扣*1

Step 2: 自走車組裝

將自走車依照說明書方式組裝

Step 3: 零件配置

零件大致放置於圖中所示位置(僅為示意圖,與真實大小無關)

Step 4: 連接Arduino板、H橋馬達驅動、馬達-線路圖

H橋馬達驅動GND接Arduino GND

H橋馬達驅動VCC接電池盒正極

H橋馬達驅動B-IB接Arduino Digital 3

H橋馬達驅動B-IA接Arduino Digital 5

H橋馬達驅動A-IB接Arduino Digital 6

H橋馬達驅動A-IA接Arduino Digital 9

H橋馬達驅動Motor A接左輪

H橋馬達驅動Motor B接右輪

(馬達接上後先試轉看看 可能需調整腳位因為馬達正負腳為未知)

Step 5: 連接超音波感測器-線路圖

偵測前方感測器

感測器VCC接Arduino 5V

感測器Trig接Arduino Digital 2

感測器Echo接Arduino Digital 4

感測器GND接Arduino GND

偵測側邊感測器

感測器VCC接Arduino 5V

感測器Trig接Arduino Digital 7

感測器Echo接Arduino Digital 8

感測器GND接Arduino GND

Step 6: 連接SD卡讀寫模組-線路圖

讀寫模組5V接Arduino 5V

讀寫模組CS接Arduino Digital10

讀寫模組MOSI接Arduino Digital 11

讀寫模組SCK接Arduino Digital 12

讀寫模組MISO接Arduino Digital 13

讀寫模組GND接Arduino GND

Step 7: 軟體設計

設定車子為順時針繞一未知空間一圈(假設為圖中的那個空間),可以發現當車子以順時針走時,只會遇到三種情況:

1.直走

2.與左邊牆壁距離突然增加→左轉

3.碰到角落右轉

P.S.檔案中.h檔需放到Arduino的library資料夾中才可以運作

Step 8: 直走

偵測車身與左方牆壁之間的距離,每走一小段距離就測一次與牆之間的距離,分為兩段式修正,標準距離為離牆9cm

不進行修正:距離7~11cm 小範圍修正:距離5~7cm小右轉/距離11~13cm小左轉 大範圍修正(轉彎角度較多):小於5cm大右轉/13~29cm大左轉 修正方式為:左轉-左輪固定,右輪前進 右轉-右輪固定,左輪前進

Step 9: 左轉

判斷與左邊牆壁距離>30cm(與牆壁距離大增)時進行左轉
先往前走一小段

→原地左轉90度(左輪往後轉&右輪往前轉)

→往前走一小段

Step 10: 右轉

判斷與前方牆壁<6cm時右轉

右輪後退,左輪前進,以兩輪胎連線中心為旋轉中心自轉稍大於90度 →左輪靜止,右輪前進,直到車體與左 方牆壁距離到達指定距離(8~15cm)內

轉彎超過90度後再進行修正是為了避免因地板摩擦力、電池電力等因素造成轉彎不足,而使得自走車直接撞上牆壁

Step 11: 成果展示