chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用溫度傳感器控制Sphero

使用溫度傳感器控制Sphero

2023-06-19 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

在這篇文章中,我想介紹一種使用 Android 手機(jī)的新方法,并解釋我們?nèi)绾问褂盟鼇?lái)控制Sphero球。如果您不知道這個(gè)令人難以置信的球,請(qǐng)查看Sphero 網(wǎng)站。

計(jì)劃:使用溫度傳感器控制 Sphero

在這個(gè) Android 項(xiàng)目中,我想描述我們?nèi)绾卧?a href='http://www.brongaenegriffin.com/v/tag/11230/' target='_blank' class='arckwlink_none'>智能手機(jī)中集成溫度傳感器來(lái)控制 Sphero 球的顏色。換句話說(shuō),我想根據(jù)智能手機(jī)測(cè)量的溫度改變球的顏色,即使它處于待機(jī)狀態(tài)。這是一個(gè)有趣的項(xiàng)目,因?yàn)樗梢杂脕?lái)演示一些重要的概念:

最后但同樣重要的是,如何連接和使用Sphero ball 及其 SDK 。我們要設(shè)計(jì)的是一個(gè)如下圖所示的應(yīng)用程序:

?
poYBAGOIO7uAWcCdAABMv62ByG0646.png
?

應(yīng)用程序設(shè)計(jì)

現(xiàn)在我們知道我們想要獲取什么,我們可以混合使用 Android 特性和組件來(lái)獲取它。我們需要一個(gè)監(jiān)控溫度傳感器的組件和另一個(gè)連接到 Sphero 的組件。如前所述,即使應(yīng)用程序不在前臺(tái)或智能手機(jī)處于待機(jī)狀態(tài),我們也想讓這項(xiàng)工作正常進(jìn)行。所以我們需要一個(gè)Service,因?yàn)檫@個(gè)Android組件可以滿足我們的要求。我們將用來(lái)控制 Sphero 的組件是:

  • 作為應(yīng)用程序 UI 的 Activity
  • 監(jiān)控溫度傳感器的服務(wù)
  • 連接到球并控制其顏色的服務(wù)
?
poYBAGOIO76AElzYAACLhA536C4561.png
?

UI 活動(dòng)啟動(dòng)兩個(gè)服務(wù)并偵聽(tīng)來(lái)自它們的事件。該活動(dòng)設(shè)置了一個(gè)警報(bào),用于啟動(dòng)溫度傳感器服務(wù),這樣我們就不會(huì)耗盡電池。警報(bào)可以配置為以固定的時(shí)間間隔啟動(dòng)。每次溫度傳感器啟動(dòng)時(shí),它都會(huì)測(cè)量環(huán)境溫度并廣播該值。UI 活動(dòng)偵聽(tīng)這些事件并在 UI 中顯示值。同時(shí),球連接服務(wù)監(jiān)聽(tīng)相同的事件并計(jì)算顏色分量(R、G、B)并設(shè)置球的顏色。

創(chuàng)建溫度傳感器服務(wù):代碼

現(xiàn)在我們已經(jīng)大致了解了應(yīng)用程序中的主要組件,我們可以開(kāi)始對(duì)其進(jìn)行編碼了。我們要編碼的第一個(gè)元素是溫度傳感器服務(wù)。

創(chuàng)建球連接服務(wù):代碼

我們必須實(shí)施的另一項(xiàng)服務(wù)是通過(guò)藍(lán)牙處理 Sphero 連接。您可以參考 Sphero SDK 了解更多信息。我們想在 android 服務(wù)中處理連接:

public class BallConnectionService extends Service {
..
}

現(xiàn)在onStartCommand 我們開(kāi)始連接到 Sphero,同時(shí)我們開(kāi)始監(jiān)聽(tīng)傳入的溫度事件(第 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我們進(jìn)行實(shí)際連接時(shí):

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);
}

代碼看似復(fù)雜,仔細(xì)看其實(shí)很簡(jiǎn)單。我們開(kāi)始廣播我們嘗試連接到 Sphero 的事件(第 3 行),然后,使用 Sphere API,我們注冊(cè)一個(gè)偵聽(tīng)器以了解連接何時(shí)建立,并在最后廣播連接處于活動(dòng)狀態(tài)的新事件通過(guò)這種方法,我們開(kāi)始發(fā)現(xiàn)周?chē)欠裼行碌?Sphero 并準(zhǔn)備好連接。

服務(wù)的最后一部分用于監(jiān)聽(tīng)溫度事件并設(shè)置球的顏色:

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);
}
}
;

現(xiàn)在是創(chuàng)建應(yīng)用程序并使用 Android 溫度傳感器控制 Sphero 的時(shí)候了。


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

評(píng)論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫(kù)封裝庫(kù)安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門(mén)指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書(shū)
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書(shū)
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級(jí)說(shuō)明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱(chēng)的對(duì)照表詳細(xì)說(shuō)明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開(kāi)發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋(píng)果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分