Lego mindstorms ev3 программирование датчиков

Lego mindstorms ev3 программирование датчиков

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна

Введение:

В состав конструктора Lego mindstorms EV3 входят различные датчики. Главная задача датчиков — представлять информацию из внешней среды модулю EV3, а задача программиста — научиться получать и обрабатывать эту информацию, подавая необходимые команды моторам робота. На протяжении ряда уроков мы будем последовательно знакомиться со всеми датчиками, входящими и в домашний, и в образовательный наборы, научимся взаимодействовать с ними и решать наиболее распространенные задачи управления роботом.

4.1. Изучаем первый датчик – датчик касания

Для подключения датчиков к модулю EV3 предназначены порты, обозначенные цифрами «1», «2», «3» и «4». Таким образом, к одному модулю EV3 одновременно можно подключить до четырех различных датчиков. Все порты абсолютно равнозначны и вы можете подключать датчики к любым портам, главное — будьте внимательны при указании номера порта для соответствующих датчиков в ваших программах.

Порты подключения датчиков

Первым датчиком, который мы изучим, будет датчик касания (Рис. 2).

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

Этот датчик, по сути, представляет собой специальную кнопку, которая может находиться в двух состояниях: «Нажатие» (Рис. 3 поз. 1) или «Освобождение» (Рис. 3 поз. 2). Также, последовательный переход в состояние «Нажатие», а затем «Освобождение» называется: «Щелчок» (Рис. 3 поз. 3) и может обрабатываться программой. как самостоятельное событие.

Состояния датчика касания

4.2. Оранжевая палитра – Управление операторами

Какие же инструменты представляет нам среда программирования для получения информации с датчиков и реагирования на эту информацию в программе? Давайте начнем знакомиться с программными блоками, расположенными в Оранжевой палитре, которая называется «Управление операторами». (Рис. 4)

Оранжевая палитра Управление операторами

Программные блоки Оранжевой палитры, не смотря на свою малочисленность, очень важны! С помощью этих блоков мы можем обрабатывать массу событий и условий и сложно представить практическую программу, которая может обойтись без этих блоков.

  • С самым первым блоком Оранжевой палитры мы уже с вами знакомы: он называется «Начало». Именно с него начинаются все программы для роботов.
  • Второй программный блок называется «Ожидание». Этот блок заставляет программу ожидать выполнения какого-либо условия или наступления какого-либо события. Пока не выполнится условие, установленное в этом блоке, программа не перейдет к выполнению следующих программных блоков! Если перед тем, как начнется выполнение блока «Ожидание» были включены, какие-либо моторы, то они будут продолжать вращаться с установленной скоростью.
  • Третий программный блок называется «Цикл». Этот блок многократно выполняет программные блоки, вложенные внутрь его, пока не будет выполнено условие завершения цикла, заданное в настройках блока.
  • Следующий программный блок называется «Переключатель». Он служит для того, чтобы в зависимости от заданных условий — выполнить одну последовательность программных блоков, вложенных в один из своих контейнеров.
  • Заключительный программный блок называется «Прерывание цикла». Его предназначение — досрочное прекращение выполнения заданного цикла.

Программные блоки «Ожидание», «Цикл» и «Переключатель» имеют множество режимов и соответствующих настроек, знакомиться с которыми мы будем на практических примерах, последовательно и с наглядными пояснениями.

4.3. Оранжевая палитра, программный блок «Ожидание»

Перед тем, как приступить к решению практических задач, давайте закрепим датчик касания на нашем роботе, как показано на Рис. 5, и подключим его кабелем к порту «1» модуля EV3.

Установка датчика касания на робота

Задача №6: необходимо написать программу, запускающую движение робота по щелчку кнопки.

Само условие задачи подсказывает нам возможное решение: перед началом движения — необходимо дождаться нажатия-отпускания кнопки датчика касания. Возьмем программный блок «Ожидание», изменим режим программного блока на «Датчик касания»«Сравнение» (Рис. 6).

Блок

Как можно увидеть — программный блок «Ожидание» сменил свое отображение! Рядом с песочными часами появилось изображение датчика касания (Рис. 7 поз. 1), помогающее в программе визуально оценивать установленный режим работы. Настройка программного блока «Состояние» задает требуемое состояние датчика, достижение которого прекратит выполнение блока «Ожидание» (Рис. 7 поз. 2). Настройка «Состояние» может принимать следующие значение: «0»«Отпущено», «1»«Нажатие», «2»«Щелчок». Для решения нашей задачи выберем состояние «Щелчок». Вывод «Измеренное значение» (Рис. 7 поз. 3) при необходимости позволяет передать окончательное состояние датчика для обработки в другой программный блок.

Блок ожидания. Датчик касания.

Итак: при такой настройке блока ожидания выполнение нашей программы будет остановлено до нажатия-отпускания кнопки датчика касания. Только после «Щелчка» выполнение будет передано следующему программному блоку. Установим после блока ожидания один программный блок «Рулевое управление», загрузим программу в робота и убедимся в правильности её выполнения! (Рис. 8)

Решение задачи 6

Задача №7: необходимо написать программу, останавливающую робота, столкнувшегося с препятствием.

