03 登月小車離線版
(2021/04/10)
Web:Bit開發板法蘭斯離線積木測試文章第三篇,這篇就是測試登月小車的使用,除了少部份功能需再測試外,整體大都沒有問題了,讓有登月小車的夥伴在程式撰寫上又多一個選擇了。如下,供參
一、利用官方【Web:Bit教育版】來撰寫登月小車的講義(2019/08/07的文章)
二、認識登月小車 Moon Car
Moon Car是我的學生家長黃老闆ICShop與Webduino共同開發出的,購買資訊
外觀:
三、認識【法蘭斯登月小車】的積木
法蘭斯登月小車積木
四、測試車子全彩LED燈的功能
利用以下程式就可以讓小車發出色彩
補充說明:如果上面程式燈沒有亮,請在腳位宣告的積木下加上【等待3秒】
用下面另一款積木也可以
五、測試小車前進、後退、停止及轉彎等功能
按A鍵小車前進、按B鍵後退、按A+B鍵停止
按A鍵小車右轉(屏幕出現向西的箭頭)、按B鍵小車左轉(屏幕出現向東的箭頭)、按A+B鍵停止(屏幕出現愛心圖案)
按A鍵小車走一正方形(可以走教室地板的磁磚)後停止
六、避障功能
超音波測距感測器的距離量測測試
避障規則一
當車子與障礙物的距離大於20公分時,車子前進。
當車子與障礙物的距離低於20公分時,小車會隨機選擇原地左轉或者原地右轉0.5~1秒來避開障礙物。
前進、轉彎的速度都可以調整,一開始建議速度不用太快。
避障規則二
當車子與障礙物的距離大於10公分時,車子前進。
當車子與障礙物的距離低於10公分時,車子先後退0.5~1秒,再隨機選擇原地左轉或者原地右轉0.5~1秒來避開障礙物。
前進、後退、轉彎的速度都可以調整,一開始建議速度不用太快。
請自行按照上面的避障規則來完成程式
七、循跡功能
兩路循跡感應器說明
先取得上面4種情形的【循線感測值】
發現:
兩感測器都在線上時(前進),其值為0
車子偏左時(要右轉),其值為1
車子偏右時(要左轉),其值為2
車子都在白色區域時,其值為3
方法一:此法比較簡易,當車子偏離跑道時,先不理會它,不做任何反應,對於圓形(或橢圓形)跑道,通常會順勢再接回跑道
一開始先設定兩輪的速度為中就好了,一開始速度不要設太快
兩顆感應燈都沒亮,代表在白線上,代表車子跑出去了,這時就停止,有時這時也可以不用理會,小車會順勢又回到線上
左燈沒亮(白線),右燈亮著(黑線),代表車子偏左了,這時要右轉,可設右前或原地右轉
左燈亮著(黑線),右燈沒亮(白線),代表車子偏右了,這時要左轉,可設左前或原地左轉
兩顆感應燈都亮著,代表在黑線上,這時就讓小車前進就好了。
一切OK後,再調整速度及加入其他功能
方法二:法蘭斯的作法,考慮車子偏離跑道時,若之前的狀態是右轉就改為左轉,若之前的狀態是左轉就改為右轉
八、紅外線遙控功能
取得Keyes遙控器上、下、左、右、中按鍵的編碼
取得的編碼如下:
上:ff629d
下:ffa857
左:ff22dd
右:ffc23d
中:ff02fd
利用遙控器控制車子前進、後退、原地左轉、原地右轉、停止
九、利用MQTT協定來控制車子
代理商(Broker):broker.hivemq.com
發送端(發布者)
這邊可以用手機安裝MQTT APP或電腦執行MQTTBox的軟體來控制小車
主題名稱可自訂,這邊設wenyu/mooncar
按【前進鍵】傳送一個訊息f
按【後退鍵】傳送一個訊息b
按【左轉鍵】傳送一個訊息l
按【右轉鍵】傳送一個訊息r
按【停止鍵】傳送一個訊息s
訂閱端(接收者,也就是小車)
由於法蘭斯沒有MQTT積木,所以採用吉哥積木
小車程式
利用電腦MQTTBox軟體來測試
利用手機 IoT MQTT Panel APP
這樣就可以利用手機或電腦來控制小車前、後、左、右跑
十、顏色辨識
法蘭斯顏色辨識積木
目前對這些積木的用法還沒有很了解,對於下面程式並沒有成功,只好再請教法蘭斯了
(2021/11/21後記)
顏色辨識
參考資料:http://www.circuspi.com/index.php/2020/01/06/mooncarlesson8/
讀取顏色卡片的R、G、B通道
感謝法蘭斯老師的指導,以下是利用PocketCard,所以用Web:bit補光燈腳位要改為27
我先量測紅色、綠色、藍色卡片的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元,有需要者可以去購買