SensorDroneの使い方

提供:TuntunkunMediaWiki

移動: 案内, 検索

目次

SensorDroneとは

SensorDroneは様々なセンサーを搭載し、そのセンサーデータをスマートフォン経由で受け取ることで様々な事が出来るデバイスです。Gigagineで、どんな事が出来るのか記事にまとめられているのでURLを書いておきます。 http://gigazine.net/news/20120723-sensordrone/

サンプルアプリケーションを動かすだけであれば、Google Playで公開されているアプリをインストールするだけで確認を行うことができます。 https://play.google.com/store/apps/details?id=com.sensorcon.sensordronecontrol#?t=W251bGwsMSwxLDIxMiwiY29tLnNlbnNvcmNvbi5zZW5zb3Jkcm9uZWNvbnRyb2wiXQ..

どうやって使用するのか?

同作環境

Mac OS X, 開発環境はAndroid Studioを想定します。

環境構築

どんな事ができるのかを公開している人は、たくさんいますがどうやってコードを書くのかを公開している人見当たらなかったためなかなか苦労しましたが、誰かが困った時のためにまとめておきます。まずSensorDroneのSDKが公開されているのでダウンロードしてきます。

SDK: http://developer.sensordrone.com/downloads/

GitHUb: https://github.com/MarkRudolph

パスの設定

SensorDroneを使用するためのライブラリSDAndroidLib-1.1.1.jarをダウンロードした後、適当なプロジェクトのディレクトリに配置します。(プロジェクト名/libs とか)配置を行ったら、ライブラリ設定から、SDAndroidLib-1.1.1.jarを追加します。ライブラリのパスを通したら、今度はビルドを行う際のパスを通します。

cd build.gradeが存在するディレクトリ
vim build.grade
~省略~
dependencies {
    compile files('libs/android-support-v4.jar')
    compile files('libs/SDAndroidLib-1.1.1.jar')
}
~省略~
./gradlew clean

AndroidManifest.xmlの設定

Android環境でSensorDroneを使用するためには、Bluetoothを使用するためManifestファイルに以下の設定を追加する必要があります。

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />

SensorDroneのコーディング

とりあえず接続を行う

以下は接続を行うだけの簡単なコードです。正しく動いた場合は、接続するSensorDroneのデバイスを選択する事ができます。接続が出来ているかの確認を行うためには、Droneインスタンスの.isConnected要素を確認する事で接続の確認を行う事が出来ます。

package com.example.wifi3g;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
import com.sensorcon.sdhelper.SDHelper;
import com.sensorcon.sensordrone.Drone;
 
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Drone drone = new Drone();
 
        SDHelper helper = new SDHelper();
        helper.scanToConnect(drone, this, this, false);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

イベントリスナの登録

イベントリスナを作成し、Droneオブジェクトに登録する事で、様々なイベントを取得する事が出来るようになります。

DroneEventListener deListener = new DroneEventListener() {
    @Override
    public void connectEvent(EventObject arg0) {
    }
    @Override
    public void connectionLostEvent(EventObject arg0) {
    }
    @Override
    public void disconnectEvent(EventObject arg0) {
    }
    @Override
    public void adcMeasured(EventObject arg0) {
    }
    @Override
    public void rgbcMeasured(EventObject arg0) {
    }
    @Override
    public void altitudeMeasured(EventObject arg0) {
    }
    @Override
    public void pressureMeasured(EventObject arg0) {
    }
    @Override
    public void temperatureMeasured(EventObject arg0) {
    }
    @Override
    public void humidityMeasured(EventObject arg0) {
    }
    @Override
    public void capacitanceMeasured(EventObject arg0) {
    }
    @Override
    public void reducingGasMeasured(EventObject arg0) {
    }
    @Override
    public void oxidizingGasMeasured(EventObject arg0) {
    }
    @Override
    public void precisionGasMeasured(EventObject arg0) {
    }
    @Override
    public void irTemperatureMeasured(EventObject arg0) {
    }
    @Override
    public void i2cRead(EventObject arg0) {
    }
    @Override
    public void usbUartRead(EventObject arg0) {
    }
    @Override
    public void uartRead(EventObject arg0) {
    }
    @Override
    public void customEvent(EventObject arg0) {
    }
    @Override
    public void unknown(EventObject arg0) {
    }
};
drone.registerDroneEventListener(deListener);
個人用ツール
名前空間
変種
操作
案内
ツールボックス