Дарья Кирсанова
Конспект урока «Программирование движение робота»
▼ Скачать + Заказать документы
Тема урока - Программирование движения робота
Сегодня на занятии мы детальнее познакомимся со средой программирования Mindstorms и подробно изучим команды, задающие движение нашему роботу-тележке, собранному на первом занятии. Итак, давайте запустим среду программирования Lego mindstorms EV3, загрузим наш проект lessons.ev3, созданный ранее и добавим в проект новую программу lesson-2-1. Программу можно добавить двумя способами:
• Выбрать команду "Файл"-"Добавить программу" (Ctrl+N).
• Нажать "+" на вкладке программ.
Публикация «Конспект урока „Программирование движение робота“» размещена в разделах
- Конспекты занятий. Все конспекты
- Роботы и робототехника. Программирование
- Школа. Материалы для школьных педагогов
- Темочки
Рис. 1
2.1. Палитры программирования и программные блоки
Давайте теперь обратим свой взгляд в нижний раздел среды программирования. Из материала первого занятия мы уже знаем, что здесь находятся команды для программирования робота. Разработчики применили оригинальный прием и, сгруппировав программные блоки, присвоили каждой группе свой цвет, назвав группы палитрами.
Зеленая палитра называется: "Действие" :
Рис. 2
На данной палитре расположены программные блоки управления моторами, блок вывода на экран, блок управления индикатором состояния модуля. Сейчас мы начнем изучение этих программных блоков.
2.2. Зеленая палитра – блоки действия
Первый программный блок зеленой палитры предназначен для управления средним мотором, второй блок - для управления большим мотором. Так как параметры этих блоков идентичны - рассмотрим настройку на примере блока - большой мотор.
Рис. 3
Для правильной настройки блока управления большим мотором мы должны:
1. Выбрать порт, к которому подключен мотор (A, B, C или D) (Рис. 3 поз. 1)
2. Выбрать режим работы мотора (Рис. 3 поз. 2)
3. Настроить параметры выбранного режима (Рис. 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) :
1. Используя программный блок "Рулевое управление" проехать вперед на 4 оборота.
2. Используя программный блок "Независимое управление моторами" развернуться на месте (значение градусов придется подобрать экспериментально).
3. Используя программный блок "Рулевое управление" проехать вперед на 720 градусов.
Примечание: Почему при развороте пришлось подбирать значение градусов в блоке 2?. Разве не 360градусов - искомая величина? Нет, если мы зададим значение параметра "Градусы" равным 360, то тем самым заставим на искомую величину провернуться валы левого и правого моторов нашего робота. На какой угол провернется робот вокруг своей оси - зависит от размера (диаметра) колес и расстояния между ними. На Рис. 7 значение параметра "Градусы" равно 385. Данное значение позволяет роботу, собранному по инструкции small-robot 45544 развернуться вокруг своей оси. Если у вас другой робот, то вам придется подобрать другое значение. Можно ли это значение найти математически? Можно, но об этом мы поговорим позднее.
Рис. 7