Датчик цвета
Датчик цвета (RGB-датчик) совмещает три функции:
- Позволяет роботу различать цвета.
- Позволяет роботу различать уровень освещённости путём измерения яркости отражённого света.
- Цветовая подсветка.
Работа в режиме определения цвета
Пример 3.2. Ожидание события от датчика цвета.
Ранее в теме "Программирование моторов: команда Move" мы отметили, что параметр Unlimited (ограничения нет) в настройках блокаMove позволяет роботу двигаться без каких-либо ограничений до наступления очередного события. После этого можно изменить состояние робота. Изменение состояния не происходит автоматически: его надо запрограммировать! В нашем примере после наступления события (регистрация датчиком синего цвета) запрограммирована остановка моторов B и C.
- поле Until надо читать по-русски [антил], а переводить следующим образом: "до тех пор пока не станет...";
- в поле Until возможен один из двух вариантов:
- Inside Range (Внутри диапазона) - ожидается событие "попадание регистрируемого цвета внутрь указанного диапазона цветов";
- Outside Range (Вне диапазона) - ожидается событие "попадание регистрируемого цвета во вне указанного диапазона цветов";
цвет в поле Until задаётся при помощи двух слайдеров.
- Добавьте в конструкцию робота "Пятиминутка" датчик цвета, расположенный впереди и направленный вниз, на высоте примерно 1 - 1,5 см от поверхности пола (стола).
- Добавьте на поле программы блок Wait Color Sensor и протестируйте его на предметах различных цветов:
- Подключите блок NXT к компьютеру через USB-соединение.
- Выделите блок Wait и нажмите на кнопку Download and run selected контроллера NXT.
- Не отсоединяя USB-шнур, подносите предметы различной окраски к датчику на расстояние примерно 1 см.
- Следите за результатом в поле обратной связи панели настроек датчика (левый нижний угол панели настроек).
- Проведите те же тесты при помощи меню View NXT. Совпадают ли результаты тестов?
Задание 3.2. Напишите программу для движения робота по тестовой полосе до обнаружения красного (синего, зелёного и др.) цвета. После того, как заданный цвет обнаружен, робот должен произнести этот цвет.
Работа в режиме измерения освещённости
Датчик цвета из нашего набора может работать в двух режимах: собственно датчик цвета, и датчик света, измеряющий освещённость. Переключите в настройках блока Wait Color Sensor датчик цвета в режим датчика освещённости. Для этого в поле Action выберитеLight Sensor. Обратите внимание, что внешний вид блока Wait изменился.

Чтобы лучше представить себе, что "видит" датчик освещённости, вообразите, что он перемещается над чёрно-белой фотографией. Результатом измерения будет яркость в диапазоне от 0 (чёрный цвет) до 100 (белый цвет), хотя крайних значений на практике зафиксировать не удаётся.
- уровень освещённости в поле Until задаётся при помощи слайдера или вводом числового значения;
- знак в ожидаемом событии переключается щелчком по яркому или тёмному "солнышку" (по умолчанию стоит знак ">");
- поле Until читается: "до тех пор пока освещённость не станет...". Так, на рисунке ожидается событие "уровень освещённости > 50", что означает выполнение действия, предшествующего блоку Wait до тех пор, пока освещённость не станет > 50;
- поле Function позволяет использовать датчик цвета в качестве лампы красного, зелёного или синего света (включённый флажокLight). Измеряя интенсивность отражённого от поверхности света можно оценить её яркость: от светлой поверхности отразится больше света, чем от тёмной. Вообще говоря, если замеры освещённости происходят при хорошем дневном свете, то подсветку можно выключить (снять флажок Light). Однако производитель рекомендует в режиме измерения освещённости использовать красную подсветку. Также при выключенном свете можно измерять общую освещённость в окружающем пространстве.
- Выпишите значения освещённости, которые датчик показывает для чёрного, синего, голубого, жёлтого, зелёного, красного и чёрного цветов на тестовом поле.
- Используйте в качестве подсветки лампы разных цветов. Как изменяются показания датчика?
- Выключите подсветку и сравните показания датчика с подсветкой и без неё.
- Поэкспериментируйте с окружающими предметами.