6. 第七至八課

../_images/7_1.png

6.1. 簡介

歡迎參加Micro:bit 智能小車課程!在本課程中,我們將探索Micro:bit並學習如何在編程中如何控制Micro:bit智能小車。

6.2. 教學目標

讓學生清楚掌握Micro:bit 智能小車的巡線行駛的原理及其功用,並了解如何透過設計編程令智能小車巡著黑線行駛及掉頭。

6.3. 巡線行駛

巡線模組位於車子的底部,並分為左右兩邊探測。

  • 紅外巡線傳感器

../_images/7_2.png ../_images/7_3.png

  • 巡線基本模組

../_images/7_4.png ../_images/7_5.png

讀取P13和P14的數位信號即能尋找黑色線

把數位信號讀取的引腳儲存到變數R或L

巡線模組運作時指示燈會亮起,當其中一方探測到黑色,指示燈會熄滅,數位信號會由1轉為0(輸出只能是“1”或“0”)

**(黑=0,白=1)**

情況1:小車在黑色線上

../_images/7_6.png

小車會續向沿著黑色線行駛

情況2:小車向左偏離黑色線

../_images/7_7.png

小車在感應到偏離後會向右校正位置

並重新沿著黑線行駛

情況3:小車向右偏離黑色線

../_images/7_8.png

小車在感應到偏離後會向左校正位置並

重新沿著黑線行駛

情況4:小車在黑線的盡頭感應不到黑色線

../_images/7_9.png

小車會倒後行駛直至尋找到黑色線

6.4. 練習一:設計程序令小車巡著黑色線行駛

../_images/7_10.png

提示:根據page 4的4種例子,把程式分為4個部分

6.5. 練習二:

../_images/7_11.png ../_images/7_12.png

設計程式令小車巡著黑色線行駛,並在黑線的盡頭掉頭

提示:留意掉頭的車速

6.6. 練習三:

設計程式令小車循著黑色線行駛,及遇到前方的障礙物時掉頭

提示:利用超聲波預測障礙物位置,利用巡線傳感器令車子跟隨黑線走

../_images/7_13.png

6.7. 練習四:迷宮**

車子必須繞開障礙物,並由起點出發到終點。

提示:超聲波+紅外循線模組會被使用(參考第六課練習七,第七課練習一)

討論:在避開障礙物的時候,哪一個路線會比較有效率?

../_images/7_14.png ../_images/7_15.png

6.8. 挑戰

在練習1中,我們需要分別檢查左邊及右邊感應器(L和R)的數位信號4次以達成巡線行駛。

嘗試再設計一個更加快捷、簡短、方便的程序達成類似效果,并且令車子在出界後不會後退,而是向最靠近黑線的方向轉彎重新返回線上。

提示:

  • 建立變數

../_images/7_16.png ,想想如何在同時間儲存左右邊感應器的數位信號

  • 建立變數

../_images/7_17.png 儲存出界時的信號,並決定出界後的轉彎方向

6.9. 答案

6.9.1. 練習一:

../_images/7_18.png

1. 黃色框設定感應器的數位信號

2. 根據page4的4種例子,把程式分為4個部分

**注意車速不能太快,感應器需要時間感應路線**

../_images/7_19.png

6.9.2. 練習二:

../_images/7_20.png ../_images/7_21.png

設計程序令小車巡著黑色線行駛,並在黑線的盡頭掉頭

基本上和練習1的做法一樣,只是要留意馬達在掉頭和倒退的分別

../_images/7_22.png

6.9.3. 練習三:

設計程式令小車循著黑色線行駛,及遇到前方的障礙物時掉頭

提示:利用超聲波預測障礙物位置,利用巡線傳感器令車子跟隨黑線走

../_images/7_23.png ../_images/7_24.png ../_images/7_25.png

6.9.4. 練習四:

車子必須繞開障礙物,並由起點出發到終點。

這個程式用了函式,函式的意義在於令程式更簡潔,因為可以不用一直重複。例如下面分別有兩個函式(sensor, ultrasound) ,在sensor內可以呼叫ultrasound的函式。

左圖第一個紅框示範了如果車子遇到障礙物的話,會呼叫ultrasound函式來避開障礙物,否則就會開始循著黑色線走。

sensor的功能和練習三一樣,也會循著黑色線走,當沒有偵測到黑線的時候,會旋轉180度,直到找到黑線為止

ultrasound的功能也和第六課的練習七一樣,會繞開障礙物。特別的是,第二個紅框避免了繞開後沒有繼續循線的情況。

../_images/7_26.png ../_images/7_27.png

6.9.5. 挑戰

透過以下程序,運行一次程序最多只需要檢查3次,比原來的8次少,因此更加快捷,簡短。

../_images/7_28.png ../_images/7_29.png