通过蓝牙LE连接和控制Adafruit Flora与计算机

时间:2019-06-13 14:47:17

标签: c# visual-studio arduino bluetooth-lowenergy adafruit

我必须在Unity 3D VR场景中创建触觉反馈。因此,我想用Adafruit Flora,一些Lilypad Vibe板,Flora Bluefruit LE模块和可无线充电的LiPo制作一些可穿戴的手镯或腕带,以便在手臂,腿等周围佩戴。到目前为止,控制它(也就是打开或关闭Vibe板)可以与Adafruit Bluefruit App一起使用。下一步是使用Visual Studio c#控制台应用程序控制Flora。这是我的问题,我无法使其正常工作。 (我是整个蓝牙编程领域的新手,而且对Visual Studio和c#也不熟悉)

我找到了Windows的May-Update的Windows示例,上周手动安装了该示例,并且能够运行示例。不幸的是,当我稍后要在Unity VR中使用触觉反馈时,Bluetooth LE Sample的功能无法很好地解决我的问题,因为我无法使用用户界面将Flora与PC连接/配对。尽管如此,我还是尝试了样本并能够找到Flora,但无法配对。没关系,因为据我所知,不可能将超过1个可穿戴设备与PC配对,或者至少非常慢地配对,断开和修理不同的频段。所以我想我只需要连接1个手镯,发送一条命令,然后就可以轻松地连接到另一个乐队。 因此,我尝试使用部分代码来编写我的控制台应用程序,但并没有成功。我读到您某种程度上必须拥有一个UI才能连接到Bluetooth LE设备。所以也许这种方式对我不起作用。 我寻找实现目标的另一种方法,并发现了RFCOMM的可能性。它似乎可以做到,我需要做些什么,但我无法使其正常工作。我在https://en.baydachnyy.com/2017/05/19/uwp-working-with-bluetooth-part-5-bluetooth-rfcomm/上找到了一些代码部分 这个例子与我的任务非常相似,我想实现它。

Arduino:

void setup() {
   Serial.begin(115200);
   pinMode(9,OUTPUT);
}
byte vibe;
void loop() {
   if(Serial.available()) {
      vibe=Serial.read();
      Serial.write(vibe);
      if (vibe==3) {
         digitalWrite(9,HIGH);
      }
      else if(vibe==2) {
         digitalWrite(9,LOW);
      }
      Serial.write(vibe);
   }
}

我在网上找到的RFCOMM片段:https://en.baydachnyy.com/2017/05/19/uwp-working-with-bluetooth-part-5-bluetooth-rfcomm/

因为我只找到了这段代码的片段,所以它显然没有运行。但是似乎有些错误消息无论如何都不应该存在。就像“找不到命名空间RoutedEventArgs”。

1 个答案:

答案 0 :(得分:0)

这似乎是一个不错的项目。
在Windows中使用BLE无需UI或用户交互即可完成您所需的所有事情。
设置配对以读取和写入命令不需要配对。如果知道设备名称或蓝牙地址,则可以连接。

看看我在Github上的UWP示例;该示例是最基本的示例,并且主页完全为空: https://github.com/GrooverFromHolland/SimpleBleExample_by_Devicename