raspberry如何通过蓝牙与arduino通信?

之前我写过raspberry与Arduino进行USB串口通信的程序,但是这种情况下,arduino必须要用USB线连上树莓派,很不方便。
所以我打算用蓝牙方式实现raspberry和arduino连接。Raspberry上加了一个USB蓝牙适配器后,扫描周围蓝牙设备,手工连上arduino。
但是在连上之后,用命令 “ls /dev/” 并没有发现新设备连入,这种情况下该如何写串口程序呢?

9月14日添加:如何让树莓派启动就连上arduino,并一直在设备处有 “rfcomm0” 呢?

阅读 8.7k
3 个回答

在一篇博文中找到了解决办法。
原文链接:http://pi19404.github.io/pyVision/2015/04/03/22/
出现 “/dev/rfcomm0”后,就可以写串口程序进行通信。
python代码:

#coding=utf-8
# send to arduino
import serial
port = "/dev/rfcomm0"
serial = serial.Serial(port,9600)
sendStr = "1"
serial.write(sendStr)
serial.flushInput()

Arduino:

String val;
int E1 = 5;     //M1 Speed Control
int E2 = 6;     //M2 Speed Control
int M1 = 4;    //M1 Direction Control
int M2 = 7;    //M1 Direction Control

void setup() {
  Serial1.begin(115200);
  pinMode(M1, OUTPUT);
  pinMode(M2, OUTPUT);
}

void loop() {

  while (Serial1.available() > 0)
  {
    val += char(Serial1.read());
    delay(2);
  }

  if (val.length() > 0)
  {
    if (val.equals("1") == true)
    {
      //Forward
      digitalWrite(M1, HIGH);
      digitalWrite(M2, HIGH);
      analogWrite(E1, 150);
      analogWrite(E2, 150);
    }
    val = "";
  }
}

最后,实现的就是python程序控制arduino舵机。

你配对成功了吗?
如果没有的话,先正确连接,然后才会有/dev/rfcomm0之类

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进