2016年6月24日 星期五

{ EP8266 WiFi 控制小車 } [ 3/3 ] - 小車路試

網頁最後修改時間:2022/03/17 


兩輪小車的驅動與控制網路上應該有不少的資料可以參考 ? 既然如此,又寫一次有什麼不同之處 ?

WiFi 控制在網路上應該也有很多不少的資料可以參考 ? 既然如此,有什麼不同之處 ?

解釋如下:

  • ESP8266 + 直流馬達驅動板 + 兩輪小車 = WiFi控制小車
    ESP8266 做為主控制器,負責 WiFi 通訊以及馬達的驅動
  • 可以同時控制小車的行進速度與轉向
    不是停下來原地旋轉轉向,而是一邊前進/後退,一邊轉向,像是開車一樣。
  • 適用任何可以實現 TCP / UDP 協議的裝置進行小車的遠端控制
    不局限於手機,只有設備有 WiFi 且可以使用 TCP / UDP 協議,就可以與小車進行通訊並且控制小車。
    網頁說明使用 Andorid 手機 APP 自製 GUI 介面控制小車的所有動作。

這一篇網頁基本上是 WiFi 小車說明的最後一篇。進入這一篇網頁之前,請先搞定小車組裝與電路佈線等工作,再準備一支 Android 手機,就可以開始了!


*********************************************************************************

更多機器人(多足、智能小車)相關商品,請至分類賣場。

*********************************************************************************

網頁分為幾個部分完成 WiFi 小車最後的步驟!

  • 手機 APP 安裝與 GUI 設計和設定
  • 程式碼與韌體燒錄
  • WiFi 小車上路測試

【手機 APP 安裝與 GUI 設計和設定】

小車所使用的手機操作 GUI 是使用 RoboRemo APP 創建出來的。不需要撰寫任何手機程式,在需要馬上測試硬體的情況下,短短的幾分鐘就可以設計出所需要的測試介面;若是嫌介面太簡單,就可以在測試成功之後自己撰寫手機端的程式,對於現在的情況,夠用了!

APP 安裝位址:PLAY

記得要看 APP 網頁上面影片中的 GUI 設計操作範例,了解操作方法!

手機官網上面有很多使用這個 APP 與其他硬體 (Arduino、ESP8266、藍牙... ) 結合的範例,我參考其中一篇使用 ESP-01 控制遙控車的伺服馬達與電調(ESC)馬達的範例來修改。所不同的是:使用ESP8266, ESP-07 作為微控制器、馬達驅動與控制方式和可使用 UDP 協議控制小車。


/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* GUI 設計與參數設定:

GUI 的設計很簡單 ! 將元件使用拖拉的方式就可以移動與縮放,點擊元件就可以設定其屬性與動作;若對於操作不是很清楚,看看上面提供的連結與影片。

小車的手機畫面的設計與參數設定,可依照下面所提供的資料來完成

RoboRemo GUI 畫面設計與參數設定

最後,也就是上面設定好了之後,請加入 "touch stopper" (黃黑線) 這個元件在下面標示的位置,可以避免在操作時不會去移動到其他元件。至於有什麼不同 ? 可以在加入 "touch stopper" 元件之前與之後比較就會了解 !

ReboRemo GUI 中 "touch stopper" 的位置


【程式碼與韌體燒錄】

下面的程式碼是使用 TCP 協議控制  WiFi 小車的測試版程式,拿掉了小車馬達行進中偏向的功能,但可以用上面的 GUI 控制小車的前進、後退、原地左旋、原地右旋和左右輪差補正的功能。測試沒問題之後,再試著自己加入行進中偏向的功能!


/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* 程式碼與燒錄:

測試版程式碼下載 (ESP07TwoWDWiFiCarTCPDemo.zip)

解壓縮之後會有三個檔案,建立一個與主程式名稱相同的目錄放在其中:

  • ESP07TwoWDWiFiCarTCP.ino (ESP07TwoWDWiFiCarTCPDemo.ino)
    主程式
  • esp6612motordriver.h
    馬達驅動程式標頭檔
  • esp6612motordriver.cpp
    馬達驅動程式碼

打開 Arduino IDE 載入程式碼並設定好 ESP8266 編譯的參數,ESP8266 燒錄接線都插好之後 (此處燒錄使用外部電源方式,有問題看 "{ EP8266 WiFi 控制小車 } [ 2/3 ] - 電路佈線與馬達轉向測試"),點擊編譯上傳按鈕燒錄韌體到 ESP8266, ESP-07

編譯輸出畫面

上傳好了之後,確定馬達開關在 O 的位置再插上外接電源,接著打開馬達開關 (一定要照著這個順序),就可以開始手機連線 !

不管是使用 TCP 或是 UDP 協議控制 WiFi 小車,動作都是一樣的 ! 差異只在程式裡面是用哪一種通訊協議。

這台 WiFi 小車在製作的過程之中嘗試過很多種 GUI 設定方式,試著找出與程式撰寫時配合比較好的設定,電路也是經過多次的測試與修改,現在才會看起來比較簡潔和舒服。

廢話不多說 ! 先看一下下面的影片,分別是手機操作使用 TCP 與小車連線的影片,以及使用 UDP 連線並將小車放置在一個平台上測試兩輪馬達轉動情形 (這影片中展示的是完整版的程式)。


/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* TCP 連線 WiFi 小車的方法:

影片中使用的線路與 GUI 是舊版本的,但動作是一樣的!

AP 名稱使用的也是舊版本的,但不影響 !


/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* UDP 連線 WiFi 小車完整版測試說明影片:

為了在實際上路測試之前讓使用者可以看到完整的小車在手機操作時的動作,我將小車架空在平台上,可以很容易地觀察到小車兩輪轉動的情形。輪子上面貼有膠帶,可以更容易地看出兩輪子的轉速差,藉此了解整個程式運作的方式。


【WiFi 小車上路測試】

下面的影片將兩個瓶子分為兩個距離來作 8 字型的走動,走得好不好跟操作有關係,多加練習就能走得更好!


【結論】

WiFi 小車在網頁中是使用手機作為通訊與操控的裝置,但是 ! 只要能夠使用 TCP 與 UDP 協議的 WiFi 裝置,連線之後傳送預先程式中定義的 id 與數值和最後的結束字元,就能控制 WiFi 小車的動作!

TCP/UDP 測試軟體

試試用這個操作看看吧!


<<部落格相關文章>>


.

.

    沒有留言:

    張貼留言

    留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

    發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

    不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !