軟體平台
MicroSoft MakeCode(https://makecode.microbit.org/ )
程式設計
步驟1
點擊Menu中的“進階(Advanced)”以查看更多選擇。
我們需要增加一個擴充積木來針對Cutebot進行編程。點擊Menu底部的"Advanced",接著在搜尋的對話框內輸入" cutebot"並下載下來。
我們需要增加一個擴充積木來針對AI Lens進行編程。點選Menu底部的"Advanced",再點選"Extensions",接著在搜尋的對話框內輸入PlanetX-AI,以將其下載。
注意:請勿下載成PlanetX(這擴充包含了PlanetX-AI和其他類別的應用),它目前和Cutebot擴充積木不相容,會導致編寫好程式後無法下載hex.檔案。
注意:如果出現告知由於不相容而將刪除編程資料庫的提示,可以按照提示所述繼續操作或再建立一個新專案。
步驟2
在“啟動時(on start)”積木中,初始化AI鏡頭,然後將功能切換到循線追蹤模式,設定micro:bit以顯示指定的圖案。
在“重複無限次(forever)”積木中,設置為從AI鏡頭獲取一個畫面,並判斷畫面上線條的偏離方向。如果它偏向左側,則表示小車偏向右側,我們應該將左邊輪子的速度設置為10%,將右邊輪子的速度設置為40%,使小車向左轉並轉到正確的方向; 如果直線偏向右側,則表示小車偏向左側;我們應該將右邊輪子的速度設置為10%,將左邊輪子的速度設置為40%,使小車向右轉並轉到正確的方向; 若非前述的兩種狀況,則代表無須調整小車的轉向,我們可以將兩個小車輪子的速度都設置為20%,然後小車便會沿直線前進。
程式總覽
連結:https://makecode.microbit.org/S74613-25018-29489-91516
結果示意
利用AI影像識別路徑讓Cutebot小車依循黑線移動。
在“啟動時(on start)”積木中,初始化AI鏡頭,然後將功能切換到卡片識別模式,設定micro:bit以顯示指定的圖案。
在“重複執行(forever)”積木中,設置為從AI鏡頭獲取一個畫面,並判斷畫面上的卡片圖標。如果它符合“前進”圖標,則我們將左輪和右輪的速度都設置為50%,以使小車前進;如果它識別到“向左轉”圖標,則將小車設置為以30%的速度向左轉0.5秒,然後繼續前進。請注意AI鏡頭具有三個緩衝區,在執行後需要獲得三個畫面以清除緩衝區。
如果識別出“向右轉”圖標,我們將小車設置為以30%的速度向右轉0.5秒,然後繼續前進。請注意AI鏡頭具有三個緩衝區,在執行後需要獲得三個畫面以清除緩衝區。
如果識別出“停止”圖標,則小車立刻停止行駛。
P.S.只有轉彎(左轉/右轉)需要編寫清除緩衝區的指令(repeat 3 times do Get one image from AI-Lens),因為程式中有暫停的指令(for 0.5 seconds),所以需要清除緩衝區。而前進或停止沒有暫停的指令,所以不需要編寫清除緩衝區的指令。
程式總覽
連結:https://makecode.microbit.org/S16371-14607-64478-54766
結果示意
AI影像識別路標卡指令來控制Cutebot小車。
如果AI鏡頭識別出“前進”卡,則小車將向前行駛。如果識別出“左轉”卡,則小車向左轉然後前進;如果識別出“向右轉”卡,則小車向右轉然後前進;如果識別出“停車”卡,則小車停止行駛。
結果示意
利用AI影像識別卡片顏色後,變更Cutebot小車的LED前燈及車底燈顏色。我們可以再並結合另一片micro:bit透過廣播來遙控Cutebot小車的運行。
程式設計
在“啟動時(on start)”積木中,初始化AI鏡頭,然後將功能切換到球體追蹤模式。
在“重複執行(forever)”積木中,設置為從AI鏡頭獲取一個畫面。如果畫面中有球,則判斷球的大小。如果檢測到球的尺寸小於100,則表示該球距離Cutebot較遠,接著使用X軸的值來判斷該球的位置;如果X軸的值小於80,則表示該球位於Cutebot的左前方,我們需要將左輪的速度設置為0%,將右輪的速度設置為20%,以使小車向左轉去追球。如果X軸的值超過144,則代表球在Cutebot的右前方,我們需要將左輪的速度設置為20%,將右輪的速度設置為0%,以使小車向右轉去追球;若非前述兩者情況,代表X軸的值介於80~144之間,該球大約是在Cutebot的前方,所以我們將兩個輪子都設置為25%,以使小車直走去追球;如果檢測到球的尺寸大於100,則表示球距離Cutebot很近,我們則將Cutebot設置為停止移動。
補充:關於size<100的數字範圍設定
經過測試數值範圍是0~224會比較好運作,不過0~224是理論值,實際使用的範圍值可能會更小,可依據個人使用再做調整。size、x 或是y的範圍都建議是0~244。
程式總覽
連結:https://makecode.microbit.org/S92912-41474-23532-54287
結果示意
當AI影像辨識到球體,驅動Cutebot小車保持一定距離追蹤球體。如果距離球體太近,則小車會停止。
專案五
結果示意
按下A鍵時,將機器學習到的AI影像辨識目標設置為ID1,完成學習後,如果識別到目標ID1,則會發出中音C,並亮藍色前燈來提示它已辨識到該學習到的目標,否則的話,將會亮紅色前燈來提示目前辨識到的並非該學習目標。
AI鏡頭 x Cutebot小車端
在“啟動時(on start)”積木中,將廣播群組設為1(之後亦將老師端的群組設定為1,因此兩者可連通),初始化AI Lens並切換到人臉識別功能。
在“重複執行(forever)”積木中,設置為從AI鏡頭獲取一個畫面,並判斷畫面上是否為人臉,如果是的話,透過廣播發送字串"Warn!"
在“啟動時(on start)”積木中,將廣播群組設為1(Cutebot小車端的群組亦設定為1,因此兩者可連通),初始化AI Lens並切換到人臉識別功能。
當收到廣播字串時,顯示該透過廣播傳送的字串"Warn!",並且重複播放50次警報音來做為提示,通知老師已有小朋友誤闖禁區。
連結
AI鏡頭 x Cutebot小車端
https://makecode.microbit.org/S47287-16264-01784-55945
老師端的micro:bit
https://makecode.microbit.org/_Eq1ftAbYf85u
結果示意
當AI影像辨識到畫面的人臉時,透過廣播發送字串"Warn!"到另一片micro:bit上並且重複播放50次警報音來做為提示。
電話:04-2375-3535 傳真:04-2256-9949 統編:90386785 E-mail:service@oursteam.com.tw LINE ID:@oursteam |