mbed と アンドロイドを繋げてみたい
.
作成中、参考にしないで下さい。
アンドロイド端末と通信したいと思います。
まず、シリアル通信でアンドロイドと通信する方法をやってみたいと思います。
Cookbook » Interfacing Using RPC で紹介されています。
RPC Over Serial
ソースコードはホームページからインポートしてビルドして書き込む。
アンドロイド端末とmbedに付いているusbポートを繋げる。
たまたま所有していたエレコムのU2HS-MB02-4Sを使って繋げる。
アンドロイドで使うアプリは、[Android USB Serial Monitor Lite] を使う。
アプリを起動させてmbedを接続すると、接続するか聞いてくる。
OK を選択する。
メニューから、Open Device を選択する。
コマンドを打ち込んでmbedにコマンドを送る
/DigitalOut/new LED1 myled /myled/write 1
mbed の LED1 が点灯する。
USBSerial をやってみる
Handbook » USBSerial
これはmbed 付属のUSBポートは使えないようです。
p32,p32 を使うようです。
簡単な回路図
パソコンとの接続確認
パソコンと繋げても不明なディバイスをなるので、
mbedのサイトから、serial.zip をダウンロードして解凍します。
私の環境は、署名の無いドライバはインストール出来ないので、
署名の無いドライバをインストール出来るようにします。
アンドロイドと接続して受信してみたい。
USBケーブルとUSBホストケーブルの違いがあるようです。
アンドロイドをホストとして、mbedをディバイスとする。
USBHID をやってみる
Handbook » USBHID で紹介されているソースコードをインポートする。
アンドロイドとmbedの接続は上と同じ。
アンドロイド側のプログラム
アンドロイドのUSB Host ドキュメント
アンドロイドがHIDディバイスをサポートしたAPIレベル12以上でプロジェクトを作成する。
HIDディバイスが接続された時にアプリを起動するかダイアログで確認する。
インテントフィルタを使用する場合
マニフェストの変更をする。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hidtest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.hidtest.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> </activity> </application> </manifest>
タグが見にくいけど、ここではどうしようもない。
resフォルダの中にxmlフォルダを作成して、device_filter.xml ファイルを作成する。
device_filter.xml ファイル
<?xml version="1.0" encoding="utf-8"?> <resources> <usb-device class="3" subclass="0" protocol="0" /> </resources>
アンドロイド端末に書き込み
これで接続確認は出来るので確かめてみる。
アンドロイド端末とmbedを接続するとアプリを起動するか聞いてくる。
今回のアプリ名:HIDtest//
Please log in to post comments.