查看: 13690|回复: 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, 下载次数: 319

mybta.part2.rar

593.29 KB, 下载次数: 335

RGBLEDbt.rar

728 Bytes, 下载次数: 266

arduino

该用户从未签到

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

回帖奖励 +1 金币

回个帖顶起

该用户从未签到

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

mybta (1).rar

4.7 KB, 下载次数: 198

  • 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 | 显示全部楼层
    好东西  啊  学习 学习啊
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    Arduino 求助 串口接收数据不正确,数据丢失问题
    Arduino 求助 串口接收数
    问题整了好久,我自己写的C#程序发送数据,arduino接收数据。 但是发现arduino接收的
    小爱同学的控制电脑的远程blinker
    小爱同学的控制电脑的远程
    先说写贴原因,最近空了下来,看到一堆买来没有用的8266,心血来潮到论坛看看,看到不
    关于超声波测距的误差问题
    关于超声波测距的误差问题
    菜鸟请教一下各位大神, 最近做了一个超声波的测距实验,使用的是下面的模块 网上
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表