помогите разобраться с hc-sr 04

Тема в разделе "Arduino & Shields", создана пользователем roman88, 21 июл 2014.

  1. roman88

    roman88 Нерд

    Здравствуйте!
    Я делаю робота на платформе dfrobot с ультразвуковым дальномером.
    Задача дальномера создать возможность распознать человека от стены.

    Пожалуйста подскажите как написать код.

    Заранее благодарен!
     
  2. ANV

    ANV Гуру

    Чтобы написать код, нужен алгоритм. Он есть?
     
  3. roman88

    roman88 Нерд

    Отправляем 2 сигнала с неким интервалом. Сравниваем значения. Если больше погрешности (вибрации), то человек, если меньше стена.

    Понятно что этот модуль он не очень точный, но других вариантов нет.
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Картинку можете нарисовать? В каком направлении сигналы хотите посылать? Чем человек принципиально отличается от стены?
     
  5. roman88

    roman88 Нерд

    Думаю человека можно определить только с помощью колебаний.
    Если у стены колебаний практически нет т.е. датчик выдает постоянное число, то движения человека создают малые, но колебания и путем вычита среднего между 2-3 колебаниями в пол секунды можно распознать движущийся объект.
    Помогите оформить скетч.
     
  6. roman88

    roman88 Нерд

    Вот скетч, но имеются временые срывы.
    Подскажите как их сгладить.




    #include <NewPing.h>


    #define TRIGGER_PIN 12

    #define ECHO_PIN 13

    #define MAX_DISTANCE 100


    NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);


    int vibr = 5;

    void setup(){

    Serial.begin(9600);

    }

    void loop(){

    int curDist = sonar.ping_cm();

    Serial.print ("curDist");

    Serial.println(curDist);

    delay(3000);

    int curDist1 = sonar.ping_cm();

    Serial.print ("curDist1");

    Serial.print(" ");

    Serial.println(curDist1);


    if (((curDist1 - curDist) > vibr) || ((curDist - curDist1) > vibr)){


    Serial.println("MEN");

    }

    else {

    Serial.println("WALL");

    }

    }
     
  7. roman88

    roman88 Нерд

    Помогите правильно раставить задержки