用ESP32打造智能小車
本次使用的MCU開發板是安信可出品的NodeMCU-32S,這板子除了相容於Arduino(?)外,
1
不直接支援analogWrite、不直接支援analogWrite、不直接支援analogWrite
可用的I/O也比較多、雙核心可以多做些事情,記憶體也多些,同時內建WIFI跟藍芽功能,重點是價格便宜,淘寶上原廠價格是RMB 28,大概TWD 120左右,但如同前面提到,ESP32不直接支援analogWrite,要做PWM輸出要換一種寫法.
大概列一下組裝這台小車需要的材料
項目
費用
說明
TWD 361 (RMB 85)
首先是我不想用壓克力,所以找金屬的底盤,如果入門玩玩可以找壓克力版本的比較便宜.
選擇彎折底盤可以直接把馬達鎖上去,馬達預設沒有把電線焊上去,可以問一下商家是否願意先幫忙焊起來.
壓克力版本可以參考這個,不要選擇有帶AB編碼器(可以測速度)的馬達,費用是TWD 230(RMB 49 + 運費5)
TWD 27 (RMB 6.25) x2 = TWD 54
L298N,用來驅動馬達,一個L298N可以驅動兩個馬達
也有一塊板子可以驅動4個馬達的版本,但貴很多,買2個這個比較划算且功能一樣
TWD 5 (RMB 1.2) x2 = TWD 10
兩節18650電池盒,買兩個來串連,4節的太寬,位置不好擺
這個跟底盤同店家,可以省點運費
電池盒我是用雙面膠黏在底盤上
TWD 105 (RMB 20 + 4運費)
兩路輸出的降壓模組,4個18650的電壓是16V左右,給馬達要12V,給ESP32要5V或3.3V
我自己不是買這個,買了貴一倍多的來用.
我會選擇可以調整輸出電壓的,這樣子配置會靈活些
TWD 10 (RMB 2.2) x 2 = 20
杜邦線,公對公,公對母各買一組
10公分的應該夠用,保險一點也可以買15公分的
TWD 123 (RMB 28.9)
NodeMCU ESP-32S
這個內建cp2102,用micro USB連接線就可以了,不需要再買TTL的燒錄器
ESP32有好多分支,不要選錯了.
小計
TWD 673
有些不能走官方空運,但現在海運貨櫃塞翻了,要好久才會收到
另外還要買一些銅柱跟螺絲
因為底盤不是客製的,所以得自己對好可以用的位置,像左圖的L298N,我只能鎖一邊,不過這樣也很穩固了.
鎖L298N使用M3*5+6的銅柱,加上降壓模組,至少要6個,另外還要買對應數量的M3螺母及短螺絲
L298N加上散熱片就快3公分,我買到最長的銅柱也只有3公分,所以接了5mm的銅柱,上下底盤我鎖了3個點.
M4*5+6銅柱3個
M4*30+6銅柱3個
M4螺母3個
M4螺絲3個
再來是買個左圖這種8.5cm x 5.5cm的麵包板,NodeMCU插在中間剛好兩邊都剩一個插孔.
另外最重要的18650電池要四顆,我個人是比較建議在台灣買有認證過的電池.
開發方式也是用Arduino IDE,跟ESP8266差不多,網路上也有很多使用Arduino IDE整合NodeMCU ESP32S的文章.
之前裝好MQTT後,本來是要寫APP來整合,後來因故中斷,幾經思考後,決定先用Blynk來作為控制端.Blynk很火紅,可以找到很多說明的文章.
這是在官方文件中的第一張圖,簡單說明了它的運作模式,架構不難,跟MQTT差不多,但它的核心價值在於靈活的APP.
私人使用目前是免費的
這是我專案的配置,因為沒有點數可以創建分享的連結,不過依照這配置應該還挺簡單的
我都是對應虛擬IO,分別是V1 - V8
V1:前進
V2:後退
V3:馬達出力,這tt馬達在640 - 840之間可以正常運作,我沒有在啟動時同步取回最後一次的狀態,所以每次跟小車連上線要設定一下這個值
V4:是轉彎時,轉彎方向後方的輪子會逆轉來增加轉向力,如果轉彎力道不足時,可以增加這個數值,一樣640-840之間馬達才會正常動作
V5:右轉
V6:左轉
左右轉會依照最後移動方向是前進或後退來轉向,轉彎時,會以轉彎方向的輪胎為中心點轉動
最後V7跟V8分別是原地向右、向左旋轉
若失去WIFI訊號或無法與Blynk Server連線,小車會停下來.









