Android蓝牙连接问题

时间:2011-11-06 22:39:54

标签: android python bluetooth arduino sl4a

我正在尝试在我的Andorid手机上运行一个简单的python脚本(使用SL4A)连接到BlueSMiRF蓝牙调制解调器(基于RN41设备),但无论我尝试什么,我都会一直收到以下错误我尝试连接。

  

java.io.IOException:无法启动服务发现

python脚本如下所示

import android

droid = android.Android()
droid.toggleBluetoothState(True)

result = droid.bluetoothConnect()
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb')
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb', '00:06:66:07:AE:44')

print repr(result)

droid.toggleBluetoothState(False)

我已经尝试了bluetoothConnect()的所有三种变体,如上面的代码所示。如果我尝试前两种连接方法,我也可以在要连接的设备列表中看到blueSMiRF

我的arduino草图(在Arduino Mega上运行)如下所示。它只是将字符从一个端口转发到另一个端口。 Serial已连接到我的笔记本电脑9600,Serial1已连接到BlueSMiRF 115200。

void setup ()
{
  // initialise serial
  Serial.begin(9600);  
  Serial1.begin(115200);  
}

void loop ()
{

  if (Serial1.available())
  {
    char c = Serial1.read(); 
    Serial.print(c); 
  }

  if (Serial.available())
  {
    char c = Serial.read();        
    Serial1.print(c); 
  }
} 

我可以通过键入blueSMiRF来使用Putty访问$$$的命令模式。一切似乎都没问题。我对服务类和设备类的设置只有轻微的担忧。它们分别设置为0x00000x1f00的出厂默认值,我想知道服务类是否需要设置为0x1101(SSP的UUID)。

其他信息: Android版本2.3.3 SL4A r4

2 个答案:

答案 0 :(得分:0)

当蓝调用板与arduino板通话时,切换RXS-TX。

如果您能够通过PC连接到blueSMiRF,它将RX-TX设置为arduino-board。

PC到blueSMiRF设置:
PC TX - > Arduino RX - > blueSMiRF RX
PC RX< -Arduino TX< - blueSMiRF TX

Arduino到blueSMiRF设置:
Arduino RX - > blueSMiRF TX
Arduino TX< - blueSMiRF RX

答案 1 :(得分:0)

PyBluez模块一般运行良好,我已经将它与SL4A一起使用,没有任何问题。你可能有更好的运气,只需使用它并完全跳过Java。

PyBluez不是纯Python模块,因此必须进行编译,但这已经完成,并且可以从Py4A网站的downloads部分获得最新版本。这是我个人使用的副本,没有任何问题。

只需将副本下载到您的机器人,打开Python4Android应用程序,点击导入模块,然后选择PyBluez蛋。