Physicaloid

Feed Rss

Physicaloid : Physical computing with a smartphone

PhysicaloidはIoTスタートアップをアクセラレートするためのソフトウェア&ハードウェアプロジェクトです。
スマートフォンとハードウェア(センサ)との間にある技術的な溝を埋め、スタートアップをより活性化させることを目的としています。
そのためのオープンソースなハードウェアとソフトウェアを提供していきます。

PocketDuino
PocketDuinoはAndroidに直接指すことのできるArduino Pro Mini互換ボードです。
さまざまなセンサをつなげてAndroidと連携させることができます。
クラウドファンディングindiegogoで目標金額 111% のご支援をいただきました。
http://igg.me/at/PocketDuino/
PocketDuinoForAndroidPhysicalComputingHalf

Physicaloid Library
Physicaloid(フィジカロイド)ライブラリはスマホ開発のためのソフトウェアライブラリです。
現在オープンソースAndroidライブラリを公開中です。
ハードウェアにAndroidのリッチなUIをつなぐことを目的として作成しました。

PhysicaloidライブラリにはシンプルなAPIが用意されており、

  • AndroidからArduinoへファームウェアの書き込み
  • AndroidとArduinoの間をUSBシリアルで通信

をさせることができます。

Download from github

コーディング例

AndroidからArduino UNOへファームウェアをアップロード

Physicaloid mPhysicaloid = new Physicaloid(this);
mPhysicaloid.upload(Boards.ARDUINO_UNO, "/sdcard/arduino/Blink.uno.hex");

AndroidからArduino UNOへファームウェアをアップロード(assetsファイル)

Physicaloid mPhysicaloid = new Physicaloid(this);
mPhysicaloid.upload(Boards.ARDUINO_UNO, getResources().getAssets().open("Blink.uno.hex"));

AndroidからArduinoのシリアル通信をオープンし、適当な文字を書込む

Physicaloid mPhysicaloid = new Physicaloid(this);
if(mPhysicaloid.open()) {
    byte[] buf = "moemoe".getBytes();
    mPhysicaloid.write(buf, buf.length);
    mPhysicaloid.close()
}

AndroidからArduinoのシリアル通信をオープンし、文字を読込み、TextViewへ表示さる

Physicaloid mPhysicaloid = new Physicaloid(this);
TextView TextView1 = (TextView) findViewById(R.id.TextView1);// Android TextView

if(mPhysicaloid.open()) {
    byte[] buf = new byte[256];

    mPhysicaloid.read(buf, buf.length);

    TextView1.append(new String(buf));

    mPhysicaloid.close();
}

android_arduino

Physicaloidライブラリについて
Physicaloidライブラリを使うことで、開発者はAndroidアプリにArduinoファームウェアを内包させることができます。つまり、このPhysicaloidライブラリを使うことでAndroidアプリとArduinoを1つのアプリケーションとしてユーザに提供することができます。もちろんAndroid端末のroot化は必要ありません。作成したアプリはGooglePlayストアへアップロードできます。

physicaloid_upload

ユーザにArduinoのファームウェアをAndroidアプリとは別にダウンロードさせる必要はありません。

ユーザは必要なハードウェアさえ持っていれば、ストアからアプリをダウンロードし

その場でファームウェアを転送。すぐにArduinoと連携させることができます。
physicaloid_download

だれでもカンタンに開発できるようAPIはごくシンプルに設計しています。

主なメソッドは以下の5つです。

  • open : Androidとデバイス間を接続する
  • close : Androidとデバイス間を切断する
  • read : デバイスからAndroidへデータ読込
  • write : Androidからデバイスへデータ書込
  • upload : デバイスへファームウェア書込

Androidとフィジカルコンピューティングを併せたおもしろいアプリをぜひ作ってみてください。

特徴

  • Android Java ライブラリプロジェクト
  • オープンソース(Apache 2.0 License)
  • Android 3.1以上で動作 (USB Host API 機能が必要です)
  • ルートを取る必要なし
  • ファーム書きこみプロトコル : STK500(Arduino UNO系), STK500V2(Arduino Mega系)
  • USBシリアルプロトコル : FTDI USB-Serial(Arduino系), CDC-ACM(Arduino系/mbed系)
  • USB-FIFOプロトコル : FT245/FT240X, FT2232H(FPGA系)

カンタンな使い方
Eclipseで File -> import から PhysicaloidLibrary ディレクトリをインポートします。
自分のAndroidプロジェクトを右クリック -> Properties -> Android -> Libraryにある“Add”ボタンをクリック -> PhysicaloidLibrary を選択すればライブラリとして使えます。

その他 SampleProject下にサンプルコードを置いています。

Special Thanks
このプロジェクトは オープンソースプロジェクトavrdudeのコードを参考にしました。
avrdudeコントリビュータの方々に敬意を表します。

ライセンス
Apache License, Version 2.0.

更新履歴
2013-07-16 公開

Comments are closed.