четверг, 22 августа 2013 г.

Обзор среды программирования EV3. Часть 3.

Теперь переходим к самому интересному - программированию робота. Как и в NXT, EV3 программа представляет собой последовательность блоков, определяющих действия робота.
Например, для того, чтобы робот проехал вперед, а затем развернулся, можно составить программу из 2 блоков управления моторами - езда прямо и поворот:
Палитра программирования, на которой расположены все блоки, переместилась: в NXT она располагалась с левого края, теперь же она внизу. Изменилось не только расположение - была переработана сама структура вкладок. В EV3 решили отказаться от вкладок "Общая палитра", "Расширенная палитра", "Пользовательская палитра" и дублирования блоков внутри них. Палитра EV3 состоит из 6 вкладок:
  1. Действие
  2. Управление операторами
  3. Датчик
  4. Операции с данными
  5. Дополнения
  6. Мои Блоки

Палитра кажется более продуманной и выбирать блоки стало быстрее.
Дизайн блоков также был сильно изменен. Панель настройки была удалена, и теперь настройка блока производится непосредственно на нем самом. Такое нововведение привело к тому, что все параметры блока видно без его выделения.
Все блоки в EV3 имеют режимы: у блоков управления моторами режимом считается критерий остановки, у блоков датчиков - формат измерения или сравнения показаний. Режим блока задается большой кнопкой в левом нижнем углу.
Теперь, взглянув на программу, можно полностью понять ее поведение, и это позволяет быстро находить ошибки. Например, зная все обозначения в EV3, можно сразу определить, что делает эта программа:
По программе робот будет ехать прямо до тех пор, пока он не обнаружит черную линию.

Выпадающего хаба с входными и выходными параметрами теперь нет, шина данных выходит и подключается непосредственно к той секции блока, которая настраивает нужный параметр. Например, данная программа выводит на экран блока показания датчика звука:
В этой программе шина данных подсоединяет выход "Уровень звука" блока датчика звука ко входу "Текст" блока экрана.

Балки, на которой располагались блоки в NXT-G, теперь также нет: блоки могут стыковаться друг с другом в любом месте области программирования.

Теперь давайте рассмотрим блоки управления моторами из вкладки "Действие".
Отмечу, что все блоки моторов имеют одинаковые режимы - включить, выключить и движение на заданное число секунд \ градусов \ оборотов. Порт мотора настраивается в правом верхнем углу блока. Кстати, теперь к блоку можно подключить 4 мотора, а не 3, как раньше. Порты моторов все также обозначаются латинскими буквами: A, B, C, D. Например, данный блок управляет сразу 2 моторами B и C:
Средний мотор

Напомню, что в наборе EV3 появился средний мотор. Его характеристики приведены в нашем обзоре. Данный блок позволяет управлять средним мотором - включать на заданное количество секунд или оборотов, изменять его мощность, выключать. Все возможные режимы блока перечислены в таблице:

Режим
Изображение
Входные параметры
Включить
1. Мощность
Выключить
1. Тормозить в конце
Включить на
количество
секунд
1. Мощность
2. Секунды
3. Тормозить в конце
Включить на
количество
градусов
1. Мощность
2. Градусы
3. Тормозить в конце
Включить на
количество
оборотов
1. Мощность
2. Обороты
3. Тормозить в конце

Большой мотор

Данный блок аналогичен предыдущему, но управляет большим мотором - их в наборе два. Его режимы:

Режим
Изображение
Входные параметры
Включить
1. Мощность
Выключить
1. Тормозить в конце
Включить на
количество
секунд
1. Мощность
2. Секунды
3. Тормозить в конце
Включить на
количество
градусов
1. Мощность
2. Градусы
3. Тормозить в конце
Включить на
количество
оборотов
1. Мощность
2. Обороты
3. Тормозить в конце

Рулевое управление моторами

