簡介
近日在 Youtube 看到一段關於 mBot 解決 3D 迷宮的片段,內容十分有趣,有別於一般想法(1 至 3 個超聲波感應器),它只用了 1 個巡線感應器和 1 個超聲波感應器。但由於是西班牙文,因此在這裡做了翻譯。
組裝方面:
超聲波感應器會安裝在 mBot 的右方(上圖),而巡線感應器則會垂直安裝在前方(下圖)。
邏輯方面:
程式中一共使用了 3 個變數,分別是「右輪速度」(行駛時的右輪速度)、「左輪速度」(行駛時的左輪速度)及「距離」(mBot 和右牆之間的距離)。如上一段所說,我們一共會用兩款感應器—巡線感應器(連接埠2)和超聲波感應器(連接埠3)。
一開始,mBot 會等候板載按鈕按下並鬆開才開始運作。運作開始後,程式會不停重覆以下事情:
不停重覆:
右輪速度 = 90; 左輪速度 = 90; 設置M1及M2速度;
直到(巡線感應器 > 0)前不斷重覆:
距離 = 超聲波感應器讀數;
如果(距離 < 5):
/* 距離少於5cm,太接近右面牆 */
右輪速度 = 150; 左輪速度 = 80;
如果((5 < 距離)&&(距離 < 6)):
/* 距離等於5-6cm,再貼近右面牆,別讓mBot離開太遠 */
右輪速度 = 80; 左輪速度 = 150;
如果((6 < 距離)&&(距離 < 8)):
/* 距離等於6-8cm,離右面牆太遠了,別讓mBot離開太遠 */
右輪速度 = 80; 左輪速度 = 175;
如果(距離 > 8):
/* 距離大於8cm,右面有出口,優先右轉 */
右輪速度 = 50; 左輪速度 = 200;
設置M1及M2速度;
後退0.1秒,速度100;
左轉0.8秒,速度110;
根據以上方法,mBlock 程式大致會像下圖一樣。當然,左、右輪的速度和左轉時間需因應實際情況有所調整。
再來看看,運行的情況(剪裁自原片):
沒有留言:
張貼留言