資料介紹
描述
在這篇文章中,我想介紹一種使用 Android 手機的新方法,并解釋我們如何使用它來控制Sphero球。如果您不知道這個令人難以置信的球,請查看Sphero 網站。
計劃:使用溫度傳感器控制 Sphero
在這個 Android 項目中,我想描述我們如何在智能手機中集成溫度傳感器來控制 Sphero 球的顏色。換句話說,我想根據智能手機測量的溫度改變球的顏色,即使它處于待機狀態。這是一個有趣的項目,因為它可以用來演示一些重要的概念:
最后但同樣重要的是,如何連接和使用Sphero ball 及其 SDK 。我們要設計的是一個如下圖所示的應用程序:
應用程序設計
現在我們知道我們想要獲取什么,我們可以混合使用 Android 特性和組件來獲取它。我們需要一個監控溫度傳感器的組件和另一個連接到 Sphero 的組件。如前所述,即使應用程序不在前臺或智能手機處于待機狀態,我們也想讓這項工作正常進行。所以我們需要一個Service,因為這個Android組件可以滿足我們的要求。我們將用來控制 Sphero 的組件是:
- 監控溫度傳感器的服務
- 連接到球并控制其顏色的服務
UI 活動啟動兩個服務并偵聽來自它們的事件。該活動設置了一個警報,用于啟動溫度傳感器服務,這樣我們就不會耗盡電池。警報可以配置為以固定的時間間隔啟動。每次溫度傳感器啟動時,它都會測量環境溫度并廣播該值。UI 活動偵聽這些事件并在 UI 中顯示值。同時,球連接服務監聽相同的事件并計算顏色分量(R、G、B)并設置球的顏色。
創建溫度傳感器服務:代碼
現在我們已經大致了解了應用程序中的主要組件,我們可以開始對其進行編碼了。我們要編碼的第一個元素是溫度傳感器服務。
創建球連接服務:代碼
我們必須實施的另一項服務是通過藍牙處理 Sphero 連接。您可以參考 Sphero SDK 了解更多信息。我們想在 android 服務中處理連接:
public class BallConnectionService extends Service {
..
}
現在onStartCommand
我們開始連接到 Sphero,同時我們開始監聽傳入的溫度事件(第 8 行)。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mySphero == null)
doConnection();
IntentFilter rec = new IntentFilter();
rec.addAction(SensorService.TEMP_BALL_SENSOR);
registerReceiver(receiver, rec);
return Service.START_STICKY;
}
在doConnection
我們進行實際連接時:
private void doConnection() {
sendStatus(CONNECTING);
createNotification("Connecting...");
RobotProvider.getDefaultProvider().addConnectionListener(new ConnectionListener() {
@Override
public void onConnected(Robot robot) {
Log.d("Temp", "Connected");
mySphero = (Sphero) robot;
sendStatus(CONNECTED);
createNotification("Connected");
}
@Override
public void onConnectionFailed(Robot robot) {
Log.d("Temp", "Conection failed");
sendStatus(FAILED);
}
@Override
public void onDisconnected(Robot robot) {
Log.d("Temp", "Disconnected");
mySphero = null;
createNotification("Disconnected!");
}
});
RobotProvider.getDefaultProvider().addDiscoveryListener(new DiscoveryListener() {
@Override
public void onBluetoothDisabled() {
Log.d("Temp", "BT Disabled");
}
@Override
public void discoveryComplete(Listspheros) {
Log.d("Temp", "Found ["+spheros.size()+"]");
}
@Override
public void onFound(Listspheros) {
// Do connection
Log.d("Temp", "Found ball");
RobotProvider.getDefaultProvider().connect(spheros.get(0));
}
});
boolean success = RobotProvider.getDefaultProvider().startDiscovery(this);
}
代碼看似復雜,仔細看其實很簡單。我們開始廣播我們嘗試連接到 Sphero 的事件(第 3 行),然后,使用 Sphere API,我們注冊一個偵聽器以了解連接何時建立,并在最后廣播連接處于活動狀態的新事件通過這種方法,我們開始發現周圍是否有新的 Sphero 并準備好連接。
服務的最后一部分用于監聽溫度事件并設置球的顏色:
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
float val = intent.getFloatExtra("value", 0);
Log.d("Temp", "Received value ["+val+"]");
if (mySphero != null) {
// send color to sphero
int red = (int) (255 * val / RANGE) * (val > 10 ? 1 : 0);
int green = (int) ( (255 * (RANGE - Math.abs(val)) / RANGE) * (val < 10 ? 0.2 : 1) );
int blue = (int) (255 * (10 - val) / 10) * (val < 10 ? 1 : 0);
mySphero.setColor(red, green, blue);
}
}
;
現在是創建應用程序并使用 Android 溫度傳感器控制 Sphero 的時候了。
- IC溫度傳感器的技術現狀 5次下載
- DS18B20溫度傳感器的數字溫度計設計案例 53次下載
- 智能化集成溫度傳感器原理與應用的PDF電子書 31次下載
- 智能化集成溫度傳感器原理與應用的PDF電子書免費下載 20次下載
- 溫度傳感器及其與微處理器接口的詳細資料說明 11次下載
- 四種溫度傳感器的數據介紹 9次下載
- 溫度傳感器的詳細資料說明 45次下載
- 溫度測量的概述和熱電偶的介紹及各類溫度傳感器的詳細資料說明 0次下載
- AD590溫度傳感器的中文資料介紹 29次下載
- 嵌入式應用溫度測量如何選擇溫度傳感器和調理電路
- CWF2溫度傳感器英文資料 7次下載
- 傳感器綜合實驗--溫度控制器 0次下載
- SUNSTAR溫度傳感器 69次下載
- 數字溫度傳感器自動控制儀的研制
- 無線數字溫度傳感器的設計
- 溫度傳感器的結構和類型 605次閱讀
- 溫度傳感器T121構成的溫度控制電路 2121次閱讀
- 溫度傳感器是什么,哪些是屬于溫度傳感器 1.7w次閱讀
- 溫度傳感器如何選型 9669次閱讀
- 溫度傳感器探頭型號介紹 溫度傳感器原理分析 5.6w次閱讀
- 溫度傳感器的常見分類 溫度傳感器應用大全 2.1w次閱讀
- 溫度傳感器怎么測好壞_溫度傳感器的測量方法 8w次閱讀
- 溫度傳感器如何選型?選擇溫度傳感器需要注意哪些? 3.7w次閱讀
- 溫度傳感器的應用及原理 1.5w次閱讀
- 溫度傳感器設計方案匯總(二款溫度傳感器的設計方案) 5.7w次閱讀
- 溫度傳感器種類匯總及應用分析 3w次閱讀
- 各式溫度傳感器的原理及溫度傳感器套管破裂的解決 2272次閱讀
- pt100溫度傳感器的工作電路及原理與pt100溫度傳感器的檢定點選擇 1.6w次閱讀
- 常用溫度傳感器解析,溫度傳感器的原理、分類及應用 3828次閱讀
- 溫度傳感器 3056次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多