前往
大廳
主題 達人專欄

【IOT】硬體不可怕,從零開始(ESP8266) 無線遙控車製作 #Wifi與車車篇

%%鼠 拒收病婿 | 2023-01-02 01:51:33 | 巴幣 3258 | 人氣 1523

前言:
上一篇講到基本的硬體通訊協定與遙控器製作,這篇要來講wifi通訊與馬達驅動。


回顧一下成品:



車車材料

  • ESP8266
  • L298N (Mini版)
  • 9v電池
  • 車子底座 (這邊是用2輪+1個萬向輪)
  • GY-85 (非必要,因為本專題最終要透過wifi動態監控車子的行駛狀況)
  • 繼電器 (非必要,管理馬達電源供應)
 
 

Wifi 通訊

Wifi主要可以分成兩種模式:AP與STA。簡單來說AP會自己形成一個WLAN(無線區域網路,Wireless LAN),允許其他設備加入;而STA設備只能加入網路,無法自己形成一個WLAN。

因此本系統溝通架構如下圖,由遙控手把擔任AP,車車則會依SSID自動連上去。由於STA在連上AP時是自動賦予子ip位置的,因此AP與STA的溝通是透過廣播來進行。
延伸閱讀[1]:IEEE 802.11  infrastructure 模式。

設定為AP

詳細參數設定可見文獻[2]。程式參考[3]做修改,不太確定為什麼需要架設DNS就是了(我猜他是把DNS當gateway用)。

架設成功就可以在區域網路上搜索到該SSID:
下載UDP監控app就可以收發訊息:
 

設定為STA

語法差不多,簡化了一點。

傳遞結構化資料

將資料結構化會比較方便使用,然而wifi範例只教我們如何傳遞純文字資訊。我耗了一點時間終於嘗試出結構化的傳遞方式。
現在我們要傳遞上一篇的JoyStick的資訊給車車,首先定義結構與buffer大小:

傳送:


接收:


收到資訊後成功讀出,車車就可以依照這個資訊去操作馬達:
 

馬達驅動

感謝巴友提及,馬達驅動能避免直接由晶片供電給馬達,馬達很吃電,在接著USB的狀態下可能感覺不出來,但若使用電池供電則會發現馬達一啟動晶片就會跳電的狀況。 L298N Mini雖然能由3v3供電,但建議使用電池時要獨立供電。

繼電器接腳可以分兩邊,以下圖為例,左邊是驅動繼電器所需針腳,由IN的電位決定右邊要開NC還是NO線路。可以把繼電器右邊理解成獨立一個線路(不跟左邊共用電),有自己的電供跟晶片,由NC或NO決定有沒有斷路。
 
建議閱讀[4]:繼電器基本介紹。
這邊使用繼電器還有另外一個原因,不知道為什麼馬達驅動常常誤輸電給馬達,導致明明沒在操作,單邊的馬達卻一直轉,所以乾脆用繼電器控制電供。
 

附上最終電路圖

用EasyEDA繪製,今天找到的免費電路圖繪製軟體,擁有海量的晶片電路範本,也能自己做範本並分享至網路上。
遙控器

車車


後記:
下一篇大概講GY-85,網路上幾乎找不太到GY-85的完整lib,自己也花了一段時間才拼湊出來 (因GY-85是由3種感測模組組成)。
 

引用與延伸閱讀

  1. WiFi有兩種mode: STA 與 AP (又叫作SoftAP,HostAP) – 易春木 (eeepage.info)
  2. ESP8266 Operational WiFi Modes - The Engineering Projects
  3. UDP communication between server (AP) and client (STA) - Everything ESP8266
  4. 繼電器怎麼用? 它讓Arduino可以控制更多好玩的東西! | 瘋狂創客 (crazymaker.com.tw)


送禮物贊助創作者 !
10
留言

創作回應

勇者彈珠汽水
專題辛苦了
2023-01-02 05:31:59
%%鼠 拒收病婿
謝謝[e12]
2023-01-02 16:59:12
露諾弭向創作者進行贊助 ✦
太專業了~
2023-01-03 00:04:13
%%鼠 拒收病婿
謝謝你!! [e12]
2023-02-16 21:57:40
幻滅
大大您好想請問有可能使用單顆1.2v的電池去驅動L298N及馬達嗎 我個人使用變壓器升壓後仍然無法驅動 將馬達換成所需電流較小的N20也還是沒有動靜 想跟大大討教一下
2023-03-02 16:51:51
%%鼠 拒收病婿
L298N需要5v~35v,馬達是透過L298N供電驅動的,所以沒驅動L298N就應該沒辦法給馬達電力。
可以先檢查:
1. 升壓模組有沒有正常。
2. 檢查通過L298N的電流,它好像需要1~2A,電池可能沒辦法給到那麼大。
3. 注意L298N的voltage drop (約2V),也就是輸入7V的電,它只會輸出5V的電給馬達。
https://lastminuteengineers.com/l298n-dc-stepper-driver-arduino-tutorial/
2023-03-03 01:29:34
幻滅
感謝大大 那這樣看來我的問題主要是電流不夠大 變壓器是正常的 我應該會換其他馬達驅動試試 請問有推薦的嗎
2023-03-03 02:12:44
%%鼠 拒收病婿
我是使用L298N Mini版 (2v~10v驅動)

https://tronic.lk/assets/uploads/78fee39ceedeb181fba47bc02a606bed.jpg
2023-03-03 09:11:56
xin
你好,看見你組裝+寫入程式碼,很有興趣,不知道是否能跟你聯繫學習呢?
2024-03-30 05:07:27
%%鼠 拒收病婿
不好意思,時間上不太方便 (._.`)
2024-03-30 11:22:12
追蹤 創作集

作者相關創作

更多創作