@amperka/magnetometer

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

// Настраиваем I2C1
I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
 
// Инициализируем магнитометр
var mag = require('LIS3MDL').connect(I2C1);
 
// С интервалом 0.1 секунду...
setInterval(function(){
  // ... выводим значения
  print(' * ', mag.get());
  print(' * ', mag.get('G'));
}, 100);
/*
 * Пример вывода:
 *  { "x": -0.32505115463, "y": -0.34960537854, "z": -0.18327974276 }
 *  { "x": -2224, "y": -2392, "z": -1254 }
 *  { "x": -0.32505115463, "y": -0.34960537854, "z": -0.18327974276 }
 *  { "x": -2235, "y": -2400, "z": -1271 }
 *  { "x": -0.32665887167, "y": -0.35077462730, "z": -0.18576439637 }
 *  { "x": -2235, "y": -2400, "z": -1271 }
 *  { "x": -0.32665887167, "y": -0.35077462730, "z": -0.18576439637 }
 *  { "x": -2201, "y": -2449, "z": -1217 }
 *  { "x": -0.32168956445, "y": -0.35793627594, "z": -0.17787196726 }
 *  { "x": -2201, "y": -2449, "z": -1217 }
 *  { "x": -0.32168956445, "y": -0.35793627594, "z": -0.17787196726 }
 *  { "x": -2220, "y": -2437, "z": -1232 }
 *  { "x": -0.32446653025, "y": -0.35618240280, "z": -0.18006430868 }
 *  { "x": -2220, "y": -2437, "z": -1232 }
 *  { "x": -0.32446653025, "y": -0.35618240280, "z": -0.18006430868 }
 *  { "x": -2207, "y": -2452, "z": -1250 }
 *  { "x": -0.32256650102, "y": -0.35837474422, "z": -0.18269511838 }
 *  { "x": -2207, "y": -2452, "z": -1250 }
 */

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

connect(i2c, [address]]);

Возвращает новый объект LIS3MDL для взаимодействия с барометром. По умолчанию используется адрес на шине 0x1C, но вы можете указать другой, в параметре address.

LIS3MDL

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

LIS3MDL.init([opts])

Инициализация магнитометра и вывод его из спящего режима. Параметр opts — объект со свойствами:

  • frequency — частота обновления данных. Можно указать одно из следующих значений: 10, 20, 40, 80 (по умолчанию);
  • sensitivity — чувствительность в гауссах. Можно указать одно из следующих значений: 1 (по умолчанию), 8, 12, 16.

LIS3MDL.get([units])

Возвращает данные о магнитном поле по трем осям. Если параметр units не передан — данные возвращаются в виде объекта со свойствами x, y, z, каждое из которых имеет значение от −32768 до 32767, если передано значение G — напряженность магнитного поля возвращается в Гауссах.

LIS3MDL.whoAmI()

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

LIS3MDL.write(register, data)

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

LIS3MDL.read(register, length)

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