Поведение робота - это череда сменяющих друг друга состояний (состояние движения, состояние поиска и т. п.). Смена состояний происходит в зависимости от внешних событий. Робот регистрирует события при помощи различных датчиков. Всё поведение робота можно схематично изобразить в виде диаграммы переходов между состояниями.
Пример 3.1. Диаграмма переходов "Состояние 1 → Событие → Состояние 2" соответствующая движению робота до чёрной линии (Рис. 3.1):
(рис 3.1) Диаграмма переходов: движение робота до чёрной линииТаким образом, можно сказать, что робот должен всё время ждать возникновения событий. Для этого в среде NXT-G имеется специальный блок Wait (Ждать):
(рис 3.2) Варианты блока Wait в общей палитре
Источниками событий могут являться:
Далее в этой теме мы рассмотрим работу с некоторыми наиболее часто используемыми датчиками.

Датчик цвета (RGB-датчик) совмещает три функции:
Пример 3.2. Ожидание события от датчика цвета.
Робот движется по тестовому полю вперёд до тех пор, пока не зарегистрирует синий цвет.
(рис 3.3) Пример программы "Движение до синего"
Ранее в теме 2 мы отметили, что параметр Unlimited (ограничения нет) в настройках блока Move позволяет роботу двигаться без каких-либо ограничений до наступления очередного события. После этого можно изменить состояние робота. Изменение состояния не происходит автоматически: его надо запрограммировать! В нашем примере после наступления события (регистрация датчиком синего цвета) запрограммирована остановка моторов B и C.
Обратите внимание:
Until надо читать по-русски [антил], а переводить следующим образом: "до тех пор пока не станет...";
Until возможен один из двух вариантов:Inside Range (Внутри диапазона) - ожидается событие "попадание регистрируемого цвета внутрь указанного диапазона цветов";
Outside Range (Вне диапазона) - ожидается событие "попадание регистрируемого цвета во вне указанного диапазона цветов";Until задаётся при помощи двух слайдеров.Задание 3.1. Протестируйте датчик цвета:
Wait Color Sensor и протестируйте его на предметах различных цветов:Wait и нажмите на кнопку Download and run selected контроллера NXT (Рис. 3.4).
View NXT. Совпадают ли результаты тестов?
(рис 3.4) Компиляция и выполнение выделенного фрагмента
Задание 3.2. Напишите программу для движения робота по
Задание 3.3. Напишите программу для движения робота по тестовой полосе до обнаружения синего или зелёного цвета. Проверьте работу программы, запуская робот с разных сторон тестовой полосы.
Датчик цвета из нашего набора может работать в двух режимах: собственно датчик цвета, и датчик света, измеряющий освещённость. Переключите в настройках блока Wait Color Sensor датчик цвета в режим датчика освещённости. Для этого в поле Action выберите Light Sensor (Рис. 3.5). Обратите внимание, что внешний вид блока Wait изменился.
(рис 3.5) Настройки блока Wait Color Sensor в режиме измерения освещённости
Чтобы лучше представить себе, что "видит" датчик освещённости, вообразите, что он перемещается над чёрно-белой фотографией. Результатом измерения будет яркость в диапазоне от 0 (чёрный цвет) до 100 (белый цвет), хотя крайних значений на практике зафиксировать не удаётся.
Обратите внимание:
Until задаётся при помощи слайдера или вводом числового значения;
Until читается: "до тех пор пока освещённость не станет...". Так, на Рис. 3.5 ожидается событие "уровень освещённости > 50", что означает выполнение действия, предшествующего блоку Wait до тех пор, пока освещённость не станет > 50;
Function позволяет использовать датчик цвета в качестве лампы красного, зелёного или синего света (включённый флажок Light). Измеряя интенсивность отражённого от поверхности света можно оценить её яркость: от светлой поверхности отразится больше света, чем от тёмной. Вообще говоря, если замеры освещённости происходят при хорошем дневном свете, то подсветку можно выключить (снять флажок Light). Однако производитель рекомендует в режиме измерения освещённости использовать красную подсветку. Также при выключенном свете можно измерять общую освещённость в окружающем пространстве.Задание 3.4. Протестируйте работу датчика цвета в режиме измерения освещённости на предметах различных цветов так же, как делали в предыдущем задании:
Задание 3.5. Используя RGB-датчик в режиме измерения освещённости, напишите программу для движения робота по белому полю до обнаружения чёрного цвета. Для этого в поле Until укажите необходимый порог чёрного цвета. После остановки робот должен вывести на экран соответствующую информацию (например, "Black color found!").

Ультразвуковой сенсор заменяет роботу зрение. Он работает по тому же принципу, что и локатор летучей мыши: измеряет расстояние путём расчёта времени, которое потребовалось звуковой волне для возвращения после отражения от объекта. Как следует из его настроек, датчик способен измерять расстояние от 0 до 255 см с точностью +/- 3 см. Однако на практике минимальное расстояние, на котором ультразвуковой датчик выдаёт осмысленные показания составляет около 5 - 7 см. Кроме того, следует иметь в виду, что по сравнению с датчиками цвета, света, касания и др., это медленный датчик. Во-первых, это объясняется малой скоростью звука по сравнению со скоростью света, а во-вторых, медленным протоколом обмена данными, используемым для этого
(рис 3.6) Настройки блока Wait Ultrasonic Sensor
Добавьте в конструкцию робота датчик ультразвука, направленный вперёд по ходу движения. Настройки датчика показаны на Рис. 3.6.
Обратите внимание:
Until также как и для Color Sensor задаётся условие выхода из блока;
Farther Than (Больше, чем) изображение горы или Nearer Than (Меньше, чем) изображение цветка (установлено по умолчанию). Также можно воспользоваться списком;
Show задаёт единицы измерения расстояния. По умолчанию расстояние измеряется в дюймах (inches). Не забудьте переключить этот параметр в сантиметры;Задание 3.6. Протестируйте датчик ультразвука, поднося к нему предметы на различном расстоянии и наблюдая результаты:
View;
Wait.Задание 3.7. Напишите программу, по которой робот движется в направлении препятствия (стены) и останавливается на расстоянии 30 см от него.

Добавьте в конструкцию робота Five Minute Bot датчик касания - кнопку. Его можно не закреплять, а подключить длинным кабелем и использовать как пульт дистанционного управления.
В настройках блока Wait Touch в качестве Action доступны варианты:
Pressed - датчик нажат;
Released - датчик отпущен;
Bumped - выполнен щелчок (то есть кнопка нажата и сразу отпущена).Задание 3.8. Напишите игру "Кто точнее", смысл которой состоит в том, чтобы остановить робот точно на заданной линии. После запуска программы робот должен начать движение по направлению к чёрной линии. Как только колёса робота коснутся линии, игрок должен нажать кнопку; при этом робот должен остановиться. Выигрывает тот, у кого расстояние от передних колёс до линии меньше. Настройки блока Move: неограниченное движение, мощность 80 %. Подберите наилучший вариант для решения задачи.
Задание 3.9. Проведите соревнования по правилам игры "Кто точнее".
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.