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

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


@amperka/octoliner

Библиотека для работы с Восьмиканальный датчик линии (Zelo-модуль) даёт возможность считать аналоговый сигнал с каждого из восьми датчиков индивидуально или считать всю группу разом, а так же управлять подсветкой и чувствительностью.

I2C1.setup({sda: SDA, scl: SCL, bitrate: 100000});
// подключаем модуль работы с восьмиканальным датчиком линии 
var octoliner = require("@amperka/octoliner").connect({i2c:I2C1, address:42});
// устанавливаем чувствительность датчиков линии
octoliner.setSensitivity(0.8);
// устанавливаем уровень подсветки
octoliner.setBrightness(1);
 
for(var i = 0; i < 8; ++i){
  // в цикле считываем все 8 датчиков и выводим из значения
  console.log(octoliner.analogRead(i));
}
 
console.log(octoliner.getBinaryLine());
 
console.log(octoliner.mapLine(octoliner.getBinaryLine()));

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

connect(opts)

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

  • i2c — I2C, к которому подключён модуль, по умолчанию I2C1
  • address — адрес модуля, по умолчанию 42.

Octoliner

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

Octoliner.analogRead(num)

Считывает аналоговое напряжение на датчике линии num. Диапазон возвращаемых значений: 0.0–1.0.

Octoliner.digitalRead(num)

Считывает цифровой сигнал на датчике линии num. Диапазон возвращаемых значений: 0,1.

Octoliner.getBinaryLine()

Считывает аналоговое напряжение на пине pin. Диапазон возвращаемых значений: 0.0–1.0.

Octoliner.mapLine()

Считывает аналоговое напряжение на пине pin. Диапазон возвращаемых значений: 0.0–1.0.

Octoliner.changeAddr(addr)

Меняет адрес модуля на addr. Адрес хранится до первого сброса питания. Чтобы сохранить новый адрес в постоянной памяти, используйте функцию saveAddr. Это бывает полезно, если вы хотите использовать более одного восьмиканального датчика линии.

Octoliner.saveAddr()

Сохраняет в памяти модуля новый адрес I2C.

Octoliner.setSensitivity()

Установка чувствительности фотоприёмника, аналог резистора на датчике линии.

Octoliner.setBrightness()

Устанавливает яркость подсветки ИК-диодами.

Octoliner.reset()

Сбрасывает настройки восьмиканального датчика линии.

Пример работы с двумя модулями одновременно

Поменяйте адрес на одном модуле.

I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
var octoliner = require('@amperka/octoliner').connect({i2c: I2C1, address: 42});
 
octoliner.changeAddr(43);
octoliner.saveAddr();

Подключите второй модуль.

I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000});
 
var octoliners = require('@amperka/gpio-expander');
var octolinerA = expanders.connect({i2c: I2C1, address: 42}); // адрес модуля octolinerA — 42
var octolinerB = expanders.connect({i2c: I2C1, address: 43}); // адрес модуля octolinerB — 43
 
// устанавливаем чувствительность датчиков линии
octolinerA.setSensitivity(0.8);
octolinerB.setSensitivity(0.8);
// устанавливаем уровень подсветки
octolinerA.setBrightness(1);
octolinerB.setBrightness(1);
 
for(var i = 0; i < 8; ++i){
  // в цикле считываем все 8 датчиков и выводим из значения
  console.log(octolinerA.analogRead(i));
  console.log(octolinerB.analogRead(i));
}
 
console.log(octolinerA.getBinaryLine());
console.log(octolinerB.getBinaryLine());
 
console.log(octolinerA.mapLine(octolinerA.getBinaryLine()));
console.log(octolinerB.mapLine(octolinerB.getBinaryLine()));