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

システム開発エンジニアの西田五郎が運営しております。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, 通信制御

執筆者:

関連記事

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

「温度管理システム的なものを作ってみる」の1回目です。AndroidでUSBシリアル通信の記事を書きました。(1回目はこちらから。)次は、その少し応用的な内容で書きたいと思いました。そこで、温度センサ …

AndroidでUSBシリアル通信(その4)ライブラリサンプルの内容

AndroidでUSBシリアル通信の4回目です。今回は、前回動作確認をしたライブラリサンプルの内容、つまり設定ファイルやプログラムの構成、プログラムの仕様等を見ます。 ライブライは以下です。より詳細は …

Arduino Ethernetシールド(旧製品)を使ってみた

Arduino Ethernetシールド(旧製品)を使ってみました。Arduinoと接続した状態が以下です。おそらく2~3年前ぐらいに買ったものだと思います。どうも自宅以外で有線LANが気軽に使える場 …

無線マイコン ToCoStickのシリアル通信専用アプリを使ってみた

無線マイコンの ToCoStick(トコスティック)のシリアル通信専用アプリを使ってみました。ToCoStickとはパソコン等のUSBに接続して無線通信が出来るモジュールです。メーカの製品ページは以下 …

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

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