====== @amperka/proximity ======
Библиотека для работы с [[amp>/product/troyka-proximity|датчиком приближения и освещённости]].
Позволяет измерять расстояние до предметов в диапазоне от 0 до 200 миллиметров и освещённость в диапазоне от 0 до 20000 люкс. Датчик подключается по протоколу I2C и использует пин прерывания ''IRQ''.
// настраиваем I2C1 для работы модуля
I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
// подключаем модуль к I2C1 и пину прерывания
var prox = require('@amperka/proximity').connect({
i2c: I2C1,
irqPin: P4
});
// каждые 10 миллисекунд измеряем расстояние
function getRange() {
prox.range(function(error, value) {
if (error) {
print(error.msg);
} else {
print('distance:', value, 'mm');
}
setTimeout(getAmbient, 10);
});
}
// каждые 10 миллисекунд измеряем освещенность
function getAmbient() {
prox.ambient(function(error, value) {
if (error) {
print(error.msg);
} else {
print('illuminance:', value, 'lux');
}
setTimeout(getRange, 10);
});
}
getRange();
===== Функции модуля =====
func:: connect(pins)
Создаёт новый объект VL6180X. Объект ''pins'' должен содержать поля:
* ''i2c'' — I2C, к которому подключен модуль, например ''I2C1''
* ''irqPin'' — пин прерывания.
class:: VL6180X
Класс для работы с датчиком VL6180X. Для создания экземпляра используйте функцию ''connect''.
func:: VL6180X.range(callback)
Функция измерения расстояния. Результат передаётся в функцию ''callback''. ''callback'' принимает 2 аргумента: ''error'' и ''value''. Объект ''error'' равен ''false'', если измеренное расстояние лежит в пределах от 0 до 200 миллиметров. В противном случае ''error.msg'' будет содержать информацию об ошибке. Параметр ''value'' хранит расстояние в миллиметрах.
prox.range(function(error, value) {
if (error) {
print(error.msg);
} else {
print('distance:', value, 'mm');
}
});
func:: VL6180X.ambient(callback)
Функция измерения освещённости. Результат передаётся в функцию ''callback''. ''callback'' принимает 2 аргумента: ''error'' и ''value''. Объект ''error'' равен ''false'', если измеренное расстояние лежит в пределах от 0 до 20000 люкс. В противном случае ''error.msg'' будет содержать информацию об ошибке. Параметр ''value'' хранит расстояние в люксах.
prox.ambient(function(error, value) {
if (error) {
print(error.msg);
} else {
print('illuminance:', value, 'lux');
}
});