Какого режима нет для мотора в наборе lego mindstorms ev3
Введение:
На втором занятии мы детальнее познакомимся со средой программирования и подробно изучим команды, задающие движение нашему роботу-тележке, собранному на первом занятии. Итак, давайте запустим среду программирования Lego mindstorms EV3, загрузим наш проект lessons.ev3, созданный ранее и добавим в проект новую программу - lesson-2-1. Программу можно добавить двумя способами:
- Выбрать команду "Файл"-"Добавить программу" (Ctrl+N).
- Нажать "+" на вкладке программ.
Рис. 1
2.1. Палитры программирования и программные блоки
Давайте теперь обратим свой взгляд в нижний раздел среды программирования. Из материала первого занятия мы уже знаем, что здесь находятся команды для программирования робота. Разработчики применили оригинальный прием и, сгруппировав программные блоки, присвоили каждой группе свой цвет, назвав группы палитрами.
Зеленая палитра называется: "Действие":
Рис. 2
На данной палитре расположены программные блоки управления моторами, блок вывода на экран, блок управления индикатором состояния модуля. Сейчас мы начнем изучение этих программных блоков.
2.2. Зеленая палитра – блоки действия
Первый программный блок зеленой палитры предназначен для управления средним мотором, второй блок - для управления большим мотором. Так как параметры этих блоков идентичны - рассмотрим настройку на примере блока - большой мотор.
Рис. 3
Для правильной настройки блока управления большим мотором мы должны:
- Выбрать порт, к которому подключен мотор (A, B, C или D) (Рис. 3 поз. 1)
- Выбрать режим работы мотора (Рис. 3 поз. 2)
- Настроить параметры выбранного режима (Рис. 3 поз. 3)
Чем же отличаются режимы? Режим: "Включить" включает мотор с заданным параметром "Мощность" и после этого управление передается следующему программному блоку программы. Мотор будет продолжать вращаться, пока не будет остановлен следующим блоком "Большой мотор" с режимом "Выключить" или следующий блок "Большой мотор" не будет содержать другие параметры выполнения. Режим "Включить на количество секунд" включает большой мотор с установленной мощностью на указанное количество секунд, и только по завершению времени мотор остановится, а управление в программе перейдет к следующему программному блоку. Аналогично поведет мотор себя в режимах "Включить на количество градусов" и "Включить на количество оборотов": только после выполнения установленного вращения мотора, он остановится и управление в программе перейдет к следующему блоку.
Параметр мощность (на Рис. 3 мощность установлена в 75) может принимать значения от -100 до 100. Положительные значения мощности задают вращение мотора по часовой стрелке, отрицательные - против часовой. При значении мощности равном 0 мотор вращаться не будет, чем "выше" значение мощности, тем быстрее вращается мотор.
Параметр мощность задается только целыми значениями, параметры: секунды, градусы, обороты могут принимать значения с десятичной дробью. Но следует помнить, что минимальный шаг вращения мотора равен одному градусу.
Отдельно следует сказать о параметре "Тормозить в конце". Данный параметр, если установлен в значение "Тормозить" заставляет мотор тормозить после выполнения команды, а если установлен в значение "Двигаться накатом", то мотор будет вращаться по инерции, пока сам не остановится.
Следующие два программных блока "Рулевое управление" и "Независимое управление моторами" реализуют управление парой больших моторов. По умолчанию левый большой мотор подключается к порту "В", а правый - к порту "С". Но вы можете в настройках блока поменять порты подключения в соответствии с требованиями вашей конструкции (Рис. 4 поз. 1).
Рис. 4
Параметр "Рулевое управление" (Рис. 4 поз. 2) может принимать значения от -100 до 100. Отрицательные значения параметра заставляют робота поворачивать налево, при значении равном 0 робот движется прямо, а положительные значения заставляют робота поворачивать направо. Стрелка над числовым параметром меняет свою ориентацию в зависимости от значения, подсказывая тем самым направление движения робота (Рис. 5).
Рис. 5
Программный блок "Независимое управление моторами" похож на программный блок "Рулевое управление". Он также управляет двумя большими моторами, только вместо параметра "Рулевое управление" появляется возможность независимого управления мощностью каждого мотора. При равном значении параметра "Мощность" для левого и правого мотора робот будет двигаться прямолинейно. Если на один мотор подать отрицательное значение мощности (например -50), а на второй - положительное значение (например 50), то робот будет разворачиваться на месте (Рис. 6).
Рис. 6
Режимы работы этих блоков аналогичны режимам блока управления одним мотором, поэтому дополнительного описания не требуют.
2.3. Прямолинейное движение, повороты, разворот на месте остановка
Итак, теперь мы можем написать программу движения робота по какому-либо маршруту.
Задача 1: Проехать прямолинейно вперед на 4 оборота двигателя. Развернуться. Проехать на 720 градусов.
Решение (Рис. 7):
- Используя программный блок "Рулевое управление" проехать вперед на 4 оборота.
- Используя программный блок "Независимое управление моторами" развернуться на месте (значение градусов придется подобрать экспериментально).
- Используя программный блок "Рулевое управление" проехать вперед на 720 градусов.
Примечание: Почему при развороте пришлось подбирать значение градусов в блоке 2?. Разве не 360 градусов - искомая величина? Нет, если мы зададим значение параметра "Градусы" равным 360, то тем самым заставим на искомую величину провернуться валы левого и правого моторов нашего робота. На какой угол провернется робот вокруг своей оси - зависит от размера (диаметра) колес и расстояния между ними. На Рис. 7 значение параметра "Градусы" равно 385. Данное значение позволяет роботу, собранному по инструкции small-robot 45544 развернуться вокруг своей оси. Если у вас другой робот, то вам придется подобрать другое значение. Можно ли это значение найти математически? Можно, но об этом мы поговорим позднее.
Рис. 7
Задача 2: Установите на ровной поверхности какое-либо препятствие (банку, кубик, небольшую коробку), отметьте место старта вашего робота. Создайте в проекте новую программу: lesson-2-2, позволяющую роботу объехать вокруг препятствия и вернуться к месту старта.
Сколько программных блоков вы использовали? Поделитесь своим успехом в комментарии к уроку.
2.4. Экран, звук, индикатор состояния модуля
Программный блок "Экран" позволяет выводить текстовую или графическую информацию на жидкокристаллический экран блока EV3. Какое это может иметь практическое применение? Во-первых, на этапе программирования и отладки программы можно выводить на экран текущие показания датчиков во время работы робота. Во-вторых, можно выводить на экран название промежуточных этапов выполнения программы. Ну а в-третьих, с помощью графических изображений можно "оживить" экран робота, например с помощью мультипликации.
Рис. 8
Программный блок "Экран" имеет четыре режима работы: режим "Текст" позволяет выводить текстовую строку на экран, режим "Фигуры" позволяет отображать на экране одну из четырех геометрических фигур (прямая, круг, прямоугольник, точка), режим "Изображение" может вывести на экран одно изображение. Изображение можно выбрать из богатой коллекции изображений или нарисовать свое, используя редактор изображений. Режим "Окно сброса настроек" сбрасывает экран модуля EV3 к стандартному информационному экрану, показываемому во время работы программы.
Рис. 9
Рассмотрим параметры программного блока "Экран" в режиме "Текст" (Рис. 9 поз.1). Строка, предназначенная для вывода на экран, вводится в специальное поле (Рис. 9 поз. 2). К сожалению, в поле ввода текста можно вводить только буквы латинского алфавита, цифры и знаки препинания. Если режим "Очистить экран" установлен в значение "Истина", то экран перед выводом информации будет очищен. Поэтому, если вам требуется объединить текущий вывод с информацией уже находящейся на экране, то установите этот режим в значение "Ложь". Режимы "X" и "Y" определяют точку на экране, с которой начинается вывод информации. Экран блока EV3 имеет 178 пикселей (точек) в ширину и 128 пикселей в высоту. Режим "X" может принимать значения от 0 до 177, режим "Y" может принимать значения от 0 до 127. Верхняя левая точка имеет координаты (0, 0), правая нижняя (177, 127)
Рис. 10
Во время настройки программного блока "Экран" можно включить режим предварительного просмотра (Рис. 9 поз. 3) и визуально оценить результат настроек вывода информации.
В режиме "Фигуры" (Рис. 11 поз. 1) настройки программного блока меняются в зависимости от типа фигуры. Так при отображении круга необходимо будет задать координаты "X" и "Y" центра окружности, а также значение "Радиуса". Параметр "Заполнить" (Рис. 11 поз. 2) отвечает за то, что будет отображен либо контур фигуры, либо внутренняя область фигуры будет заполнена цветом, заданным в параметре "Цвет" (Рис. 11 поз. 3).
Рис. 11
Для отображения прямой необходимо задать координаты двух крайних точек, между которыми располагается прямая.
Рис. 12
Чтобы отобразить прямоугольник следует задать координаты "X" и "Y" левого верхнего угла прямоугольника, а также его "Ширину" и "Высоту".
Рис. 13
Отобразить точку проще всего! Укажите лишь её координаты "X" и "Y".
Режим "Изображение", наверное, самый интересный и самый используемый режим. Он позволяет выводить на экран изображения. Среда программирования содержит огромную библиотеку изображений, отсортированную по категориям. В дополнение к имеющимся изображениям вы всегда можете создать свой рисунок и, вставив его в проект, вывести на экран. ("Главное меню среды программирования" - "Инструменты" - "Редактор изображения"). Создавая своё изображение, вы можете также вывести на экран символы русского алфавита.
Рис. 14
Как вы видите - отображению информации на экране главного модуля EV3 среда программирования придает огромное значение. Давайте рассмотрим следующий важный программный блок "Звук". С помощью этого блока мы можем выводить на встроенный динамик блока EV3 звуковые файлы, тона произвольной длительности и частоты, а также музыкальные ноты. Давайте рассмотрим настройки программного блока в режиме "Воспроизвести тон" (Рис. 15). В этом режиме необходимо задать "Частоту" тона (Рис. 15 поз. 1), "Продолжительность" звучания в секундах (Рис. 15 поз. 2), а также громкость звучания (Рис. 15 поз. 3).
Рис. 15
В режиме "Воспроизвести ноту" вам вместо частоты тона необходимо выбрать ноту на виртуальной клавиатуре, а также установить длительность звучания и громкость (Рис. 16).
Рис. 16
В режиме "Воспроизвести файл" вы можете выбрать один из звуковых файлов из библиотеки (Рис. 17 поз. 1), либо, подключив к компьютеру микрофон, с помощью Редактора звука ("Главное меню среды программирования" - "Инструменты" - "Редактор звука") записать собственный звуковой файл и включить его в проект.
Рис. 17
Давайте отдельно рассмотрим параметр "Тип воспроизведения" (Рис. 17 поз. 2), общий для всех режимов программного блока "Звук". Если данный параметр установлен в значение "Ожидать завершения", то управление следующему программному блоку будет передано только после полного воспроизведения звука или звукового файла. В случае установки одного из двух следующих значений начнется воспроизведение звука и управление в программе перейдет к следующему программному блоку, только звук или звуковой файл будет воспроизведен один раз или будет повторяться, пока не его не остановит другой программный блок "Звук".
Нам осталось познакомиться с последним программным блоком зеленой палитры - блоком "Индикатор состояния модуля". Вокруг кнопок управления модулем EV3 смонтирована цветовая индикация, которая может светиться одним из трех цветов: зеленым, оранжевым или красным. За включение - выключение цветовой индикации отвечает соответствующий режим (Рис. 18 поз. 1). Параметр "Цвет" задает цветовое оформление индикации (Рис. 18 поз. 2). Параметр "Импульсный" отвечает за включение - отключение режима мерцания цветовой индикации (Рис. 18 поз. 3). Как можно использовать цветовую индикацию? Например, можно во время различных режимов работы робота использовать различные цветовые сигналы. Это поможет понять: так ли выполняется программа, как мы запланировали.
Рис. 18
Давайте используем полученные знания на практике и немного "раскрасим" нашу программу из Задачи 1.
Задача 3:
- Воспроизвести сигнал "Start"
- Включить зеленую немигающую цветовую индикацию
- Отобразить на экране изображение "Forward"
- Проехать прямолинейно вперед на 4 оборота двигателя.
- Включить оранжевую мигающую цветовую индикацию
- Развернуться
- Включить зеленую мигающую цветовую индикацию
- Отобразить на экране изображение "Backward"
- Проехать на 720 градусов
- Воспроизвести сигнал "Stop"
Попробуйте решить задачу 3 самостоятельно, не подглядывая в решение! Удачи!
Средний мотор EV3 входит в состав базового и домашнего набора Lego EV3. Более правильно его называть средним сервомотором или сервоприводом.
Сервомотор (сервопривод) – мотор с управлением при помощи отрицательной обратной связи.
средний мотор Lego EV3
Эта связь позволяет точно управлять параметрами движения мотора. Поэтому можно точно контролировать поворот вала и его текущее положение. Средний мотор EV3 имеет встроенный оптический энкодер. Энкодер можно еще назвать датчиком угла поворота вала или датчиком вращения.
Средний мотор – характеристики
Кратко опишу основные характеристики среднего мотора Lego EV3:
- Точность поворота – 1 градус
- Скорость вращения – 240 – 250 оборотов в минуту
- Вращающий момент – 8 Нсм
- Автоматическая идентификация
Подключается средний мотор EV3 в любой порт микрокомпьютера Lego EV3 с буквами A, B, C, D. Это не очень мощный мотор. Поэтому он чаще используется для схватов, захватов передач типа червячной. По умолчанию средний сервомотор подключается к порту A.
вращение среднего мотора
Скорость мотора измеряется в условных единицах от -100 до 100. Расположим сервопривод так, чтобы вращающая часть находилась фронтально. В этом случае положительное значение вращения будет по часовой стрелке, отрицательное – против.
Блок «Средний мотор» EV3
Блок программирования «Средний мотор» (Medium Motor) расположен первый слева в зеленой палитре.
зеленая закладка палитры блоков
Выбор режима работы
Средний мотор EV3 имеет пять режимов работы:
Включить
В этом случае мотор работает постоянно с нужной вам скоростью. Но для того, чтобы средний мотор EV3 работал нужно применять условия или программные структуры с условиями.
включить
Например, мотор вращается до тех пор, пока переменная не примет заданные значения.
Включить на количество секунд
Мотор вращается заданное количество секунд.
включить на количество секунд
В нашем случае мотор вращается одну секунду по часовой стрелке. Скорость вращения мотора 100 условных единиц.
Включить на количество градусов
На рисунке ось мотора повернется на 720 градусов со скоростью 30.
Включить на количество оборотов
Мотор проедет заданное количество оборотов.
На рисунке будет ехать пять оборотов со скоростью 30 условных единиц.
Выключить
Выключить средний мотор. Есть два варианта выключения среднего мотора.
1.Если установлена галка в нижней правой части блока, то произойдет резкая остановка мотора.
Большой мотор EV3 является более мощным, чем средний мотор EV3. Это происходит за счет наличия в большом моторе EV3 редуктора. Редуктор является набором шестеренок и позволяет сделать понижающую или повышающую передачу.
Детали редуктора являются пластиковыми и поэтому не очень надежные и могут выйти из строя.
большой мотор и редуктор большого мотора Lego EV3.
В этом случае отремонтировать большой мотор EV3 достаточно сложно. У большого мотора передача понижающая. Это позволяет сделать мотор более мощным, но при этом скорость мотора становиться меньше.
В нем также находится энкодер (датчик вращения), который позволяет контролировать вращение вала с точностью до одного градуса. Скорость вращения большого мотора составляет 160 – 170 оборотов в минуту.
Вращение большого мотора EV3 мотора происходит при положительных заданных значениях мощности мотора по часовой стрелке. При этом мотор должен быть расположен так, чтобы вращающаяся часть была справа. Если значения мощности мотора отрицательны, то вращение происходит против часовой стрелки.
вращение большого мотора EV3
Вращающий момент равен 20 Нсм. Он является мерой внешнего воздействия, которая изменяет угловую скорость вала двигателя. Пусковой момент равен 40 Нсм. Еще его называют начальным моментом или моментом трогания. Метрическая единица Нсм или Nsm – это ньютон-сантиметр равный килограмм-сила-сантиметр (кгс·см).
Один кгс·см равен моменту, который возникает при воздействии на рычаг с плечом в один сантиметр силы в один килограмм-сила в направлении, перпендикулярном рычагу.
Управление большим мотором EV3
Для управления большим мотором EV3 в среде программирования Лего предусмотрен блок программирования «Большой мотор».
блок «Большой мотор»
При помощи этого блока программирования можно управлять одним мотором. Этот блок имеет точно такой же функционал, как и блок «Средний мотор». Блок программирования «Большой мотор» расположен в зеленой палитре действия.
порты выхода EV3 для моторов
Большой мотор EV3 можно подключить к любому порту с буквами, и он автоматически определится программным обеспечением.
Структура блока программирования:
Значения вводов будут изменяться при изменении выбора режима мотора. Для того, чтобы начать работать с блоком нужно сначала выбрать порт, к которому подключен мотор.
Выбор режима работы мотора
Всего есть пять режимов работы большого мотора Lego EV3. Кратко расскажу о каждом режиме.
1. Включить мотор
В этом случае большой мотор EV3 работает по условиям. Т.е. для работы мотора необходимо задать условия завершения работы.
включить
Например, мотор подключен к порту D и вращается с мощностью 100 условных единиц 5 секунд.
При этом дополнительно используется блок «Ожидание».
2. Выключить мотор
выключить
Существует два режима остановки большого мотора:
В этом случае параметру «Тормозить в конце» присваивается значение «Тормозить».
3. Включить мотор на количество секунд
включить на количество секунд
Большой мотор EV3 подключен к порту D.
включить на 5 секунд
Вращается 5 секунд с мощность 100 условных единиц и в конце тормозит.
4. Включить на количество градусов
включиь на количество градусов
Большой мотор EV3 соединен с портом D. Вращение вала на 720 градусов, т.е. два оборота вала.
включить на 720 градусов
Скорость (мощность) 100 условных единиц и движение накатом. Это значит, что торможения в конце не происходит.
5. Включить на количество оборотов
включить на количество оборотов
Двигатель EV3 подключен к порту D и вал вращается пять оборотов. Скорость 100 и движется накатом.
включить на 5 оборотов
Любой из режимов работы большого мотора Lego EV3 используется для каждого конкретного случая и решает определенные задачи. В дальнейшем мы разберем некоторые типовые задачи и методы их решения и оптимизации с применением различных режимов работы.
Для одновременного управления двумя моторами Lego EV3 в зеленой палитре блоков программирования существует два блока:
Блок «Рулевое управление»
Рулевое управление
Блок «Независимое управление моторами»
Независимое управление
Блок рулевого управления третий слева в блоках «Действия» палитры блоков EV3. Блок независимого управления четвертый по счету. Режимы управления у блоков одинаковые. Всего есть пять режимов работы:
Эти пять режимов аналогичны режимам работы среднего и большого мотора и подробно описаны в статьях «Большой мотор EV3» и «Средний мотор EV3», поэтому останавливаться на режимах работы и режимах остановки не имеет смысла.
Блок программирования «Рулевое управление»
При помощи блока «Рулевое управление» робот может двигаться вперед, назад, по траектории, останавливаться. При рулевом управлении моторы могут передвигаться со скоростями от – 100 условных единиц до 100 условных единиц. Это позволяет моторам вращаться в разных направлениях.
Есть два входных параметра для управления блоком – мощность и рулевое управление.
Эти значения можно указывать непосредственно на блоке. Также можно задавать значения при помощи проводников. Такое управление часто используется для соревнований автономных роботов.
Параметры входа
Максимальную скорость моторов можно задать любую. Значения рулевого управления, т.е. повороты, задаются ползунком. На рисунке приведен пример, где скорость или мощность равна 50 условных единиц, а значение рулевое управление установлено 20 условных единиц.
Это значит, что максимальная скорость левого мотора будет 50, а правого меньше. При таких заданных значениях робот совершает правый поворот. Если изменять положение ползунка, то будет изменяться вид стрелки и значение рулевого управления. Можно сказать, что блок «Рулевое управление» напоминает рулевое управление обычных автомобилей.
значение рулевое управление
Отличие заключается в том, что в обычном автомобиле поворот осуществляется за счет поворота колес при одинаковой скорости ведущих колес, а у роботизированной платформы поворот происходит за счет разной скорости моторов.
Недостатком такого управления является трудность вычисления угла поворота. Поэтому часто значение рулевого управления подбирается опытным путем.
Блок программирования «Независимое управление»
В этом блоке реализована возможность одновременного управления двух моторов с одинаковой скоростью или различными скоростями. Выбор порта для моторов происходит, если щелкнуть по букве в верхней части блока.
выбор порта выхода
Если у нас левый мотор подключен к порту В, а правый к порту С, то при значениях В = 100 и С = -100 происходит разворот на месте в правую сторону с максимальной скоростью. При В = 100 и С = 0 робот поворачивается вокруг правого неподвижного колеса. При В = 100 и 0 < С < 100 происходит движение роботизированной тележки по дуге.
повороты «Независимое управление»
При помощи этого блока можно легко задавать траектории движения и точно вычислять радиусы разворотов. Блок «Независимое управление» моторами очень похож на управление танком, трактором или любой другой техникой где повороты осуществляются за счет разных скоростей левых и правых гусениц или колес.
На данном уроке мы познакомимся с понятием линейного алгоритма, разберемся, как программировать движение робота Ev3.Линейный алгоритм это набор последовательных команд, которые выполняются только один раз. Команды следуют одна за другой в строго заданном порядке.
Например, рассмотрим алгоритм движения робота по квадрату.
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Перед тем как реализовывать линейные алгоритмы движения познакомился, как программировать простейшие команды движения робота EV3.
Движение вперёд робота ev3.
1 действие. Движение вперёд робота ev3. Моторы робоат ev3 подключаются к портам с буквами: A B C D Все повороты делаются на мощностях меньше 50.
Сбрасываем датчик моторов в ev3.
2 действие. Ставим цикл и в него ставим моторы на режиме «включить».
3 действие. Выставляем мощность мотора на 100.
4 действие. Заходим в цикл, выставляем вращение мотора «градусы».
5 действие. Полный оборот колеса 360 градусов.
6 действие. Остановка моторов в режиме «выключить».
Повороты робота EV3.Программа для поворота робота ev3
1 действие. Чтобы робот вращался на месте как трактор используется реверсивный поворот , когда один мотор двигается в одну сторону, а другой в противоположную. Чтобы мотор начал вращаться назад , необходимо выставить мощность -100.
Поворот робота ev3 в другую сторону
1. действие. Чтобы поворачивать в другую сторону , необходимо поменять мощности моторов . Теперь мотор с портом A будет с отрицательной мощностью.
3 действие. Меняем порт мотора в конце цикла.
Движение робота EV3 назад
Чтобы обеспечить движение робота ev3 назад, устанавливаем отрицательную мощность обоих моторов .
Читайте также: