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

发布于 2022-09-01 18:08:48 字数 268 浏览 16 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

好听的两个字的网名 2022-09-08 18:08:48

在一篇博文中找到了解决办法。
原文链接: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舵机。

放低过去 2022-09-08 18:08:48

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

驱逐舰岛风号 2022-09-08 18:08:48

这个树莓和arduino的串口波特率不一样,能行吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文