Данный блок удобно использовать для программирования движения стандартного робота-тележки с 2 моторами. В этом случае моторами можно управлять синхронно: одновременно запустить или остановить оба мотора, поменять направление движения робота. Направление движения задается ползунком "Рулевое управление". По умолчанию ползунок стоит в центральном положении - это соответствует прямой езде. При смещении ползунка влево\вправо робот будет поворачивать в указанном направлении.

Режим
Изображение
Входные параметры
Включить 1. Рулевое управление
2. Мощность
Выключить 1. Тормозить в конце
Включить на
количество
секунд
1. Рулевое управление
2. Мощность
3. Секунды
4. Тормозить в конце
Включить на
количество
градусов
1. Рулевое управление
2. Мощность
3. Градусы
4. Тормозить в конце
Включить на
количество
оборотов
1.Рулевое управление
2 Мощность
3. Обороты
4. Тормозить в конце

Независимое управление моторами

Данный блок также служит для управления движением робота с 2 моторами. Разница в том, что направление движения задается не ползунком "Рулевое управление", а указанием мощности обоих моторов. В предыдущем блоке, если моторы вращаются с разной скоростью (например, когда робот поворачивает или разворачивается), то указывается мощность более быстрого мотора.

Режим
Изображение
Входные параметры
Включить
1. Мощность левого мотора
2. Мощность правого мотора
Выключить
1. Тормозить в конце
Включить на
количество
секунд
1. Мощность левого мотора
2. Мощность правого мотора
3. Секунды
4. Тормозить в конце
Включить на
количество градусов
1. Мощность левого мотора
2. Мощность правого мотора
3. Градусы
4. Тормозить в конце
Включить на
количество оборотов
1. Мощность левого мотора
2. Мощность правого мотора
3. Обороты
4. Тормозить в конце

В следующей статье будут рассмотрены блоки "Экран", "Звук", "Индикатор состояния модуля", а также редакторы изображения и звука.

Все статьи обзора:
Часть 1 - Установка среды программирования, ее основной интерфейс. Лобби
Часть 2 - Понятие проекта. Его создание, основные элементы.
Часть 3 - Программирование робота. Управление моторами.
Часть 4 - Программирование робота. Экран, звук, индикатор состояния модуля. Редактор изображений и редактор звуков.
Часть 5 - Программирование робота. Управление операторами: блоки Начало, Ожидание, Цикл, Переключатель, Прерывание цикла.

Автор обзора благодарит официального дистрибьютора Lego Education в России - компанию "Стандарт" за предоставленный набор Lego Mindstorms EV3.

6 комментариев:

  1. Подскажите, возможно ли, подключив сразу 4 мотора, заставить их вращаться все одновременно?

    ОтветитьУдалить
    Ответы
    1. Подскажите, пожалуйста, как это сделать? Мне это нужно, но я не знаю как. Спасибо.

      Удалить
    2. А как сделать так, что бы мотор поворачивался ТОЛЬКО на определённое кол-во градусов при нажатии на кнопку, а при отпускании возвращался на прошлую позицию?

      Удалить
  2. Спасибо за статьи. Очень полезные.
    Сейчас как раз назревает переход с NXT на EV3.

    Но новая среда программирования совершенно не нравится.
    Она стала засоренной лишними подробностями, читать ее стало значительно труднее.
    И совершенно не понимаю, пока, как учить ему других - что взрослых, что детей.

    Старая среда программирования была доступна даже второклассникам, уже через 20 минут они могли что-то делать.
    По умолчанию все лишнее было скрыто, и новый возможности открывались по мере "созревания".

    А сейчас все слишком аляпистым, все вывалено сразу на экран.
    Как будто бы этот язык придумывали не те же люди, что делали предыдущую, более продуманную, хотя и менее мощную, среду программирования.

    ОтветитьУдалить
  3. Добрый вечер. Подскажите пожалуйста, купили 2 набора EV3 ребенку а в интернете найти не можем теперь, как управлять одновременно 4-мя моторами, вот нашли Ваш сайт, может подскажите или пример программы? Заранее благодарен.

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...