Состояния и события. Сенсоры
Датчик ультразвука (Ultrasonic Sensor)
Ультразвуковой сенсор заменяет роботу зрение. Он работает по тому же принципу, что и локатор летучей мыши: измеряет расстояние путём расчёта времени, которое потребовалось звуковой волне для возвращения после отражения от объекта. Как следует из его настроек, датчик способен измерять расстояние от 0 до 255 см с точностью +/- 3 см. Однако на практике минимальное расстояние, на котором ультразвуковой датчик выдаёт осмысленные показания составляет около 5 - 7 см. Кроме того, следует иметь в виду, что по сравнению с датчиками цвета, света, касания и др., это медленный датчик. Во-первых, это объясняется малой скоростью звука по сравнению со скоростью света, а во-вторых, медленным протоколом обмена данными, используемым для этого датчика2Более подробно прочитать о скорости измерения ультразвукового датчика можно в статье по адресу http://nnxt.blogspot.ru/2010/10/nxt-g-ultrasonic.html.
Добавьте в конструкцию робота датчик ультразвука, направленный вперёд по ходу движения. Настройки датчика показаны на Рис. 3.6.
Обратите внимание:
- в поле Until также как и для Color Sensor задаётся условие выхода из блока;
- знак с "<" на ">" или наоборот в ожидаемом событии переключается щелчком по радиокнопке Farther Than (Больше, чем) изображение горы или Nearer Than (Меньше, чем) изображение цветка (установлено по умолчанию). Также можно воспользоваться списком;
- поле Show задаёт единицы измерения расстояния. По умолчанию расстояние измеряется в дюймах (inches). Не забудьте переключить этот параметр в сантиметры;
Задание 3.6. Протестируйте датчик ультразвука, поднося к нему предметы на различном расстоянии и наблюдая результаты:
- при помощи меню View;
- в поле обратной связи блока Wait.
Задание 3.7. Напишите программу, по которой робот движется в направлении препятствия (стены) и останавливается на расстоянии 30 см от него.
Датчик касания (Touch Sensor)
Добавьте в конструкцию робота Five Minute Bot датчик касания - кнопку. Его можно не закреплять, а подключить длинным кабелем и использовать как пульт дистанционного управления.
В настройках блока Wait Touch в качестве Action доступны варианты:
- Pressed - датчик нажат;
- Released - датчик отпущен;
- Bumped - выполнен щелчок (то есть кнопка нажата и сразу отпущена).
Задание 3.8. Напишите игру "Кто точнее", смысл которой состоит в том, чтобы остановить робот точно на заданной линии. После запуска программы робот должен начать движение по направлению к чёрной линии. Как только колёса робота коснутся линии, игрок должен нажать кнопку; при этом робот должен остановиться. Выигрывает тот, у кого расстояние от передних колёс до линии меньше. Настройки блока Move: неограниченное движение, мощность 80 %. Подберите наилучший вариант для решения задачи.
Задание 3.9. Проведите соревнования по правилам игры "Кто точнее".