====== @amperka/octoliner ======
Библиотека для работы с [[amp>product/zelo-folow-line-sensor|Восьмиканальный датчик линии (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()));
===== Функции модуля =====
func:: connect(opts)
Создаёт новый объект Expander. Объект ''opts'' может содержать поля:
* ''i2c'' — I2C, к которому подключён модуль, по умолчанию ''I2C1''
* ''address'' — адрес модуля, по умолчанию 42.
class:: Octoliner
Класс для работы с расширителем. Для создания экземпляра используйте функцию ''connect''.
func:: Octoliner.analogRead(num)
Считывает аналоговое напряжение на датчике линии ''num''. Диапазон возвращаемых значений: 0.0–1.0.
func:: Octoliner.digitalRead(num)
Считывает цифровой сигнал на датчике линии ''num''. Диапазон возвращаемых значений: 0,1.
func:: Octoliner.getBinaryLine()
Считывает аналоговое напряжение на пине ''pin''. Диапазон возвращаемых значений: 0.0–1.0.
func:: Octoliner.mapLine()
Считывает аналоговое напряжение на пине ''pin''. Диапазон возвращаемых значений: 0.0–1.0.
func:: Octoliner.changeAddr(addr)
Меняет адрес модуля на ''addr''. Адрес хранится до первого сброса питания. Чтобы сохранить новый адрес в постоянной памяти, используйте функцию ''saveAddr''. Это бывает полезно, если вы хотите использовать более одного восьмиканального датчика линии.
func:: Octoliner.saveAddr()
Сохраняет в памяти модуля новый адрес I2C.
func:: Octoliner.setSensitivity()
Установка чувствительности фотоприёмника, аналог резистора на датчике линии.
func:: Octoliner.setBrightness()
Устанавливает яркость подсветки ИК-диодами.
func:: 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()));