Zumi 避障教學

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

Zumi 的正前方有2個 IR sensor , 可以偵測到前方有沒有障礙物 ,

透過IR sensor 所得到的數據 , 我們可以運行編程來對Zumi發出駕駛指令 ,

讓它感應到前方有障礙物時不會繼續向前行駛 , 以免發生意外。

所需物料:

Zumi x 1

路障 x 1 或 更多

zumi dashboard x 1 (zumidashboard.ai)

編程教學 (blockly) :

Zumi - Google Chrome

連接並登入Zumi後 , 按下「Code mode」便可進入編程頁面。

Zumi - Google Chrome

這次我們利用「Blockly」進行編程 , 因此選取「+ New Blockly Project」

Zumi - Google Chrome

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

編程概覽:

Blockly for Zumi - Google Chrome
Blockly for Zumi - Google Chrome

wake up 的作用是 Zumi 成功開機的提示

可以在「sound」中找到「wake up」

「repeat 1000 times 」的作用跟forever和while loop 類似 ,

意思是重覆非常多次 , 它能在「Loops」中找到。

Blockly for Zumi - Google Chrome

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」中找到。

Blockly for Zumi - Google Chrome

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

Blockly for Zumi - Google Chrome

「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」找到。