查看: 13343|回复: 16

android 蓝牙 调用 arduino

[复制链接]

该用户从未签到

发表于 2014-2-11 16:56 | 显示全部楼层 |阅读模式
一个简单的android 蓝牙 调用 arduino 程序,通过手机同步控制RGBled
硬件连接简单
图1
中间为arduino(mini pro) ,周边为3.7V电池,蓝牙模块接rxtx,三个270欧姆电阻连接 356三个PWM管脚及RGBled.
支持蓝牙的手机
软件
arduino 部分的 源码  
android 部分采用 app inventor 编程 很方便,执行码 *.apk 手机上安装即可 ,需要源码的私信我即可
通讯协议直接传递 RBG 的三个 16进制数即可
运行截图
图2 .手机端图
要求是绿色(示例)
图3 .arduino 端图
看桌面的光是绿了

yingjian1.jpg
Screenshot_2014-02-10-11-22-23.png

亮了

亮了

mybta.part1.rar

683.59 KB, 下载次数: 318

mybta.part2.rar

593.29 KB, 下载次数: 334

RGBLEDbt.rar

728 Bytes, 下载次数: 265

arduino

该用户从未签到

发表于 2014-2-12 14:49 | 显示全部楼层

回帖奖励 +1 金币

回个帖顶起

该用户从未签到

 楼主| 发表于 2014-3-1 15:39 | 显示全部楼层
附上 appinventor 源码

mybta (1).rar

4.7 KB, 下载次数: 195

  • TA的每日心情

    2015-9-3 15:42
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2015-2-25 18:10 | 显示全部楼层
    您好,麻烦问您下,蓝牙传输的arduino类库有没有?我现在搞不懂究竟怎么能让HC06将数据通过蓝牙传输出去,代码该怎么写。您看看这个代码使用蓝牙传输的么?
    unsigned char Re_buf[11],counter=0;
    unsigned char sign=0;
    float a[3],w[3],angle[3],T;
    void setup() {
      // initialize serial:
      Serial.begin(9600);
    }

    void loop() {
      if(sign)
      {  
         sign=0;
         if(Re_buf[0]==0x55)      //检查帧头
         {  
            switch(Re_buf [1])
            {
            case 0x51:
                    a[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*16;
                    a[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*16;
                    a[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*16;
                    T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                    break;
            case 0x52:
                    w[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*2000;
                    w[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*2000;
                    w[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*2000;
                    T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                    break;
            case 0x53:
                    angle[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*180;
                    angle[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*180;
                    angle[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*180;
                    T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                    Serial.print("a:");
                    Serial.print(a[0]);Serial.print(" ");
                    Serial.print(a[1]);Serial.print(" ");
                    Serial.print(a[2]);Serial.print(" ");
                    Serial.print("w:");
                    Serial.print(w[0]);Serial.print(" ");
                    Serial.print(w[1]);Serial.print(" ");
                    Serial.print(w[2]);Serial.print(" ");
                    Serial.print("angle:");
                    Serial.print(angle[0]);Serial.print(" ");
                    Serial.print(angle[1]);Serial.print(" ");
                    Serial.print(angle[2]);Serial.print(" ");
                    Serial.print("T:");
                    Serial.println(T);
                    break;
            }
        }
      }
    }

    void serialEvent() {
      while (Serial.available()) {
       
        //char inChar = (char)Serial.read(); Serial.print(inChar); //Output Original Data, use this code
      
        Re_buf[counter]=(unsigned char)Serial.read();
        if(counter==0&&Re_buf[0]!=0x55) return;      //第0号数据不是帧头              
        counter++;      
        if(counter==11)             //接收到11个数据
        {   
           counter=0;               //重新赋值,准备下一帧数据的接收
           sign=1;
        }
          
      }
    }

    该用户从未签到

     楼主| 发表于 2015-3-10 13:23 | 显示全部楼层
    lolikiller 发表于 2015-2-25 18:10
    您好,麻烦问您下,蓝牙传输的arduino类库有没有?我现在搞不懂究竟怎么能让HC06将数据通过蓝牙传输出去, ...

    没有专门的库,硬件是蓝牙,软件是串口
  • TA的每日心情
    慵懒
    2015-8-18 20:58
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2015-3-10 21:09 | 显示全部楼层
    好厉害,最想学的就是这个了
  • TA的每日心情
    慵懒
    2015-8-18 20:58
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2015-3-10 21:18 | 显示全部楼层
      MsTimer2::set(500, flash); // 500ms period
      MsTimer2::start();
    这个不懂,求教,
    还有这个地方:
      byte rin,gin,bin;
      //未做排错异常处理
      if (Serial.available() > 2) {//一次读三个数据
        // read the oldest byte in the serial buffer:
        rin = Serial.read();
        gin = Serial.read();
        bin = Serial.read();
  • TA的每日心情
    开心
    2015-8-14 13:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-11 00:03 | 显示全部楼层
    学习了,不错顶一个

    该用户从未签到

    发表于 2015-4-22 15:41 | 显示全部楼层
    好东西  啊  学习 学习啊
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    基于arduino的delta并联机械手
    基于arduino的delta并联机
    delta并联机械手现在广泛应用于工业,因为资金有限,用舵机做的,底座这些也是
    哪位大神知道怎么用这个16*16的led
    哪位大神知道怎么用这个16
    不知道这里的引脚A,B,C,D,DI,CLK,LAT有什么用啊
    【Arduino】108种传感器模块系列实验(42)---PM2.5韩国粉尘模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    求各位大佬帮帮新人
    求各位大佬帮帮新人
    void setup() { // put your setup code here, to run once: #include delay(50
    Arduino MEGA 与UNO 通过nRF24L模块通讯
    Arduino MEGA 与UNO 通过n
    之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表