色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>使用溫度傳感器控制Sphero

使用溫度傳感器控制Sphero

2023-06-19 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

在這篇文章中,我想介紹一種使用 Android 手機的新方法,并解釋我們如何使用它來控制Sphero球。如果您不知道這個令人難以置信的球,請查看Sphero 網站

計劃:使用溫度傳感器控制 Sphero

在這個 Android 項目中,我想描述我們如何在智能手機中集成溫度傳感器來控制 Sphero 球的顏色。換句話說,我想根據智能手機測量的溫度改變球的顏色,即使它處于待機狀態。這是一個有趣的項目,因為它可以用來演示一些重要的概念:

最后但同樣重要的是,如何連接和使用Sphero ball 及其 SDK 我們要設計的是一個如下圖所示的應用程序:

?
poYBAGOIO7uAWcCdAABMv62ByG0646.png
?

應用程序設計

現在我們知道我們想要獲取什么,我們可以混合使用 Android 特性和組件來獲取它。我們需要一個監控溫度傳感器的組件和另一個連接到 Sphero 的組件。如前所述,即使應用程序不在前臺或智能手機處于待機狀態,我們也想讓這項工作正常進行。所以我們需要一個Service,因為這個Android組件可以滿足我們的要求。我們將用來控制 Sphero 的組件是:

  • 作為應用程序 UI 的 Activity
  • 監控溫度傳感器的服務
  • 連接到球并控制其顏色的服務
?
poYBAGOIO76AElzYAACLhA536C4561.png
?

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 的時候了。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲欧美日韩中字视频三区| 99国产精品免费视频| chinese情侣自拍啪hd| 欧美性狂猛bbbbbbxxxx| 国产成人mv 在线播放| 学生精品国产在线视频| 久久学生精品国产自在拍| fryee性欧美18 19| 五月丁香啪啪.| 久久亚洲网站| 超碰超碰视频在线观看| 亚洲精品AV一二三区无码| 美女网站免费久久久久久久| 成人性生交大片免费看4| 亚洲伦理精品久久| 欧美eee114| 黄页网站18以下勿看免费| chinese学生gv video| 亚洲精品电影久久久影院| 美女被日出水| 国产婷婷午夜无码A片| 91精品一区二区三区在线观看| 色戒未删减版在线观看完整| 久久99这里只有精品| 被室友C哭调教双性| 亚洲视频中文字幕在线观看| 青青久久久| 精品夜夜澡人妻无码AV蜜桃| 成年人视频在线免费看| 一区二区三区国产亚洲网站| 色久久一个亚洲综合网| 久久青青热| 国产欧美国产综合第一区| 91精品一区二区综合在线| 亚洲成AV人电影在线观看| 青娱国产区在线| 久久性综合亚洲精品电影网| 国产日韩欧美高清免费视频| 不分昼夜H1V3| 97在线播放| 中文字幕欧美日韩VA免费视频|