03 登月小車
(2022/06/08)
由於Pixel:Bit板子也有相容micro:bit的金手指,這讓我就想到那是不是也可以用來玩【登月小車】啊!先做簡單的前進、後退、左轉、右轉、停止的控制,最後再加入手機的藍牙、MQTT APP的控制,基本上都成功了,最後後,把巡跡、避障也都一併處理了,如下,供參
Web:Bit+登月小車(離線版):https://sites.google.com/site/wenyunotify/03-webbit%E9%9B%A2%E7%B7%9A%E7%89%88/03-%E7%99%BB%E6%9C%88%E5%B0%8F%E8%BB%8A%E9%9B%A2%E7%B7%9A%E7%89%88
PocketCard++登月小車:https://sites.google.com/site/wenyunotify/10-%E5%87%B1%E6%96%AFpocketcard/08-%E7%99%BB%E6%9C%88%E5%B0%8F%E8%BB%8A
一、Pixel:Bit控制登月小車輪子的腳位
二、小車基本測試
按A鍵小車向前進、按B鍵小車向後退、按A+B鍵小車停止
登月小車要切換到micro:bit
A鍵:D4
B鍵:D5
A1 = D15
程式如下:
2.按A鍵小車原地右轉、按B鍵小車原地左轉、按A+B鍵小車停止
採用【函數】
程式如下:
三、利用手機APP採用藍牙來控制小車
控制方式:利用尤老大家的【ESP32 Arduino Bluetooth 藍芽控制】APP 來控制【ESP32晶片】(內建藍牙),再利用UART將資料傳給【ATmega328P 晶片】,進而控制金手指的腳位(高低電位),來達到控制車子的前進、後退、左右轉及停止
這邊主要採用法蘭斯的積木
ATmega328P 晶片的程式:
判斷從序列埠接到的資料來控制小車的行為,如:
接收到"1",小車就前進
接收到"2",小車就後退
接收到"3",小車就左轉
接收到"4",小車就右轉
接收到"5",小車就停止
ESP32 晶片的程式:
藍牙傳輸的部份,參考本人另一篇文章:https://sites.google.com/site/wenyunotify/05-esp32/04-%E8%97%8D%E7%89%99%E8%BF%91%E7%AB%AF%E6%8E%A7%E5%88%B6
藍牙部份主要採用法蘭斯的積木
【ESP32 Arduino Bluetooth 藍芽控制】APP的使用
【ESP32 Arduino Bluetooth 藍芽控制】APP的使用,請參考:https://sites.google.com/site/wenyunotify/05-esp32/04-%E8%97%8D%E7%89%99%E8%BF%91%E7%AB%AF%E6%8E%A7%E5%88%B6
四、利用手機APP採用MQTT來控制小車
控制方式:利用手機MQTT APP當發送端,【ESP32晶片】(內建WIFI)當接收端,利用MQTT把訊息傳給ESP32晶片,再利用UART將資料傳給【ATmega328P 晶片】,進而控制金手指的腳位(高低電位),來達到控制車子的前進、後退、左右轉及停止
這邊的MQTT Broker採用尤老大家的MQTTGO.io
ATmega328P 晶片的程式:與上面藍牙的部份一樣
ESP32 晶片的程式如下:
主要採用吉哥積木
使用mqttgo.io的伺服器
先定好獨一無二的主題,如下的wenyu38
先利用尤老大的MQTTGO.io的網頁平台來做基本測試,測試成功後就可以用手機MQTT APP來控制了
有關手機 MQTT 的APP非常多,我也介紹過很多了,如下:
IoTMQTTPanel:可參考:https://sites.google.com/site/wenyumaker3/03-difi%E7%89%A9%E8%81%AF%E7%B6%B2%E6%95%99%E6%9D%90/05-mqtt%E9%81%A0%E7%AB%AF%E9%81%99%E6%8E%A7
IoT OnOff APP :可參考 https://sites.google.com/site/wenyunotify/05-esp32/03-%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8
Virtuino MQTT :可參考 https://sites.google.com/site/wenyunotify/04-7697%E6%B8%AC%E8%A9%A6/02-mqtt%E6%B8%AC%E8%A9%A6
這邊先採用IoTMQTTPanel來測試
測試成功
五、巡跡及避障
登月小車的相關腳位,也可參考下面文章:https://sites.google.com/site/wenyunotify/10-%E5%87%B1%E6%96%AFpocketcard/08-%E7%99%BB%E6%9C%88%E5%B0%8F%E8%BB%8A
巡跡:
左右巡跡感測器的腳位
車子朝前左方(P15):D11
車子朝前右方(P16):D10
測試感測器在黑線及白線上的值:
黑線:燈亮,值為1
白線:燈滅,值為0
巡跡原理
程式:
避障:
超音波感測器的腳位
Trig(P3):A2 (D16)
Echo(P9):D8
測試距離量測是否正確?程式如下:
避障規則一
當車子與障礙物的距離大於20公分時,車子前進。
當車子與障礙物的距離低於20公分時,小車會隨機選擇原地左轉或者原地右轉0.5~1秒來避開障礙物。
六、利用【網頁】來控制登月小車(2022/06/27新增)
請看05 網頁模組