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

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

Android 通信制御

無線マイコン 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(トワイライト)ではじめるカンタン電子工作」特別講座

AdSense

AdSense

-Android, 通信制御

執筆者:

関連記事

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

無線マイコンの ToCoStick(トコスティック)をRaspberry Piで使ってみました。前回の記事でブレッドボードが親機でToCoStickが子機という設定でとりあえずということで通信が出来る …

Arduino CC3000 WiFi シールドでHTTP POST

Arduino CC3000 WiFi シールドでHTTP POST通信を試してみます。以下はArduino UNOに接続した状態です。 Arduino CC3000 WiFi シールドの概要、導入に …

温度管理システム的なものを作ってみる(その2)Arduinoでの温度取得からスマホへ送信

「温度管理システム的なものを作ってみる」の2回目です。前回は全体的な内容についてでした。今回はArduinoでの温度取得とスマホへの送信についてです。Arduinoは、Arduino UNOを使ってい …

AndroidでUSBシリアル通信(2021/01/09版)ライブラリ最新版での動作確認

以下から始まる一連の記事でAndroidでのUSBシリアル通信について書きました。実際に開発案件につながったり、お問い合わせを頂いたりしているテーマです。 AndroidでUSBシリアル通信(その1) …

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

温度センサADT7410の2回目です。前回はI2C通信の簡単な概要とADT7410モジュールをRaspbery Piに接続してアドレスの確認まで行いました。今回はArduinoでADT7410を使って …