ESP32CAM物聯網教學03
物聯網小車
小智突發奇想:要是我在點燈物聯APP中多增加幾個按鈕,控制小車的行駛方向,不就可以做成遙控小車了嗎?
- 點燈物聯控制小車的行駛方向
我們可以重新編輯點燈物聯APP中的設備控件界面,如圖所示,在界面中增加五個按鈕,分別控制著小車的前進、左轉、停止、右轉、后退,這樣是不是能變成遙控小車呢?
(五個方向按鈕的鍵名分別命名為:btn-ff、btn-ll、btn-ss、btn-rr、btn-bb,這些鍵名在后面的米思齊編程中需要逐一用到; 按鈕的類型為按鍵按鈕)
- 拼裝物聯網遙控小車
遙控小車可以選購現成的小車底座。
當然也可以選用樂高積木,然后自己根據想象進行自由的拼裝。下面這些是拼裝小車所必須的零部件,可以一一從網上購買(購買這些大約需要100元左右,比起購買現成的小車底座要貴了不少,但是這種自由拼裝的方式,可操作性強一些,而且特別適合小孩自己玩)
??? 經過一番折騰,你就能創造出專屬于自己的一輛小車了,這兩小車也是全網唯一的一輛,拼裝完成后,成就感爆棚。特別是到了我們課程的最后,我們會不斷地給這兩小車增加一些功能,相信這是你擁有的最靚的、最智能的一輛小車了。
- 小車的電路連接
首先,我們通過查閱淘寶上面的商品介紹信息,可以了解到L298n電機驅動板的引腳配置信息,可以看出這塊點擊驅動板可以同時驅動A、B兩個電機,由四個邏輯端口進行驅動。ESP32Cam左側的端口本來是用于TF存儲卡的,因為我們沒有用到TF存儲卡,所以這幾個端口是可以用來作為輸入或輸出端口使用的。
??? 我們利用杜邦線對小車的各個設備進行連接,接線圖如下,2節1860電池差不多可以提供8—9V的電源電壓,直接接入L298n,給驅動板和電機供電;這塊驅動板自帶5V調壓芯片,可以輸出5V的電源給ESP32Cam使用;ESP32Cam的12、13、15、14這四個端口,分別連接點擊驅動板的邏輯控制端口。
- 編寫ESP32Cam的小車控制程序
ESP32Cam的控制程序還是用米思齊的積木塊編寫。
我們在前面的點燈程序基礎上,復制了五個按鍵積木組合,每一個按鍵積木的組件名稱和對應的鍵名各不相同:組件名稱分別用Button1——Button5一一區分。所對應的鍵名,和前面的手機APP中命名的一致,btn-ff表示小車前進forward;btn-bb表示小車后退back;btn-ss表示小車停止stop;btn-ll表示小車左轉left;btn-rr表示小車右轉right。
左右兩個電機分別由兩組邏輯端口控制,左邊的電機由ESP32Cam的12、13號端口控制,右邊的電機由ESP32Cam的15、14號端口控制。
L298n采用的是H橋放大的工作原理,當12號端口為高,13號端口為低時,對應的左邊電機的兩個輸出端口,一個為高電平,一個為低電平,兩個端口的不同電勢差,在電機內部形成了正向電流,電機正向轉動,小車就前進了。相反,當12號端口為低,13號端口為高時,兩個端口的不同電勢差正好相反,在電機內部形成了反向電流,電機反向轉動,小車就后退了。當12號和13號端口同時為低時(或同時為高),對應的兩個端口則同時為低電平(或同時為高電平),兩個端口之間沒有電勢差,電流也無法流過電機內部,電機停止轉動,小車就停止了。
根據電機驅動原理,我們簡化了按鍵組件的驅動程序,當用戶在手機APP中按動不同方向按鍵使,讓ESP32Cam控制著左右電機的轉動方向,讓小車動起來。當左右兩個電機同時正向轉動是,小車就前進;同時反向轉動時,小車就倒退;左邊正轉右邊反轉時,就是右轉;左邊反轉右邊正轉時,就是左轉了。
溫馨提醒:
因為這個電機的轉速還是挺高的,所以我們選用點觸驅動的方法,即當用戶按動一次前進按鈕時,我們讓電機轉動了1秒就停下來,如果需要繼續前進,則需要繼續按一次按動前進按鈕。
因為電機的速度挺高的,如果不是采用這種點觸控制,而是采用連續控制的話(比如按動前進按鈕,小車就一直前進,在接收到用戶的下一個操作命令之前,一直處于前進的狀態),這樣小車會處于失控的狀態的,遙控的效果不好。當然,如果電機的速度慢,則可以使用連續控制了。