====== @amperka/ultrasonic ====== Модуль для работы с [[amp>product/hc-sr04-ultrasonic-sensor-distance-module|ультразвуковыми дальномерами 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'); func:: connect(pins) Создаёт новый объект ''Ultrasonic'' для дальномера, подключённому к пинам, которые задаются объектом-параметром ''pins''. В ''pins'' должны быть 2 поля: * ''trigPin'' обозначает пин платформы, к которому подключен пин //trig// дальномера; * ''echoPin'' — пин //echo// дальномера. class:: Ultrasonic Класс для работы с дальномером. Чтобы создать новый экземпляр, используйте функцию ''connect''. meth:: 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"'' — сенсор не подтверждает начало измерения, он подключен неправильно или неисправен.