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