用Arduino相容設備(M5Stack)和感測器製作迷你遙控車!(劇終篇)

實現M5Stack與智慧手機聯動控制

 

第1部分:用小型Arduino相容設備(M5Stack)享受電子製作的樂趣

第2部分:透過M5Stack使用馬達驅動器

第3部分:透過M5Stack使用感測器實現自動駕駛和自動避讓功能

 

大家好,我是吉田!

本系列連載將為您介紹使用小型Arduino相容設備M5Stack製作遙控車的過程。在前面的部分中,我們已經用馬達驅動器讓遙控車能夠前後左右移動,並透過感測器實現了自動駕駛。在本文中,也就是本系列的最後一部分中,我們將實現從外部遙控這輛遙控車。這次,我們將會導入一種能夠透過智慧手機操作5Stack的名為“Blynk”的機制。

arduino-m5stack-remote-control-car-04-01

M5Stack和智慧手機聯動的遙控車

 

本部分的流程

  1. 導入智慧手機應用程式“Blynk”
  2. 在Wi-Fi環境下透過智慧手機操作M5Stack
  3. 添加操縱馬達用的操縱杆
  4. 總結

 

本部分所需零件

M5Stack Core

搭載了ESP32的Arduino相容設備

arduino-m5stack-remote-control-car-02

 

Grove I2C馬達驅動器

與Grove引腳連接即可使用的馬達驅動器

arduino-m5stack-remote-control-car-07_01

 

ROHM的照度、接近一體型感測器
(RPR-0521RS)

透過發射紅外光來測量光強和接近程度。

arduino-m5stack-remote-control-car-04-02

 

超聲波距離感測器
(HC-SR04)

透過發射超聲波來測量距離的模組

arduino-m5stack-remote-control-car-03-04

 

小型馬達、車輪

arduino-m5stack-remote-control-car-08

 

9V電池

電池盒

arduino-m5stack-remote-control-car-02-02

 

1. 導入智慧手機應用程式“Blynk”

我們需要導入名為“Blynk”的應用程式,以便透過智慧手機操作用M5Stack製作而成的遙控車。

在iOS或Android系統中搜索並安裝Blynk應用程式。

arduino-m5stack-remote-control-car-04-03

 

下載後,打開應用程式,會被要求建立一個帳戶,請用您的郵箱等註冊並登錄。在第一個畫面中,會出現“New Project”,需要給它命名並建立新專案。

arduino-m5stack-remote-control-car-04-04

 

在詳細設定中,Device請選擇“ESP32 Dev Board”,Connection請選擇“WiFi”。然後,將會出現一個空白的專案畫面,這就表示智慧手機的準備工作完成了。

arduino-m5stack-remote-control-car-04-05

 

接下來,在要程式設計的Arduino IDE中,獲取Arduino用的Blynk程式庫。從下面的連結下載程式庫並透過圖中功能表添加zip檔。

Blynk的Github頁面

arduino-m5stack-remote-control-car-04-06

 

現在,已經做好在手機和Arduino IDE上使用Blynk的準備了。

 

2. 在Wi-Fi環境下透過智慧手機操作M5Stack

我們已經將M5Stack與智慧手機聯結起來了,下面需要在畫面上添加一個操作功能。

當點擊Blynk應用程式的畫面時,會出現可以從右側添加的Widget(功能),我們先添加“Button”。

arduino-m5stack-remote-control-car-04-07

 

在這裡,我希望在按下該按鈕時能夠從M5Stack的揚聲器發出嘟嘟聲。在按鈕的詳細設定畫面上,OUTPUT選擇“Virtual”並指定V1。稍後將在M5Stack上指定V1,所以請記住這裡的設定。您還可以選擇僅在按下時發送信號的“PUSH”,並設定標籤名稱(Beep)等。

arduino-m5stack-remote-control-car-04-08

arduino-m5stack-remote-control-car-04-09

左:未按下按鈕的狀態 右:按下按鈕的狀態

 

最後,要獲取一個與M5Stack連接的權杖。權杖可以在專案創建時透過e-mail發送,也可透過打開“Project Settings”複製下方的“AUTH TOKEN”。稍後將透過Arduino IDE指定。

arduino-m5stack-remote-control-car-04-10

 

現在,需要使用Arduino IDE進行程式設計了。首先,拷貝一個名為“Speaker”的草圖範例作為M5Stack的範例。

在該範例中添加以下第3〜9、13〜22、28〜29、36行的內容。在草圖的xxxx部分添加前面複製的AUTH TOKEN。yyyy和zzzz是您Wifi環境的用戶名和密碼。此外,當按下V1按鈕時,要能聽到嘟嘟聲。

[M5Stack_Speaker_Blynk.ino]

 

運行此程式後,當Wi-Fi連接完成時,在串口監視器上會顯示下列畫面。在與智慧手機相同的Wifi環境下,將會從Blynk連接M5Stack。當按下螢幕上的按鈕時,應該會發出嘟嘟聲。

arduino-m5stack-remote-control-car-04-11

 

3. 添加操縱馬達用的操縱杆

現在,我們需要添加一個透過智慧手機驅動M5Stack的馬達的功能。有現成的“Joystick”(操縱杆)可以用來控制行進方向和旋轉速度,我們可以在手機畫面上對其進行設定。Joystick的輸出為V0,將其輸出範圍設定為-50到50。

arduino-m5stack-remote-control-car-04-12

 

最後,需要編寫透過Blynk控制M5Stack的程式。將Blynk的描述添加到在上一部分中創建的感測器與馬達聯動的程式“M5Stack_Near_Dist_Motor.ino”中。

下面的第15〜31、96、116行是前面的揚聲器所用的部分。

在第33〜93、111〜112、123〜126、162〜163行添加了根據Joystick控制馬達的描述。

[M5Stack_Near_Dist_Motor_Blynk.ino]

 

下面我們來嘗試操縱遙控車。和前面一樣,進入相同的Wi-Fi環境,連接M5Stack。當您前後左右移動操縱杆時,M5Stack是否跟著做出了相應的移動?當遙控車接近牆壁或者要從桌子上掉落下來時,和上次一樣,它會避開。

arduino-m5stack-remote-control-car-04-13

 

實際行駛的視頻如下
您可以根據馬達的連接方法來調整旋轉方向、轉數、轉速等。

 

4. 總結

在本系列連載中,為您介紹了使用M5Stack自動駕駛遙控車的製作過程。

使用可以從智慧手機連接M5Stack的應用程式Blynk,還能輕鬆添加透過智慧手機操縱遙控車的功能。我們成功地使按鈕與M5Stack揚聲器聯動起來,並實現了透過操縱杆的控制而前後左右移動。

Blynk有各種各樣的Widget,還可以根據M5Stack的感測器等來添加更多不同的功能,這樣會更有趣。比如,您還可以考慮怎樣將物體的接近程度以及溫濕度感測器測量到的值等在顯示器上顯示出來。

盼望您大膽嘗試,讓您的創意變成現實!感謝您閱讀本系列文章!

 

 


本系列連載一覽

第1部分:用小型Arduino相容設備(M5Stack)享受電子製作的樂趣

第2部分:透過M5Stack使用馬達驅動器

第3部分:透過M5Stack使用感測器實現自動駕駛和自動避讓功能

劇終篇:實現M5Stack與智慧手機聯動控制(本章)