Zumi 避障教學

Zumi 作為一部自駕車 , 能探測路面狀態並避開障礙是非常重要的 , 這才能避免意外發生。

Zumi 的正前方有2個 IR sensor , 可以偵測到前方有沒有障礙物 ,
透過IR sensor 所得到的數據 , 我們可以運行編程來對Zumi發出駕駛指令 ,
讓它感應到前方有障礙物時不會繼續向前行駛 , 以免發生意外。
所需物料:
編程教學 (blockly) :

連接並登入Zumi後 , 按下「Code mode」便可進入編程頁面。
這次我們利用「Blockly」進行編程 , 因此選取「+ New Blockly Project」

按下後輸入專題名稱以進入編程介面。
編程概覽:

wake up 的作用是 Zumi 成功開機的提示
可以在「sound」中找到「wake up」
「repeat 1000 times 」的作用跟forever和while loop 類似 ,
意思是重覆非常多次 , 它能在「Loops」中找到。
if do 「get IR reading front right or left」 是指Zumi前方2個 IR sensor 其中一個感應到前方有障礙物 。
這裡設為 「200」的原因是「接近100」需非常接近障礙物才能感應到 , 很多時候會直接撞上障礙物 , 而「接近300」則會太遠 , 很常會直接去到else的情況。
「get IR reading 」能在「Sensor」中找到 , 按下「front right」可以選擇Zumi不同的IR sensor 以作編程。
「or」和「<」可在「logic」找到。
「200」則能在「Math」中找到。

按下 if 的小齒輪會看到「else if」跟「else」 , 把「else」拖拉到「if」的下方。

「do」 的意思是有達成「if」的條件 , 即 「IR reading front < 200」 ,
先會「stop」來停下小車避免撞到前方的障礙物 , 暫停2秒再向後退 「reverse for 1 seconds at 40 speed」
「else」則是前方沒障礙物 , 會保持向前行駛 (forward for 1 seconds at 40 speed」。
這些driving command都能在「Driving」找到。