主要材料準備
- 開發板:ESP8266 或 ESP32
- 馬達模組:L298N
- 輪組:TT 減速馬達+輪子
- 車體
- 鋰電池
- Wifi 遙控 App (以 ESP8266 WiFi Robot Car 為例)
下載與安裝函式庫
首先, 必須先上傳下面的函式庫到 MCU 板子上:
- MyKitL298N : 馬達驅動模組 L298N 控制的函式庫
- MyKitCar : 智慧小車通用控制器的函式庫 (不需要, 如果想直接用 MyKitL298N 控制個別馬達的轉速與轉向時)
- MyWebServer : 架設與管理網站伺服器的函式庫
- MyWifi: 無線網路連線的函式庫 (不需要, 如果你的程式碼中已能自行連上網路時)
***如果您尚不熟悉或想知道我是如何將函式庫上傳至 MCU 的, 那麼您應該會有興趣參考我的另一篇文章 “如此簡單 MicroPython — ESP8266/ESP32 MCU 檔案管理”. ***
***如果您是想知道該如何直接使用 MyKitL298N來控制個別馬達的轉速與轉向, 那麼您應該會有興趣參考我的另一篇文章 “MicroPython 如此簡單系列: 小車使用L298N 馬達驅動模組”. ***
功能測試範例
接下來的範例, 基本上程式的最上頭, 都會需要先包含以下敘述:
import utime as time
from MyKitCar import myCar
from MyKitL298N import myL298N
# 建立馬達模組與車子物件
m1 = myL298N()
m2 = myL298N()
car = myCar(60) # 設定車子開始移動時的最低動力(速度值 60)
# 馬達掛載到模組上
m1.attach(5, 15, 16) # EN, INA, INB: D1, D8, D0 (ESP8266)
m2.attach(12, 13, 14) # EN, INA, INB: D6, D7, D5 (ESP8266)
# 模組掛載到小車上
car.attach(m1, m2)
STEP 1: 讓 MCU 能控制智慧小車
範例ㄧ: 小車前進
car.forward(80) # 速度值:80, 0 <= 速度值 <=90
範例二: 小車後退
car.backward(80) # 速度值:80, 0 <= 速度值 <=90
範例三: 小車左轉
car.left(70) # 速度值:70, 0 <= 速度值 <=90
範例四: 小車右轉
car.right(70) # 速度值:70, 0 <= 速度值 <=90
範例五: 小車停止
car.stop()
STEP 2: 讓 MCU 成為 IoT 遠端控制器
from MyWifi import myWifi
from MyWebServer import myWebServer
範例六: 連上 WiFi 無線網路
my_wifi = myWifi(YOUR_WIFI_SSID, YOUR_WIFI_PWD)
my_wifi.connect()
*** 如果您想知道我是如何用很簡單的 2~3 行指令, 就能讓 MCU (ESP8266/ESP32) 快速連上 WiFi AP, 那麼您應該會有興趣參考我的另一篇文章 “如此簡單 MicroPython — WiFi 無線網路連網, MCU as IoT”. ***
範例七: 架設無網頁的監聽式網站
my_web = myWebServer(my_wifi.getIP(), 80)
my_web.start # 啟動 Web Server 服務
while True:
cmds_dict = my_web.listen # 監聽是否有 client 送來的指令集
if len(cmds_dict) > 0:
print("Requested Commands:", cmds_dict)
# 處理接收到的指令集, 控制硬體
if not doCommand(cmds_dict):
break
my_web.refresh("") # 立即送出一個空白網頁回應已處理完畢
my_web.stop
*** 如果您想知道我是如何用很簡單的幾行指令, 就能讓在 MCU 架設一個立即可用的網站伺服器, 來接收與解譯 ESP8266/ESP32 所送來的控制指令, 那麼您應該會有興趣參考我的另一篇文章 “MicroPython 如此簡單系列: 網站架設”. ***
範例八: 手機 App 成為 IoT 智慧小車的遠端遙控器
此範例是以免費 ESP8266 WiFi Robot Car 的 手機 App, 做為小車的遙控器, 當然若您要用自己常用的其他 App 也是可以的, 這點在我的另一篇文章 “MicroPython 如此簡單系列: 網站架設” 有較詳細的說明。