03 登月小車離線版

(2021/04/10)

Web:Bit開發板法蘭斯離線積木測試文章第三篇,這篇就是測試登月小車的使用,除了少部份功能需再測試外,整體大都沒有問題了,讓有登月小車的夥伴在程式撰寫上又多一個選擇了。如下,供參

一、利用官方【Web:Bit教育版】來撰寫登月小車的講義(2019/08/07的文章)

二、認識登月小車 Moon Car

  • 三、認識【法蘭斯登月小車】的積木

    • 法蘭斯登月小車積木

四、測試車子全彩LED燈的功能

    • 利用以下程式就可以讓小車發出色彩

    • 補充說明:如果上面程式燈沒有亮,請在腳位宣告的積木下加上【等待3秒】

    • 用下面另一款積木也可以

五、測試小車前進、後退、停止及轉彎等功能

  1. 按A鍵小車前進、按B鍵後退、按A+B鍵停止

    1. 按A鍵小車右轉(屏幕出現向西的箭頭)、按B鍵小車左轉(屏幕出現向東的箭頭)、按A+B鍵停止(屏幕出現愛心圖案)

  1. 按A鍵小車走一正方形(可以走教室地板的磁磚)後停止

六、避障功能

  • 超音波測距感測器的距離量測測試

  • 避障規則一

    • 當車子與障礙物的距離大於20公分時,車子前進。

    • 當車子與障礙物的距離低於20公分時,小車會隨機選擇原地左轉或者原地右轉0.5~1秒來避開障礙物。

    • 前進、轉彎的速度都可以調整,一開始建議速度不用太快。

  • 避障規則二

    • 當車子與障礙物的距離大於10公分時,車子前進。

    • 當車子與障礙物的距離低於10公分時,車子先後退0.5~1秒,再隨機選擇原地左轉或者原地右轉0.5~1秒來避開障礙物。

    • 前進、後退、轉彎的速度都可以調整,一開始建議速度不用太快。

    • 請自行按照上面的避障規則來完成程式

七、循跡功能

  • 兩路循跡感應器說明

    • 先取得上面4種情形的【循線感測值】

    • 發現:

      • 兩感測器都在線上時(前進),其值為0

        • 車子偏左時(要右轉),其值為1

        • 車子偏右時(要左轉),其值為2

        • 車子都在白色區域時,其值為3

    • 方法一:此法比較簡易,當車子偏離跑道時,先不理會它,不做任何反應,對於圓形(或橢圓形)跑道,通常會順勢再接回跑道

      • 一開始先設定兩輪的速度為中就好了,一開始速度不要設太快

      • 兩顆感應燈都沒亮,代表在白線上,代表車子跑出去了,這時就停止,有時這時也可以不用理會,小車會順勢又回到線上

      • 左燈沒亮(白線),右燈亮著(黑線),代表車子偏左了,這時要右轉,可設右前或原地右轉

      • 左燈亮著(黑線),右燈沒亮(白線),代表車子偏右了,這時要左轉,可設左前或原地左轉

      • 兩顆感應燈都亮著,代表在黑線上,這時就讓小車前進就好了。

      • 一切OK後,再調整速度及加入其他功能

    • 方法二:法蘭斯的作法,考慮車子偏離跑道時,若之前的狀態是右轉就改為左轉,若之前的狀態是左轉就改為右轉

八、紅外線遙控功能

  1. 取得Keyes遙控器上、下、左、右、中按鍵的編碼

  1. 取得的編碼如下:

    • 上:ff629d

    • 下:ffa857

    • 左:ff22dd

    • 右:ffc23d

    • 中:ff02fd

  2. 利用遙控器控制車子前進、後退、原地左轉、原地右轉、停止

九、利用MQTT協定來控制車子

  1. 代理商(Broker):broker.hivemq.com

  2. 發送端(發布者)

    • 這邊可以用手機安裝MQTT APP或電腦執行MQTTBox的軟體來控制小車

    • 主題名稱可自訂,這邊設wenyu/mooncar

    • 按【前進鍵】傳送一個訊息f

    • 按【後退鍵】傳送一個訊息b

    • 按【左轉鍵】傳送一個訊息l

    • 按【右轉鍵】傳送一個訊息r

    • 按【停止鍵】傳送一個訊息s

    1. 訂閱端(接收者,也就是小車)

    • 由於法蘭斯沒有MQTT積木,所以採用吉哥積木

    • 小車程式

  1. 利用電腦MQTTBox軟體來測試

    1. 利用手機 IoT MQTT Panel APP

  1. 這樣就可以利用手機或電腦來控制小車前、後、左、右跑

十、顏色辨識

  • 法蘭斯顏色辨識積木

    • 目前對這些積木的用法還沒有很了解,對於下面程式並沒有成功,只好再請教法蘭斯了

(2021/11/21後記)

  • 我先量測紅色、綠色、藍色卡片的RGB通道值,如下圖,且發現其值會有漸漸增加的感覺。我大約取他們的平均值

    • 紅色卡片:R:5826 G:1827 B:1897

    • 綠色卡片:R:2610 G:5594 B:2915

    • 藍色卡片:R:2615 G:7158 B:10039

  • 顏色辦識:

    • 取得各顏色卡片的RGB通道值後,利用這些值去辨識是否是什麼顏色的卡片

十、利用網頁按鈕來控制車子 (2021/04/19)

  • 有關網頁按鈕的製作,請觀看下一篇的說明

  • 完整程式,如下 (抄襲法蘭斯的示範程式)

    • 測試

十、利用藍牙來控制車子 (2021/05/02)

  • 法蘭斯於昨日在BlocklyDuino新增了【藍牙積木】,今天把它用在登月小車來測試,如此一來Web:Bit離線版登月小車又增加了一種控制方式。另外我發現利用micro:bit為控制的登月小車,使用ICShop的積木時,藍牙積木竟然與小車積木相衝突,因此micro:bit的登月小車就無法利用藍牙來控制了。

  • 程式

    • 手機APP程式

    • 法蘭斯自己用APP Inventer來寫APP

    • Serial Bluetooth Terminal軟體 (以Android手機為例)

        • 輸入資料

        • 【前進】要輸入 ?car=1

        • 【後退】要輸入 ?car=2

        • 【左轉】要輸入 ?car=3

        • 【右轉】要輸入 ?car=4

        • 【停止】要輸入 ?car=0

        • 按鍵內的指令

    • RoboRemoFree APP

      • 設計控制版面

        • 每顆按鍵的設定內容

        • 連接設備

        • 執行

        • 這套RoboRemoFree APP感覺很不錯,但免費版只能有5個元件可用(上圖剛好用完,不能再增加元件了),完整版要248元,有需要者可以去購買