在ArduRover系列的最後一部分,我發佈了一個機器人在電腦的控制下行駛的視訊。電腦上運行的程式透過一個序列埠將資料發送給Arduino,然後Arduino傳送資料給機器人。但是,這種設定有幾個比較大的問題。
首先,透過鍵盤來控制機器人是非常困難的。下圖是我在視訊中用來控制機器人的應用程式的一個截圖。
這是在Visual Studio 中的.NET框架下用C#語言來編寫的。雖然它能夠對測試馬達起到一些作用,但是對於一次只調整一側馬達來控制機器人仍是一個挑戰。這真是令人心煩。用戶唯一可以控制的就是設定馬達轉速的滑動按鈕和使機器人立馬停止工作的按鈕。
我遇到的另一個比較大的問題是用來測試的筆記型電腦比較重,不能用一隻手拿著隨身攜帶,然後空出另一隻手來控制機器人。好吧,一個隨身帶著筆記型電腦和寵物機器人的人看起來可能是有點奇怪。
為了使控制器變得更加簡單和可攜式,我需要一些可以連接到Arduino,並且重量輕、便於長時間攜帶的、最好是可以手持的裝置。如果隱蔽性比較好那就更好了。起初,我打算使用一個可以安裝在Arduino上的舊RC飛機控制器,但是後來我想到了一個更簡單的解決方案:我的Android手機!它完美地符合所有要求:很輕並且可以手持。我們只需要透過USB埠或藍牙將其與Arduino連接即可。
我提出的下一個應用程式是透過Android Studio用Java編寫的。這比上文中的C#語言應用程式高級得多。它具有多個螢幕,允許使用者控制所有子系統,而不僅僅是馬達。讓我們來看一下其中一個螢幕上的佈局。
每個螢幕都會被分成幾個部分。在螢幕的兩側,有兩個滑動按鈕(上圖中1和2標記的地方)來分別對左側和右側的馬達設定轉向和轉速。這樣的佈置可以使用戶能夠以更自然的方式來對機器人的行動進行控制:滑動按鈕向上行動使其前進,向下行動使其後退。按鈕扭矩越大,那一側的馬達轉速就越大。很簡單!
接下來是下面(3)的一個大“停止”按鈕。它的作用看起來很好解釋:按下這個按鈕,馬達就會停止。當我用C#應用程式測試機器人時,這應該是最有用的按鈕了,所以我決定在該應用程式中保留這個設計。在應用程式的頂部,有一個帶有多個標籤的欄(4)。由於控制內容太多,無法都呈現在一個螢幕上,這個條形欄可以使使用者在不同螢幕間切換。該螢幕中的內容顯示在中心位置(5)。這意味著使用者可以透過任何螢幕上來控制機器人以及停止所有馬達!
這些螢幕(按照應用程式頂部條形欄中的排列順序)為: