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度後再進行修正是為了避免因地板摩擦力、電池電力等因素造成轉彎不足,而使得自走車直接撞上牆壁