1. 程式人生 > >智能小車七《上位機android》

智能小車七《上位機android》

一次 src msg 解釋 roi exception 速度 nec put

接著上文的串口協議,本文再介紹下android端如何實現。現在程序員分工很明確,很多會C的不會java,會java不一定會開發android。而我的本職工作是開發java後臺的,android的開發只能算個業余選手,但開發一個小車的控制程序還是可以的。
先介紹一下android的開發環境,Android Studio。如下圖:

技術分享

我們新建一個項目後,主要的要改的文件都在這個main文件夾中。java文件夾是.java文件,放程序邏輯。res文件放用於界面展示的配置文件,AndroidManifest.xml是配置整個項目的權限,入口代碼等。
我的設計是這樣,進去的第一個界面先展示藍牙列表與控制按鈕。選擇藍牙連接上後,隱藏藍牙列表,界面就只有控制按鈕了。下面的進度條樣子的控件是用於利用android的pwm功能來設置速度。

技術分享



連接上藍牙後:

技術分享

這裏面設置很多小的技術點,如設置橫屏,如何隱藏控件,控件如何自適應屏幕大小。這些在專業的android程序員眼可能都不是事,但我做時還是用了不少時間查的。比如隱藏後如何自動適應屏幕,我用的是相對布局。這個可以看黑馬程序員的android的視頻課程。

這裏介紹一個簡單而重要的技術點,藍牙如何保持連接?在實際的操作過程中,使用者可能會發現藍牙會無緣無故斷掉。一開始我只有重啟app再連接,真到改了如下幾行代碼:
try {
os.write(msg.getBytes());
} catch (IOException e) {
e.printStackTrace();
//發送發生異常,重連Socket
System.out.println("發送發生異常,重連Socket");
connectSocket(lvDevices);
}
解釋一下os是OutputStream,藍牙的輸出流。msg是要發送的消息內容。如果發生異常就再去連接藍牙。其實最好的是連接之後再發送一次內容。
好了,一個簡單的控制程序就介紹完了。

智能小車七《上位機android》