株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。新規開発案件のご依頼をお待ちしております。

*

無線マイコン ToCoStick(トコスティック)をAndroidで使ってみた

   

無線マイコンの ToCoStick(トコスティック)をAndroidスマホで使ってみました。前回と同様の構成ですが、Raspberry PiではなくAndroidスマホを使ってみました。

Androidでは以下の当サイトの記事から始まる内容の通りにUSBホストケーブルを経由して接続しています。またUSBシリアルドライバも同じドライバを使っています。スマホも同じシャープ製SHL23です。
AndroidでUSBシリアル通信(その1)ハードウェア・ソフトウェア構成等

androidtoco

利用させて頂いているドライバとそのテストアプリは以下です。
USB Serial ドライバ、通信ライブラリ

まず、上記のドライバとテストアプリのビルドについてです。上記の記事で書いた際は開発環境はEclipseで特に問題はなくビルドが出来て動作確認出来たのですが、今回はAndroid Studioで手間取りました。その内容について書きます。

ドライバとそのテストアプリのプロジェクト一式もAndroid Studio形式になっているのでAndroid Studioからインポート出来ます。そこでビルドを実行すると以下のようなエラーになりました。
0001
Android Gradle plug-inが古いといった内容でこれはこのメッセージのリンクをクリックすれば解決出来ました。

問題はここからでした。Android Studioを利用されていれば理解されている方も多いと思いますが、Android StudioではビルドにGradleを利用します。このGradleのビルドでエラーになりました。結局は各モジュールのbuild.gradleを一部変更してビルドを通すようにしました。(※私はGradleとは何だ、これでビルドの手順をどう書けばいいのかというレベルです。そのため余計に手間取ったと思います。)

各モジュールのbuild.gradleファイルの以下の部分を変更しました。

usbSerialForAndroidモジュールのbuild.gradleファイル
android {
    compileSdkVersion 19
    buildToolsVersion "19.1"

    defaultConfig {
        minSdkVersion 12
        targetSdkVersion 19
    }

    buildTypes {
        release {
            minifyEnabled false   ← ここの部分です。falseを設定して下さい。
        }
    }
}

スクリーンショットは以下です。
0008

usbSerialForExamplesモジュールのbuild.gradleファイル

android {
    compileSdkVersion 19
    buildToolsVersion "19.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19

        ↓ 以下の2行です。
        applicationId "com.hoho.android.usbserial.examples"       
        testApplicationId "com.hoho.android.usbserial.examples"
    }

    buildTypes {
        release {
            minifyEnabled false  ← ここの部分です。falseを設定して下さい。
        }
    }
}

スクリーンショットは以下です。
0010

ファイルを変更したら、Android Studioのメニューの、Toos → Android → Sync Project with Gradle Filesを実行して下さい。もし意味不明と思われるビルドエラーが出た際も再度これを実行してみて下さい。
WS000009

これで私の環境ではビルドが正常に終了しました。Android Studio 1.2です。

参考までに、各build.gradleを修正する前は以下のようなビルドエラーが出ました。
Gradle DSL method not found: ‘testPackageName()’
Gradle DSL method not found: ‘runProguard()’

あと、minifyEnabled falseの部分をminifyEnabled trueと設定してしまうと以下のようなエラーが出ました。
Execution failed for task ‘:usbSerialForAndroid:proguardRelease’.
> java.io.IOException: The output jar is empty. Did you specify the proper ‘-keep’ options?

(※申し訳ありませんが、詳細は解説出来るほど理解出来ていません。これでこのプロジェクトではビルドが通ったということです。また環境によっては別の状況になるかもしれません。これらについてはご了承頂ければと思います。)

以上でビルドが完了したのでやっと本題です。今回のUSBシリアルドライバはFTDIをサポートしているのでToCoStickをUSBホストケーブルから接続すると以下のように認識しました。アプリ起動の際は必ずデバイスへの許可を経由して起動します。
screenshotshare_20150510_213653

上記デバイスリストからデバイス(ToCoStick)を選択して、ブレッドボード側に電源を供給するとデータが見えました。またタクトスイッチにも反応しました。
screenshotshare_20150510_213643

ビルドには手間取ったとはいえドライバが公開されているのはありがたいことだと思います。Linux、Android等のオープン系の資産には感謝したいと思います。

今回は通信が出来たというレベルです。実際に実用性はどうなのか等も含めて応用的な使い方はこれからなのでまた書きたいと思います。

メーカのサイト
超簡単!無線マイコンTWE-Lite DIP(トワイライト・ディップ)
ToCoStick(トコスティック)

関連書籍
導入時はまずはこの書籍を見ながら操作しました。

あと、以下はRaspberry Pi2の発売前に出た本ですが、今回のTWE-Lite DIPをRaspberry Piで使う記事やその他Raspberry Piのいろいろな活用方法が書かれています。

最後に電子工作がテーマのマンガのハルロックです。

その他関連サイト
つなぐだけで無線化できる「TWE-Lite(トワイライト)ではじめるカンタン電子工作」特別講座

 - Android, 通信制御

AdSense

AdSense

  関連記事

adt7410catch
温度センサADT7410(その1)i2C通信とは

温度センサのADT7410を使ってみます。ADT7410はアナログ・デバイセズ社 …

raspi_toco_eye
無線マイコン ToCoStick(トコスティック)をRaspberry Piで使ってみた

無線マイコンの ToCoStick(トコスティック)をRaspberry Piで …

wifishld2
Arduino CC3000 WiFi シールドを使ってみた

前回の記事では、Arduino Ethernetシールドの旧製品版を使ってみまし …

screenshotshare_20140706_185023
温度管理システム的なものを作ってみる(その5)AndroidからCloudへの送信

温度管理システム的なものを作ってみるの5回目です。前回はCloud(Micros …

IMG_0336
SHARP製スマホSHL23でBLE通信を試してみた

SHARP製のスマホSHL23でBLE(Bluetooth Low Energy …

IMG_0891
温度管理システム的なものを作ってみる(その1)システム概要

「温度管理システム的なものを作ってみる」の1回目です。AndroidでUSBシリ …

twelite2
無線マイコンTWE-Lite DIPを使ってみた

無線マイコンのTWE-Lite DIPを使ってみました。製品の詳細はメーカのペー …

screenshotshare_20140706_185023
温度管理システム的なものを作ってみる(その3)Androidでの温度取得

「温度管理システム的なものを作ってみる」の3回目です。前回はArduinoで温度 …

IMG_0846
AndroidでUSBシリアル通信(その2)ライブラリサンプルのArduinoスケッチ

AndroidでUSBシリアル通信の2回目です。前回はハードウェア構成、ソフトウ …

eyeAru
温度センサADT7410(その2)Arduinoでの利用

温度センサADT7410の2回目です。前回はI2C通信の簡単な概要とADT741 …