Введение
В данной статье мы рассмотрим датчики, которые входят в базовый комплект Lego Mindstorms NXT 2.0, а именно: два датчика касания, датчик цвета, ультразвуковой сенсор (сонар). Рассмотрим сервисы, которые обеспечивают доступ к данным датчикам (рис. 1), напишем простые приложения, которые демонстрируют получение информации с датчиков.
Рисунок 1 — Сервисы датчиков
Датчик касания
Для взаимодействия с данным датчиком в MRDS присутствуют сервисы LegoNXTTouchSensor и LegoNXTContactSensorArray.
Рассмотрим на простом примере первый сервис. Напишем программу, которая обрабатывает нажатия на датчик касания. При касании датчика блок NXT будет издавать короткий писк, а на мониторе ПК будет появляться сообщение, например, с таким текстом: «Вы меня потрогали!».
Добавьте и соедините блоки и сервисы как на рис. 2. При соединении сервисов LegoNXTBrick и SimpleDialog, поставьте галочку в пункте Edit values directly и введите значения, на свое усмотрение. В моей программе я установил в сервисе LegoNXTBrick значения частоты звука 2000, а длительность 250, а в сервисе SimpleDialog «Вы меня потрогали!».
Рисунок 2 — Готовая диаграмма
Датчик цвета
Для взаимодействия с данным датчиком в MRDS присутствует сервис LegoNXTColorSensor. Датчик может работать в двух режимах: режим, определения цвета, и в режиме, определения интенсивности цвета. В первом случае определяется один из шести цветов: 1- черный (или цвет, не входящий в диапазон), 2-голубой, 3-зеленый, 4-желтый, 5-красный, 6-белый. Каждый цвет определяется своим индексом. Во втором случае определяется интенсивность определяемого цвета в диапазоне от 0 до 1023.
Напишем программу которая определяет индекс цвета. Добавим необходимые блоки и сервисы (рис. 3). Сконфигурируем сервис таким образом, чтобы он работал в режиме определения цвета.
Выделим сервис и в окне Properties выберем Set initial configuration. В строке Sensor mode выберем Color. Cервис LegoNXTColorSensor соединяем через круглый разъем нотификаций, в появившемся окне выбираем Replace.
Для вывода индекса цвета используется сервис SimpleDialog. При соединении SimpleDialog указываем значение value.
Рисунок 3 — Готовая диаграмма
Для проверки работы датчика используйте шарики, которые идут в комплекте, т.к. датчик цвета оптимально работает только с расцветкой кубиков Lego. Для того чтобы определить интенсивность цвета, измените режим в окне Properties, выберите тот цвет, интенсивность которого хотите определить.
Ультразвуковой сенсор (сонар)
Для взаимодействия с сенсором используем сервис LegoNXTUltrasonicSensor. Данный сервис выводит дистанцию до объекта в сантиметрах. Добавим необходимые блоки и сервисы и соединим их (рис. 4). На монитор ПК будут выводиться сообщения с дистанцией до объекта в сантиметрах, при условии, что расстояние до объекта более 50 сантиметров, если расстояние не будет изменяться, то новые сообщения появляться не будут.
Рисунок 4 — Готовая диаграмма
Автор: alfatapok