無線マイコンの ToCoStick(トコスティック)をAndroidスマホで使ってみました。前回と同様の構成ですが、Raspberry PiではなくAndroidスマホを使ってみました。
Androidでは以下の当サイトの記事から始まる内容の通りにUSBホストケーブルを経由して接続しています。またUSBシリアルドライバも同じドライバを使っています。スマホも同じシャープ製SHL23です。
AndroidでUSBシリアル通信(その1)ハードウェア・ソフトウェア構成等
利用させて頂いているドライバとそのテストアプリは以下です。
USB Serial ドライバ、通信ライブラリ
まず、上記のドライバとテストアプリのビルドについてです。上記の記事で書いた際は開発環境はEclipseで特に問題はなくビルドが出来て動作確認出来たのですが、今回はAndroid Studioで手間取りました。その内容について書きます。
ドライバとそのテストアプリのプロジェクト一式もAndroid Studio形式になっているのでAndroid Studioからインポート出来ます。そこでビルドを実行すると以下のようなエラーになりました。
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を設定して下さい。 } } }
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を設定して下さい。 } } }
ファイルを変更したら、Android Studioのメニューの、Toos → Android → Sync Project with Gradle Filesを実行して下さい。もし意味不明と思われるビルドエラーが出た際も再度これを実行してみて下さい。
これで私の環境ではビルドが正常に終了しました。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ホストケーブルから接続すると以下のように認識しました。アプリ起動の際は必ずデバイスへの許可を経由して起動します。
上記デバイスリストからデバイス(ToCoStick)を選択して、ブレッドボード側に電源を供給するとデータが見えました。またタクトスイッチにも反応しました。
ビルドには手間取ったとはいえドライバが公開されているのはありがたいことだと思います。Linux、Android等のオープン系の資産には感謝したいと思います。
今回は通信が出来たというレベルです。実際に実用性はどうなのか等も含めて応用的な使い方はこれからなのでまた書きたいと思います。
メーカのサイト
超簡単!無線マイコンTWE-Lite DIP(トワイライト・ディップ)
ToCoStick(トコスティック)
関連書籍
導入時はまずはこの書籍を見ながら操作しました。
あと、以下はRaspberry Pi2の発売前に出た本ですが、今回のTWE-Lite DIPをRaspberry Piで使う記事やその他Raspberry Piのいろいろな活用方法が書かれています。
最後に電子工作がテーマのマンガのハルロックです。