文章

用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的文章.

GitHub上的小車原始碼

之前裝好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連線,小車會停下來.

本文章以 CC BY 4.0 授權