Инструменты пользователя

Инструменты сайта


@amperka/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();

Функции модуля

connect(pins)

Создаёт новый объект VL6180X. Объект pins должен содержать поля:

  • i2c — I2C, к которому подключен модуль, например I2C1
  • irqPin — пин прерывания.

VL6180X

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

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');
  }
});

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');
  }
});