@amperka/accelerometer

Библиотека для управления датчиком ускорения на модулях акселерометра и IMU-сенсора использующих микросхему LIS331 на I²C шине.

// Настраиваем шину I2C
I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
 
// Подключаем модуль
var accel = require('@amperka/accelerometer').connect(I2C1);
 
// Инициализируем модуль
accel.init();
 
setInterval(function(){
  // Отображаем силы, действующие на акселерометр
  print(accel.read('G'));
}, 500);

Функции и объекты модуля

connect([opts]);

Возвращает новый объект LIS331 для взаимодействия с акселерометром. В качестве параметра opts, можно передать объект со следующими свойствами:

  • i2c — объект I²C. По умолчанию используется PrimaryI2C (I2C1);
  • address — адрес устройства на шине I2C. По умолчанию используется 0x1C.

Следует не забыть, что модуль изначально находится в спящем режиме.

// Настраиваем I2C2
I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
 
// Создаем новый экземпляр, который работает с I2C2 и имеет адрес 0x1D
var accel = require('@amperka/LIS331').connect({
  i2c: I2C1,
  address: 0x1D
});

LIS331

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

LIS331.init([opts])

Выводит модуль из режима пониженного энергопотребления и осуществляет его настройки. В качестве параметра opts передается объект со следующими свойствами:

  • frequency — частота измерений в герцах: 50 (по умолчанию), 100, 400 или 1000;
  • maxAccel — максимальное измеряемое ускорение в G: 2 (по умолчанию), 4 или 8;
  • highPassFilter — количество выборок высокочастотного фильтра: 0 (по умолчанию), 8, 16, 32, 64;
accel.init({
  frequency: 50,
  maxAccel: 2,
  highPassFilter: 0
});

LIS331.read([units])

Возвращает ускорение. Если параметр units не задан — во внутренних единицах акселерометра. Или можно указать следующие единицу измерения: G, a.

accel.read();         // возвратит ускорения во внутренних единицах
accel.read('G');      // возвратит ускорения в единицах G
accel.read('a');      // возвратит ускорения в метрах в секундах в квадрате

LIS331.whoAmI()

Возвращает идентификатор устройства

LIS331.writeI2C(register, data)

Записывает данные, начиная с регистра register. Данные передаются в параметре data в виде байта или массива байт.

LIS331.readI2C(register, length)

Читает данные, начиная с регистра register. Считывается количество байт, указанное в параметре length. Если параметр не указан — считывается один байт.