@amperka/ultrasonic

Модуль для работы с ультразвуковыми дальномерами HC-SR04.

Звуковой пучок нужно сгенерировать и дождаться возвращения отражённого сигнала. При этом сигнал может не вернуться, если препятствие находится дальше 5 метров. Эхо текущего измерения важно не перепутать с эхом предыдущего. А полученное значение времени нужно пересчитать в расстояние. Все эти детали библиотека скрывает в себе.

var sonic = require('@amperka/ultrasonic')
  .connect({trigPin: P12, echoPin: P11});
 
sonic.ping(function(err, value) {
  if (err) {
    console.log('An error occurred:', err);
  } else {
    console.log('The distance is:', value, 'millimeters');
  }
}, 'mm');

connect(pins)

Создаёт новый объект Ultrasonic для дальномера, подключённому к пинам, которые задаются объектом-параметром pins.

В pins должны быть 2 поля:

  • trigPin обозначает пин платформы, к которому подключен пин trig дальномера;
  • echoPin — пин echo дальномера.

Ultrasonic

Класс для работы с дальномером. Чтобы создать новый экземпляр, используйте функцию connect.

Ultrasonic.ping(callback[, units])

Запускает процесс измерения расстояния. При возвращении ультразвукового эха или при возникновении ошибки вызывает функцию callback(err, value):

  • err — объект Error, если произошла ошибка измерения; undefined, если измерение успешно;
  • value — значение расстояния в единицах, определяемыми параметром units.

В качестве единиц измерения можно использовать:

  • "m", "cm", "mm" — метры, сантиметры, миллиметры соответственно;
  • "s", "ms", "us" — секунды, миллисекунды, микросекунды соответственно.

Если параметр units опущен, используются секунды ("s").

Для пересчёта времени в расстояние используется скорость звука при стандартных атмосферных параметрах: температуре 25 °C и нормальном давление на уровне моря.

В качестве сообщения ошибки err.msg может быть одно из значений:

  • "timeout" — эхо не вернулось: расстояние больше 4 метров или препятствие поглощает звук;
  • "busy" — совершена попытка нового измерения, пока старое ещё не завершено;
  • "wrong connection" — сенсор не подтверждает начало измерения, он подключен неправильно или неисправен.