- PVSM.RU - https://www.pvsm.ru -

Программируем в Microsoft Robotics Developer Studio. Часть 3, взаимодействие с датчиками

Введение

В данной статье мы рассмотрим датчики, которые входят в базовый комплект Lego Mindstorms NXT 2.0, а именно: два датчика касания, датчик цвета, ультразвуковой сенсор (сонар). Рассмотрим сервисы, которые обеспечивают доступ к данным датчикам (рис. 1), напишем простые приложения, которые демонстрируют получение информации с датчиков.

image
Рисунок 1 — Сервисы датчиков

Датчик касания

Для взаимодействия с данным датчиком в MRDS присутствуют сервисы LegoNXTTouchSensor и LegoNXTContactSensorArray.

Рассмотрим на простом примере первый сервис. Напишем программу, которая обрабатывает нажатия на датчик касания. При касании датчика блок NXT будет издавать короткий писк, а на мониторе ПК будет появляться сообщение, например, с таким текстом: «Вы меня потрогали!».

Добавьте и соедините блоки и сервисы как на рис. 2. При соединении сервисов LegoNXTBrick и SimpleDialog, поставьте галочку в пункте Edit values directly и введите значения, на свое усмотрение. В моей программе я установил в сервисе LegoNXTBrick значения частоты звука 2000, а длительность 250, а в сервисе SimpleDialog «Вы меня потрогали!».

image
Рисунок 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.

image
Рисунок 3 — Готовая диаграмма

Для проверки работы датчика используйте шарики, которые идут в комплекте, т.к. датчик цвета оптимально работает только с расцветкой кубиков Lego. Для того чтобы определить интенсивность цвета, измените режим в окне Properties, выберите тот цвет, интенсивность которого хотите определить.

Ультразвуковой сенсор (сонар)

Для взаимодействия с сенсором используем сервис LegoNXTUltrasonicSensor. Данный сервис выводит дистанцию до объекта в сантиметрах. Добавим необходимые блоки и сервисы и соединим их (рис. 4). На монитор ПК будут выводиться сообщения с дистанцией до объекта в сантиметрах, при условии, что расстояние до объекта более 50 сантиметров, если расстояние не будет изменяться, то новые сообщения появляться не будут.

image
Рисунок 4 — Готовая диаграмма

Автор: alfatapok

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/25762

Ссылки в тексте:

[1] Источник: http://habrahabr.ru/post/167115/