android arduino bluetoothについて

1,275 views
Skip to first unread message

syo

unread,
Nov 28, 2010, 10:16:15 AM11/28/10
to Android-SDK-Japan
はじめまして。

現在androi arduino間をbluetoothを使用し、簡単な文字を送受信するというプログラムを作っています。

そこで、どうもconnectする部分でうまくいかず困っています。

android端末はdesireHDを使っており、android2.1で開発しているので

bluetoothAPIを使用しています。

android側の手順としましては、

ペアリングしているbluetooth接続可能なデバイスを発見し
そのデバイスに接続し、文字を送信するというプログラムなのですが

接続のところがうまくいきません。

コードとしましてはbluetoothchatを参考に、



private static final UUID MY_UUID = UUID.fromString("aaaaaaaa-aaaa-
aaaa-aaaa-aaaaaaaaaaaa");

Communication(BluetoothDevice device,UUID uuid) {
BluetoothSocket tmp = null;
try {
tmp = device.createRfcommSocketToServiceRecord(uuid);
Log.d("debug","uuid set");
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("debug","create failed");
e.printStackTrace();
}
bs = tmp;
}

public void run() {
try {
Log.d("debug","try connect");
bs.connect();
} catch (IOException e) {
Log.d("debug","connect failed");
e.printStackTrace();
       return;
}
while(true){
try {
bs.getOutputStream().write("R".getBytes());

try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
} catch (IOException e) {
// TODO Auto-generated catch block

Log.d("debug","outputStream.write failed");

e.printStackTrace();

}
}
}

}

といった感じで作っています。
かなり省略しているので、非常に分かりづらいと思います。すみません。

詳しく分かる方、教えていただけませんでしょうか。宜しくお願いします。

Kazuyuki Eguchi

unread,
Nov 28, 2010, 11:18:47 AM11/28/10
to android-...@googlegroups.com
たぶん、UUIDの指定が間違っているからであると思います。

接続する機器のプロファイルがSPPであれば、確か、チャットのサンプルのUUIDでいいかと思います。

ご参考までに

2010/11/29 syo <syod...@gmail.com>:

> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。
>
>

翔大中橋

unread,
Nov 28, 2010, 11:52:54 AM11/28/10
to android-...@googlegroups.com

お返事ありがとうございます。

uuidをチャットのuuidに設定したら出来るという事でしょうか??

今はパソコンの前にいないので出来ないですが、是非試してみます!!

ご回答ありがとうございます。

2010/11/29 1:38 "Kazuyuki Eguchi" <kazuyuk...@gmail.com>:

Kazuyuki Eguchi

unread,
Nov 28, 2010, 11:56:30 AM11/28/10
to android-...@googlegroups.com
private static final UUID MY_UUID = UUID.fromString("aaaaaaaa-aaaa-
aaaa-aaaa-aaaaaaaaaaaa");
上記の値をチャットのソースにも同様の部分ありますよね?
Bluetoothのプロファイル毎にUUIDの値が違うので目的のプロファイルのUUIDの値にしないと、相手の機器にそのプロファイルをサポートしていないから、接続ができないのです。

2010/11/29 翔大中橋 <syod...@gmail.com>:

翔大中橋

unread,
Nov 28, 2010, 10:46:43 PM11/28/10
to android-...@googlegroups.com

お返事ありがとうございます!

おはようございます。

チャットに使われているuuidを使用したのですが、arduino android 間でのconnectがうまく行かないみたいです。

同じようにchat の方もarduinoとのconnectはうまく行かないようです。

2010/11/29 1:57 "Kazuyuki Eguchi" <kazuyuk...@gmail.com>:

syo

unread,
Nov 30, 2010, 9:41:26 AM11/30/10
to Android-SDK-Japan
少し進展しましたので報告です。

uuidを00001101-0000-1000-8000-00805F9B34FBに変更したところ、うまくconnectする事が出来ました。

同様にchatの方もこちらのuuidに変更するとPCでもarduinoでもconnectする事が出来ました。

しかしいざarduinoに文字を送信すると何も反応がなくて困っています。
現在、arduinoの受信処理がおかしいのかchatや自作プログラムの送信方法が間違っているのかを探っている状態です。


そこで質問なのですが、android1.6のchatで文字を送信してarduinoを動かせていたのが2.1や2.2に変更して動かなくなるという
事はありえるのでしょうか。
もしありえるのであれば1.6と2.1ではuuid以外何が変更されたのでしょうか。

分かる方いらっしゃいましたら宜しくお願いします。
また進展しましたら報告いたします。

江口 和幸

unread,
Nov 30, 2010, 10:04:27 AM11/30/10
to android-...@googlegroups.com
1.6でのRFCOMMは標準APIでのやり方ではないので、正式に対応した2.xではUUIDが違
う可能性もあります。

確か、Xperiaの1.6で動いたものが、2.1にアップデートしたら動かなくなったという
記事がありました。

[android-group-japan: 7822] Xperiaバージョンアップ後のbluetooth 接続について

の抜粋ですが

device.createRfcommSocketToServiceRecord(UUID)
で、uuidに0x0011を指定していたのを0x1101に変更すると繋がりました。

とあります。

ご参考までに

> -----Original Message-----
> From: android-...@googlegroups.com
> [mailto:android-...@googlegroups.com] On Behalf Of syo
> Sent: Tuesday, November 30, 2010 11:41 PM
> To: Android-SDK-Japan
> Subject: [Android-SDK-Japan:1268] Re: android arduino bluetoothについて
>
> 少し進展しましたので報告です。
>
> uuidを00001101-0000-1000-8000-00805F9B34FBに変更したところ、うまく
> connectする事が出来ました。
>
> 同様にchatの方もこちらのuuidに変更するとPCでもarduinoでもconnectす
> る事が出来ました。
>
> しかしいざarduinoに文字を送信すると何も反応がなくて困っています。
> 現在、arduinoの受信処理がおかしいのかchatや自作プログラムの送信方法が
> 間違っているのかを探っている状態です。
>
>
> そこで質問なのですが、android1.6のchatで文字を送信してarduinoを動かせ
> ていたのが2.1や2.2に変更して動かなくなるという
> 事はありえるのでしょうか。
> もしありえるのであれば1.6と2.1ではuuid以外何が変更されたのでしょうか。
>
> 分かる方いらっしゃいましたら宜しくお願いします。
> また進展しましたら報告いたします。

翔大中橋

unread,
Dec 1, 2010, 2:57:31 AM12/1/10
to android-...@googlegroups.com

度々お返事ありがとうございます。

本日PC からarduino へbluetooth 通信を行ったところconnectはするのですが、それ以上の反応は何もしないという結果になりました。

何かの反動で配線の位置などが変わってしまったかもしれないので、arduinoの方を再確認する必要がありそうです。

実は現在学校でグループ制作というものをやっていまして、私の担当が主にandroid開発の方なのでお恥ずかしながら配線の位置など詳しくは分からなく修正待ち状況なのです。

androidの方は他の通信機器との通信が出来るかどうか、確かめるつもりです。

UUIDは変更してからは送信出来ているかどうか確かめれていない状況ですので、やってみますね!

ご親切にありがとうございます。
随時進展がありましたらご報告致します!

2010/12/01 0:04 "江口 和幸" <kazuyuk...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages