巫山冰 发表于 2013-12-25 19:39:16

精简Bluno官方demo,蓝牙控制

本帖最后由 巫山冰 于 2014-1-29 01:25 编辑

官网的Bluno入门demo是基于Bluno + Arduino Accessory Shield扩展板。没有购买Bluno Accessory Sheild扩展板,是否仍然能够只在Bluno上搭建蓝牙测试呢?看看下面的图片:



如上图,我用了一只蜂鸣器来做测试,你也可以换成二极管。把蜂鸣器的正极连接到数字8,把负极连接到任意一个GND即可。下面是大刀阔斧一翻之后的Arduino代码:
#include "PlainProtocol.h"
#define BuzzerPin 8
PlainProtocol BLUNOPlainProtocol(Serial,115200);
void setup() {
Serial.begin(115200);
pinMode(BuzzerPin, OUTPUT);
}
void loop()
{
//valid frame received
if (BLUNOPlainProtocol.available()) {
    if (BLUNOPlainProtocol.receivedCommand=="BUZZER") {
      digitalWrite(BuzzerPin, BLUNOPlainProtocol.receivedContent);
    }
}
}

简单吧,蓝牙通讯方面,全部交给 PlainProtocl 库去处理,我们只需要看看它返回从手机端发过来的数据就好。


而手机端可以完全不用修改任何代码(直接下载官方的“玩转布鲁诺”也可以),我们只需要测试那个蜂鸣器的功能就好。


最新版本,不需要使用到PlainProtocl库的,代码如下:
#define BuzzerPin 8
void setup() {
   Serial.begin(115200);
   pinMode(BuzzerPin, OUTPUT);
}
void loop()
{
   //valid frame received
   if (Serial.available() > 0) {
    String incomingString = Serial.readString();
    if (incomingString=="<BUZZER>1;") {
       digitalWrite(BuzzerPin, HIGH);
   }
   else if(incomingString=="<BUZZER>0;") {
       digitalWrite(BuzzerPin, LOW);
   }
}
}




mickey 发表于 2013-12-26 12:12:10

点赞!

John 发表于 2013-12-26 23:09:52

楼主的头像很风骚啊!!顶一个,沙发

秦皇岛岛主 发表于 2013-12-27 08:48:38

好精简,顶起来

赛外奇雪 发表于 2013-12-27 21:42:05

:victory:巧妙!

John 发表于 2013-12-31 22:34:56

兄弟,表示我的刚用,Misco usb就掉了

赛外奇雪 发表于 2014-1-1 00:50:56

好牛掰!

lauren 发表于 2014-1-22 20:06:37

这个帖子略霸气!够精简

Ricky 发表于 2014-1-23 10:34:33

John 发表于 2013-12-31 22:34
兄弟,表示我的刚用,Misco usb就掉了

有申请换吗?

fswk 发表于 2014-1-28 18:29:36

為什麼這句總是編譯不到:

PlainProtocol BLUNOPlainProtocol(Serial,115200);

巫山冰 发表于 2014-1-29 01:21:29

本帖最后由 巫山冰 于 2014-1-29 01:23 编辑

fswk 发表于 2014-1-28 18:29
為什麼這句總是編譯不到:

PlainProtocol BLUNOPlainProtocol(Serial,115200);
你下载 PlainProtocol 库了没有?要下载这个库才可以的,其实你不用PlainProtocol库也是可以进行蓝牙通讯的,这个程序,还可以象下面这么简单:
#define BuzzerPin 8
void setup() {
   Serial.begin(115200);
   pinMode(BuzzerPin, OUTPUT);
}
void loop()
{
   //valid frame received
   if (Serial.available() > 0) {
    String incomingString = Serial.readString();
    if (incomingString=="<BUZZER>1;") {
       digitalWrite(BuzzerPin, HIGH);
   }
   else if(incomingString=="<BUZZER>0;") {
       digitalWrite(BuzzerPin, LOW);
   }
}
}

fswk 发表于 2014-1-29 11:38:54

搞妥了。謝謝幫忙!

taelons 发表于 2014-2-6 21:22:26

bluno官方资料说要蓝牙4.0且安卓4.3的手机,手里没有这么高档的手机。
这段代码能和普通蓝牙、安卓4.0的手机通讯吗?

巫山冰 发表于 2014-2-7 00:10:18

taelons 发表于 2014-2-6 21:22
bluno官方资料说要蓝牙4.0且安卓4.3的手机,手里没有这么高档的手机。
这段代码能和普通蓝牙、安卓4.0的手 ...

这个,我不确定哦。理论上,这段代码没有直接和蓝牙打交道。是刷在这块板上的固件程序在管理蓝牙。

wujingping 发表于 2014-2-22 17:33:25

本帖最后由 wujingping 于 2014-2-22 17:34 编辑

貌似不用 PlainProtocol 库的那个版本接收手机指令有延迟,还很大啊。从bluno发到手机倒是反应非常快。

zrf223 发表于 2014-3-26 21:32:01

是不是在玩手机上面把蜂鸣器的那一个键打开,蜂鸣器就会响呢。

Angelo 发表于 2014-3-26 23:06:06

哈哈~~这个有意思~~

顺便做个宣传~~这个库有更新过哦,用起来更简单,等有时间了翻译成中文~~

http://www.dfrobot.com/community/dfrobot-wireless-communication-protocol-ver-1-1.html

巫山冰 发表于 2014-3-27 02:52:14

zrf223 发表于 2014-3-26 21:32
是不是在玩手机上面把蜂鸣器的那一个键打开,蜂鸣器就会响呢。

:) 嗯,还会一直响,直到你在手机上拨回关闭状态。

zrf223 发表于 2014-3-27 10:39:16

巫山冰 发表于 2014-3-27 02:52
嗯,还会一直响,直到你在手机上拨回关闭状态。

我直接把你写的这个代码复制到arduino什么都没有改直接下到bluno中,用手机连接上去。没有响,经测试蜂鸣器没有问题,是不是驱动的功率不够,还是怎么样的呢?

巫山冰 发表于 2014-3-28 09:17:05

zrf223 发表于 2014-3-27 10:39
我直接把你写的这个代码复制到arduino什么都没有改直接下到bluno中,用手机连接上去。没有响,经测试蜂鸣 ...

手机连接上去,不发送蜂鸣指使,当然不会响。
另外,自己在adruino代码中,让蜂鸣器发声看看响不响,不响的话,看看数字线接对没有。
这个实验应该还是相当容易测试的。

叶干干 发表于 2014-4-24 16:39:12

楼主~用您前面那个用到PlainProtocl库的代码测试成功,但是后面那个就不行,Link的等显示是连着的,就是不响。
页: [1] 2
查看完整版本: 精简Bluno官方demo,蓝牙控制