03 登月小車

(2022/06/08)

由於Pixel:Bit板子也有相容micro:bit的金手指,這讓我就想到那是不是也可以用來玩【登月小車】啊!先做簡單的前進、後退、左轉、右轉、停止的控制,最後再加入手機的藍牙、MQTT APP的控制,基本上都成功了,最後後,把巡跡、避障也都一併處理了,如下,供參



一、Pixel:Bit控制登月小車輪子的腳位


二、小車基本測試

  1. 按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",小車就停止

、利用手機APP採用MQTT來控制小車

  • 控制方式:利用手機MQTT APP當發送端,【ESP32晶片】(內建WIFI)當接收端,利用MQTT把訊息傳給ESP32晶片,再利用UART將資料傳給【ATmega328P 晶片】,進而控制金手指的腳位(高低電位),來達到控制車子的前進、後退、左右轉及停止

  • 這邊的MQTT Broker採用尤老大家的MQTTGO.io

  • ATmega328P 晶片的程式:與上面藍牙的部份一樣

  • ESP32 晶片的程式如下

    • 主要採用吉哥積木

    • 使用mqttgo.io的伺服器

    • 先定好獨一無二的主題,如下的wenyu38

  • 先利用尤老大的MQTTGO.io的網頁平台來做基本測試,測試成功後就可以用手機MQTT APP來控制了

  • 測試成功

、巡跡及避障

  • 巡跡原理

  • 程式:

  • 避障

    • 超音波感測器的腳位

      • Trig(P3):A2 (D16)

      • Echo(P9):D8

    • 測試距離量測是否正確?程式如下:

  • 避障規則一

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

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

六、利用【網頁】來控制登月小車(2022/06/27新增)