AndroidでUSBシリアル通信の3回目です。前回は以下のライブラリのArduinoのスケッチの動作を確認しました。
(※2021年1月10日追記 現時点での最新版のライブラリについては以下で書きました。
AndroidでUSBシリアル通信(2021/01/09版)ライブラリ最新版での動作確認
2021年1月10日追記ここまで)
説明は後にしてまず動作させてみます。
(※2015/05/12追記 以下でAndroid Studioでのビルドについて書きました。
無線マイコン ToCoStick(トコスティック)をAndroidで使ってみた 追記ここまで)
今現在ライブラリ全体は上記ページの右下部分のDownload Zipのリンクからダウンロード可能です。以下の赤枠です。
このzipファイルを展開すると現時点で以下のファイル構成になります。
この中の、UsbSerialLibraryフォルダがドライバ、通信ライブラリ関連で、UsbSerialExamplesがサンプルプログラムです。この UsbSerialExamplesの動作確認をします。ここでは、Eclipse (Android Developer Tools)を使います。他の開発環境の場合はその環境に合わせて試して下さい。
まず、Eclipseから上記のUsbSerialLibraryフォルダとUsbSerialExamplesをWorkspaceにインポートします。メニューのファイル、インポートを選択します。(※以下からの画像はメニューが英語のままです。日本語メニューの場合は適宜読み換えて下さい。)
ここでUsbSerialLibraryフォルダをインポートします。
同様にして、もう一度メニューからインポートを選択して、UsbSerialExamplesをインポートします。(※途中の画像は省略です。)
以下のようにインポート出来るかと思います。
以下、動作確認方法です。
ビルド
ソースを変更していないそのままの状態であればビルドが可能だと思います。
実機へインストール
Android実機をデバッグ可能な状態にして開始するか他の方法で実機にサンプルアプリをインストールします。
(※AndroidはUSBホスト機能を使うのでAndroid3.1以上が必須です。)
Arduinoと接続
ArduinoのケーブルでUSBホストケーブルを経由してArduinoとAndroidを接続します。
アプリの起動
ケーブル接続後に、Android画面上にアプリ起動確認の画面が表示されます。ここから起動します。
ドライバの選択
ドライバ一覧の画面にArduinoのドライバ(CDC-ACMドライバ)が表示されると思います。CDC-ACMドライバは仮想モデムまたは仮想COMポートとして見せます。ここでは仮想COMポートに見えます。
通信の確認
ドライバリストから選択すると、前回、Arduino IDEで確認したArduinoからの送信データが表示されるかと思います。
別のドライバでの通信確認
今度はRS232CシールドをArduinoに接続して、USBシリアル変換ケーブルを使ってみます。以下のように接続します。この場合は、Arduinoには電源は供給されませんので、USBからか別の電源で電源を供給します。このRS232Cシールドですが、配線を見るとArduinoのUARTのRX、TXに接続されています。
Arduino単体と同様にUSBホストケーブル経由でAndroidに接続します。以下のドライバが認識されます。
ここでは、Prolificのドライバを認識しています。以下の内蔵チップがProlific製のようです。
これで動作確認完了です。
留意点です。実際の開発の際に何種類かのケーブルを試しましたが、認識はするものの通信が正常に行えないケーブルもありました。このあたりは実際の開発ではテストを行って正常なテスト結果が出たケーブルを採用するとか、このドライバを使わずに別の方法を検討するかといった判断が必要になると思います。
次回はこのサンプルアプリの内容を見てみます。