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

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

Android 通信制御

AndroidでUSBシリアル通信(その3)ライブラリサンプルの通信確認

投稿日:2014年4月30日 更新日:

AndroidでUSBシリアル通信の3回目です。前回は以下のライブラリのArduinoのスケッチの動作を確認しました。

usb-serial-for-android

(※2021年1月10日追記 現時点での最新版のライブラリについては以下で書きました。
AndroidでUSBシリアル通信(2021/01/09版)ライブラリ最新版での動作確認
2021年1月10日追記ここまで)

今回は、Android側の動作確認をしてみます。
IMG_0856

説明は後にしてまず動作させてみます。

(※2015/05/12追記 以下でAndroid Studioでのビルドについて書きました。
無線マイコン ToCoStick(トコスティック)をAndroidで使ってみた 追記ここまで)

今現在ライブラリ全体は上記ページの右下部分のDownload Zipのリンクからダウンロード可能です。以下の赤枠です。
0001

このzipファイルを展開すると現時点で以下のファイル構成になります。
0004

この中の、UsbSerialLibraryフォルダがドライバ、通信ライブラリ関連で、UsbSerialExamplesがサンプルプログラムです。この UsbSerialExamplesの動作確認をします。ここでは、Eclipse (Android Developer Tools)を使います。他の開発環境の場合はその環境に合わせて試して下さい。

まず、Eclipseから上記のUsbSerialLibraryフォルダとUsbSerialExamplesをWorkspaceにインポートします。メニューのファイル、インポートを選択します。(※以下からの画像はメニューが英語のままです。日本語メニューの場合は適宜読み換えて下さい。)

0007
Androidを選択して次へ進みます。

ここでUsbSerialLibraryフォルダをインポートします。
0010

同様にして、もう一度メニューからインポートを選択して、UsbSerialExamplesをインポートします。(※途中の画像は省略です。)
0011

以下のようにインポート出来るかと思います。

0012

以下、動作確認方法です。

ビルド
ソースを変更していないそのままの状態であればビルドが可能だと思います。

実機へインストール
Android実機をデバッグ可能な状態にして開始するか他の方法で実機にサンプルアプリをインストールします。
(※AndroidはUSBホスト機能を使うのでAndroid3.1以上が必須です。)
shl23

Arduinoと接続
ArduinoのケーブルでUSBホストケーブルを経由してArduinoとAndroidを接続します。
IMG_0852

アプリの起動
ケーブル接続後に、Android画面上にアプリ起動確認の画面が表示されます。ここから起動します。
detectDevice

ドライバの選択
ドライバ一覧の画面にArduinoのドライバ(CDC-ACMドライバ)が表示されると思います。CDC-ACMドライバは仮想モデムまたは仮想COMポートとして見せます。ここでは仮想COMポートに見えます。
arduinodriver

通信の確認
ドライバリストから選択すると、前回、Arduino IDEで確認したArduinoからの送信データが表示されるかと思います。
console

別のドライバでの通信確認
今度はRS232CシールドをArduinoに接続して、USBシリアル変換ケーブルを使ってみます。以下のように接続します。この場合は、Arduinoには電源は供給されませんので、USBからか別の電源で電源を供給します。このRS232Cシールドですが、配線を見るとArduinoのUARTのRX、TXに接続されています。
serialshield

IMG_0856

Arduino単体と同様にUSBホストケーブル経由でAndroidに接続します。以下のドライバが認識されます。
driverlist

ここでは、Prolificのドライバを認識しています。以下の内蔵チップがProlific製のようです。
serialcable

ドライバを選択すると通信が確認出来ます。
prolificprocess

これで動作確認完了です。

留意点です。実際の開発の際に何種類かのケーブルを試しましたが、認識はするものの通信が正常に行えないケーブルもありました。このあたりは実際の開発ではテストを行って正常なテスト結果が出たケーブルを採用するとか、このドライバを使わずに別の方法を検討するかといった判断が必要になると思います。

次回はこのサンプルアプリの内容を見てみます。

AdSense

AdSense

-Android, 通信制御

執筆者:

関連記事

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

「温度管理システム的なものを作ってみる」の3回目です。前回はArduinoで温度データを取得する内容についてでした。今回はそのArduinoから温度データを取得するスマホ(Android)のアプリにつ …

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

AndroidでUSBシリアル通信の2回目です。前回はハードウェア構成、ソフトウェア構成等全体的な内容について書きました。今回はAndroidの通信相手となるArduinoのスケッチの動作確認を行って …

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

温度管理システム的なものを作ってみるの5回目です。前回はCloud(Microsoft Azure)での処理について書きました。そのCloudの処理の温度データ登録処理に送信するためのAndroidの …

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

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

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

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