查看: 3553|回复: 5

有没有用蓝牙模块的,发现有一定延时,不知道是否正常

  [复制链接]
  • TA的每日心情

    2013-12-4 00:00
  • 签到天数: 47 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-9-12 17:54:48 | 显示全部楼层 |阅读模式
    分享到:
    我是用蓝牙连接小车的时候发现这个问题的。 之前用蓝牙模块单独测试的时候还没感觉,手机通过蓝牙控制小车到时候感觉就明显了。 手机端是用 python 去操作的,python 发送一个字符,arduino 收到以后返回一个字符,python 收到字符以后统计时间,大概 1s 。 不大清楚是否单向通信一次需要 0.5s 。

    本来也有怀疑是 python 在手机环境跑的性能问题。 找了几个现成的可以直接走蓝牙和 arduino 通信的  android app , 包括 ArduinoBluetooth 和 Amarino 虽然没有时间统计,但是能发现是有延时,感觉上大概半秒到一秒左右。

    有没有也用蓝牙的朋友,可以用程序统计下通信时间?






    [pre lang="arduino" line="1"]
        //=== 控制电机相关
        // left whell
        int pinIN1=8;    // IN1
        int pinIN2=9;    // IN2
        int pinENA=11;   // ENA(PWM调速)接口
        int speedENA = 254; // 可以调速

        // right whell
        int pinIN3=6;    // IN3
        int pinIN4=7;    // IN4
        int pinENB=10;   // ENB(PWM调速)接口
        int speedENB = 254; // 可以调速


        void setup()
        {
          Serial.begin(9600);
          Serial.println("setup");

            // left wheel
            pinMode(pinIN1,OUTPUT);
            pinMode(pinIN2,OUTPUT);
            pinMode(pinENA,OUTPUT);

            // right wheel
            pinMode(pinIN3,OUTPUT);
            pinMode(pinIN4,OUTPUT);
            pinMode(pinENB,OUTPUT);
        }

        void loop()
        {
          if(Serial.available() )
          {
            char line[500] = "";
            Serial.readBytesUntil('\0', line, 500);
            Serial.print("arduino:");

            if(0 == strcmp("go", line) || 0 == strcmp("g", line) )
            {
              go();
            }
            else if(0 == strcmp("back", line) || 0 == strcmp("b", line))
            {
              back();
            }
            else if(0 == strcmp("left", line) || 0 == strcmp("l", line))
            {
              left();
            }
            else if(0 == strcmp("right", line) || 0 == strcmp("r", line))
            {
              right();
            }
            else if(0 == strcmp("stop", line) || 0 == strcmp("s", line))
            {
              stop();
            }

            else
            {
                Serial.println(line);
            }

          }
        }



        // 前进
        void go() {
            Serial.println("----go");
            // left wheel
    //        analogWrite(pinENA,speedENA);  // 速度设定
    //        digitalWrite(pinIN1,LOW);     // 下面俩个 使直流电机针转
    //        digitalWrite(pinIN2,HIGH);
    //
    //        // right wheel
    //        analogWrite(pinENB,speedENB);  // 速度设定
    //        digitalWrite(pinIN3,HIGH);      // 转动: 注意按照我之前的接线,这里要跟前面的轮子的设定相反,方向才相同
    //        digitalWrite(pinIN4,LOW);
        }



        // 后退
        void back() {
            Serial.println("----back");
            // left wheel
    //        analogWrite(pinENA,speedENA);  // 速度设定
    //        digitalWrite(pinIN1,HIGH);     // 下面俩个 使直流电机针转
    //        digitalWrite(pinIN2, LOW);
    //
    //        // right wheel
    //        analogWrite(pinENB,speedENB);  // 速度设定
    //        digitalWrite(pinIN3,LOW);      // 转动: 注意按照我之前的接线,这里要跟前面的轮子的设定相反,方向才相同
    //        digitalWrite(pinIN4,HIGH);

        }

       // 停止
        void stop() {
            Serial.println("----stop");
    //        digitalWrite(pinIN1,HIGH);     // 下面俩个 使直流电机针转
    //        digitalWrite(pinIN2, HIGH);
    //
    //        // right wheel
    //        digitalWrite(pinIN3,HIGH);      // 转动: 注意按照我之前的接线,这里要跟前面的轮子的设定相反,方向才相同
    //        digitalWrite(pinIN4,HIGH);
        }

        // 左转
        void left() {
            Serial.println("----left");
            // left wheel
    //        analogWrite(pinENA,speedENA);  // 速度设定
    //        digitalWrite(pinIN1,LOW);     // 下面俩个 使直流电机针转
    //        digitalWrite(pinIN2,HIGH);
    //
    //        // right wheel
    //        digitalWrite(pinIN3,HIGH);      // 转动: 注意按照我之前的接线,这里要跟前面的轮子的设定相反,方向才相同
    //        digitalWrite(pinIN4,HIGH);
        }

        // 右转
        void right() {
            Serial.println("----right");
            // left wheel
    //        digitalWrite(pinIN1,HIGH);     // 下面俩个 使直流电机针转
    //        digitalWrite(pinIN2,HIGH);
    //
    //        // right wheel
    //        analogWrite(pinENB,speedENB);  // 速度设定
    //        digitalWrite(pinIN3,HIGH);      // 转动: 注意按照我之前的接线,这里要跟前面的轮子的设定相反,方向才相同
    //        digitalWrite(pinIN4,LOW);
        }
    [/pre]





    [pre lang="python" line="1"]import android
    import sys
    import time
    droid=android.Android()
    droid.bluetoothConnect('00001101-0000-1000-8000-00805F9B34FB')

    # define the cmd list
    cmd_listk = ["g", "b", "l", "r", "s", "x"]
    cmd_listv = ["Go", "Back", "Left", "Right", "Stop", "Exit App"]

    count = 4
    while count > 0:
        for i in cmd_listk:
            time.sleep(1)
            start = time.time()
            droid.bluetoothWrite(i)
            print "  %s start %s" % (i, start)
            while True:
                strArduino = droid.bluetoothReadLine()
                if len(strArduino) > 0:
                    cost = time.time() - start
                    print("android: %s, cost %s" % (strArduino[1], cost))
                    break

        count = count - 1[/pre]

    回复

    使用道具 举报

  • TA的每日心情

    2013-12-4 00:00
  • 签到天数: 47 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2013-9-12 17:56:00 | 显示全部楼层
    补充下统计截图

    bt.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-27 13:57
  • 签到天数: 486 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-9-12 18:30:43 | 显示全部楼层
    没用过   
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-18 12:34
  • 签到天数: 1673 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    发表于 2013-9-12 22:00:34 | 显示全部楼层
    没用过
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-6-12 21:59
  • 签到天数: 647 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-10-20 21:29:51 | 显示全部楼层
    蓝牙通信延时不明显,是不是程序的问题?????
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-1-17 06:27:31 | 显示全部楼层
    楼主手机是爱疯么
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 04:51 , Processed in 0.168840 second(s), 28 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.