Из датчика касания давайте соберем небольшой бампер, который будет нам сигнализировать о том, что наш робот столкнулся с препятствием. Ниже приведены подробные инструкции для сборки, как из домашней, так и из образовательной версии конструктора Lego mindstorms EV3. Можете поэкспериментировать и придумать собственный вариант конструкции.

Lego mindstorms EV3 home

Инструкция по сборке для домашней версии конструктора

Lego mindstorms EV3 education

Инструкция по сборке для образовательной версии конструктора

Получившийся элемент закрепим на передней балке нашего робота и соединим датчик касания с портом «1» модуля EV3.

Lego mindstorms EV3 Home

Размещение на домашней версии набора

Lego mindstorms EV3 Education

Размещение на образовательной версии набора

Конструкция готова! Приступим к созданию программы. По условию задачи: робот должен двигаться вперед, пока не наткнется на препятствие. В этом случае датчик касания будет нажат! Для решения снова воспользуемся программным блоком «Ожидание».

  1. Начать прямолинейное движение вперед (Рис. 9 поз. 1).
  2. Ждать, пока датчик касания не будет нажат (Рис. 9 поз. 2).
  3. Прекратить движение вперед (Рис. 9 поз. 3).

Решение задачи 7

Для решения следующей задачи нам понадобится программный блок «Цикл» Оранжевой палитры.

Задача №8: необходимо написать программу, заставляющую робота двигаться вперед, при наезде на препятствие — отъезжать назад, поворачивать вправо на 90 градусов и продолжать движение вперед до следующего препятствия.

Подсказка: напишите и протестируйте программу движения — отъезда — поворота, а затем поместите эти блоки внутрь программного блока «Цикл».

  1. Включаем моторы для прямолинейного движения вперед (Рис. 10 поз.1)
  2. Ожидаем нажатия датчика касания (Рис. 10 поз.2)
  3. Выключаем моторы (Рис. 10 поз.3)
  4. Отъезжаем немного назад (Рис. 10 поз.4)
  5. Расчитываем значения параметра для поворота робота вправо на 90 градусов (диаметр колес робота равен 56 мм (образовательная версия конструктора)) (Рис. 10 поз.5)
  6. Поворачиваем вправо на 90 градусов (Рис. 10 поз.6)
  7. Пункты 1 — 6 повторяем в бесконечном цикле (Рис. 10 поз.7)

Решение задачи 8

Источник

Lego mindstorms ev3 программирование датчиков

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна

Если вы ознакомились со статьей «Lego mindstorms EV3, два набора – какой выбрать?», то уже знаете, что компания Lego разработала две версии конструктора Lego mindstorms EV3: домашнюю и образовательную. Одно из существенных различий между домашней и образовательной версией конструктора — различающиеся наборы датчиков. Существуют также две версии среды программирования, соответствующие версиям конструктора. В образовательной версии среды программирования можно использовать все существующие датчики для конструкторов Lego mindstorms, но в домашней версии среды программирования изначально доступны для использования только датчики, входящие в домашнюю версию конструктора Lego mindstorms EV3.

Сравните палитры «Датчики» домашней и образовательной версии программного обеспечения Lego mindstorms EV3:

Желтая палитра. Домашняя версия среды программирования.

Палитра «Датчики». Домашняя версия среды программирования.

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

Палитра «Датчики». Образовательная версия среды программирования.

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

Сейчас вы научитесь добавлять нужные вам программные блоки для датчиков в домашнюю версию программного обеспечения:

  1. В первую очередь необходимо скачать с сайта компании Lego программное обеспечение поддержки требуемого вам датчика. Для этого заходим в раздел «Загрузки» официального сайта, посвященного Lego mindstorms EV3 Home, и листаем страницу вниз до ссылок на датчики.Доступные датчики для скачивания
  2. Выбираем ссылку на необходимый нам датчик и скачиваем программный файл к себе в компьютер. (Для примера мы выбрали Ультразвуковой датчик)
  3. Загружаем среду программирования и создаем новый проект. Затем заходим в главное меню программы, выбрав пункт меню «Инструменты»«Мастер импорта блоков».Главное меню программы. Пункт
  4. В открывшемся диалоговом окне «Мастер экспорта и импорта блоков» среды программирования нажимаем на кнопку «Просмотреть».Мастер импорта блоков
  5. Далее выбираем папку, в которую мы загрузили программное обеспечение необходимого датчика, в папке выбираем загруженный файл и нажимаем кнопку «Открыть».Выбор программного обеспечения датчика
  6. Осталось только выбрать в диалоговом окне «Мастер экспорта и импорта блоков» необходимый датчик и нажать кнопку «Импорт». Для активации установленного датчика следует перезапустить среду программирования.Предупреждение
  7. После перезагрузки среды программирования создаем новый проект и убеждаемся, что на желтой палитре «Датчики» появился подключенный программный блок необходимого датчика!Палитра

Остается повторить эту процедуру для всех необходимых вам датчиков.

hello there. What can i do for you hehes thanks

Источник

Читайте также:  Производственная задача линейного программирования excel
Оцените статью