问一下大家有没有感觉blinker的延迟,怎么能即时响应?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3691|回复: 8

[已解答] 问一下大家有没有感觉blinker的延迟,怎么能即时响应?

[复制链接]
发表于 2019-5-28 07:23 | 显示全部楼层 |阅读模式
使用blinker是必须要用回调函数吗,感觉延迟好高,响应的有1-2S的空白
发表于 2019-5-28 08:51 | 显示全部楼层
通常一秒以内
可能是你网络问题,或者程序没写好另外,设备和手机在同一个局域网时,会切换成局域网通信,通信速度会更快
 楼主| 发表于 2019-5-28 12:05 | 显示全部楼层
奈何col 发表于 2019-5-28 08:51
通常一秒以内
可能是你网络问题,或者程序没写好另外,设备和手机在同一个局域网时,会切换成局域网通信, ...

后来我直接连手机热点,响应速度也没变化,程序上我也尽可能的精简了,这是我的程序,麻烦您看一下是什么原因。

#define BLINKER_WIFI
#include <Blinker.h>
//#include <Servo.h>

int INA = D4; //电机A正反转控制端
int PWMA = D5; //电机A调速端
int INB = D7; //电机B正反转控制端
int PWMB = D6; //电机B调速端

char auth[] = "375e594d10f6";
char ssid[] = "bukaiyuan";
char pswd[] = "15910602089";

/*Servo myservo;

BlinkerSlider Slider1("duoji");

void slider1_callback(int32_t value)
{

   myservo.write(value);
   // BLINKER_LOG("get slider value: ", value);
}
*/

BlinkerButton Buttonqian("btn-qian");
void buttonqian_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="press")
    {
        digitalWrite(INA,LOW);
       digitalWrite(INB,HIGH);
      analogWrite(PWMA,80);
      analogWrite(PWMB,80);
    }
    else if(state=="pressup"){
      digitalWrite(PWMA,LOW);
       digitalWrite(PWMB,LOW);
    }
}

BlinkerButton Buttonhou("btn-hou");
void buttonhou_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="press")
    {
        digitalWrite(INA,HIGH);
       digitalWrite(INB,LOW);
       analogWrite(PWMA,80);
       analogWrite(PWMB,80);
    }
    else if(state=="pressup"){
       digitalWrite(PWMA,LOW);
       digitalWrite(PWMB,LOW);
    }
}

BlinkerButton Buttonzuo("btn-zuo");
void buttonzuo_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="press")
    {
        digitalWrite(INA,HIGH);
       digitalWrite(INB,HIGH);
       analogWrite(PWMA,80);
      analogWrite(PWMB,80);
    }
    else if(state=="pressup"){
       digitalWrite(PWMA,LOW);
       digitalWrite(PWMB,LOW);
    }
}

BlinkerButton Buttonyou("btn-you");
void buttonyou_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="press")
    {
        digitalWrite(INA,LOW);
       digitalWrite(INB,LOW);
       analogWrite(PWMA,80);
       analogWrite(PWMB,80);
    }
    else if(state=="pressup"){
       digitalWrite(PWMA,LOW);
       digitalWrite(PWMB,LOW);
    }
}
void setup()
{
    analogWriteRange(255);
    //myservo.attach(D5);  
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

     pinMode(INA,OUTPUT);
     pinMode(INB,OUTPUT);
     pinMode(PWMA,OUTPUT);
     pinMode(PWMB,OUTPUT);
   
    Blinker.begin(auth, ssid, pswd);
    Buttonqian.attach(buttonqian_callback);
    Buttonhou.attach(buttonhou_callback);
    Buttonzuo.attach(buttonzuo_callback);
    Buttonyou.attach(buttonyou_callback);
}

void loop()
{
    Blinker.run();
}
 楼主| 发表于 2019-5-28 12:07 | 显示全部楼层
奈何col 发表于 2019-5-28 08:51
通常一秒以内
可能是你网络问题,或者程序没写好另外,设备和手机在同一个局域网时,会切换成局域网通信, ...

BLINKER能不能像响应摇杆控制那样,shif让电机即时响应并动作。
发表于 2019-5-28 13:26 | 显示全部楼层
从你以上描述看,你这不是延迟问题,而是车的惯性。。。
你停止的时候让轮子反转100ms就行了。。。
 楼主| 发表于 2019-5-28 13:47 | 显示全部楼层
奈何col 发表于 2019-5-28 13:26
从你以上描述看,你这不是延迟问题,而是车的惯性。。。
你停止的时候让轮子反转100ms就行了。。。 ...

不是惯性,从按APP上的按键到小车有动作,这之间有大概一秒的延迟,这是正常现象吗
 楼主| 发表于 2019-5-28 14:10 | 显示全部楼层
奈何col 发表于 2019-5-28 13:26
从你以上描述看,你这不是延迟问题,而是车的惯性。。。
你停止的时候让轮子反转100ms就行了。。。 ...

还有一个类似的问题想请教一下,现在滑块是滑动后发送最后手指离开时候的数据,可不可以把变化的过程也即时发送,就像摇杆控制舵机一样,随着滑块而变化角度?
PS:BLINKER这个软件真不错,良心之作
发表于 2019-5-28 16:50 | 显示全部楼层
bukaiyuan 发表于 2019-5-28 13:47
不是惯性,从按APP上的按键到小车有动作,这之间有大概一秒的延迟,这是正常现象吗 ...

一秒内是正常的,两三秒可能是你网络问题。

你要通过串口调试来判断延迟多少,不要通过眼睛感觉,我从你的描述看,你只是眼睛感觉动作有延迟,那也可能是你硬件上的问题。比如小车并没有马上停下来,你要确定的是,8266是否即时接收到数据,而不是说小车有没停下来;
如果是接收到数据了,并且动作执行了,没有停下来,就是惯性,或者你电机驱动的原因了

 楼主| 发表于 2019-5-28 18:56 | 显示全部楼层
coloz 发表于 2019-5-28 16:50
一秒内是正常的,两三秒可能是你网络问题。

你要通过串口调试来判断延迟多少,不要通过眼睛感觉,我从你 ...

确实是一秒内,多的时候到一秒,用BLINKER之前是用摇杆连得线直接控制的,直接模拟读数比较快,可能刚用BLINKER和之前的一比较,主观上觉得动作很肉。
谢谢大佬的解答。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:15 , Processed in 0.076742 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表