Министерство образования Республика Саха(Якутия) Муниципальное бюджетное учреждение дополнительного образования «Центр детского научно-технического творчества МО «Намский улус» РС(Я)»

 

 

МЕТОДИКА ПОДГОТОВКИ К СОРЕВНОВАНИЯМ РОБОТОВ

Учебное пособие по программированию в среде Lego Mindstorms EV3 (Учебное пособие предназначено для обучающихся и педагогов, изучающих программирование в среде Lego Mindstorms EV3)
Знакомство со средой разработки LEGO MINDSTORMS Education EV3.

 

2018 г.

Составитель: Иванова Варвара Захаровна,

педагог дополнительного образования

 

Оглавление

Глава 1. Технические характеристики Lego Mindstorms Education EV3 ....................3 

Глава 2. Программирование роботов .............................................................................6 2.1

Основы алгоритмизации ............................................................................................6 2.2

Палитры программирования и программные блоки...............................................7 2.3

Вычислительные возможности робота. ...................................................................9 2.4

Движение робота по черной линии. .......................................................................14 2.5

Создание подпрограмм. ...........................................................................................16

 

Глава 1. Технические характеристики Lego Mindstorms Education EV3

Конструирование базовой модели робота Краткие теоретические сведения Робот - автоматическое устройство, созданное по принципу живого организма. Действуя по заранее заложенной программе и получая информацию о внешнем мире от датчиков(аналогов органов чувств живых организмов), робот самостоятельно осуществляет производственные и иные операции, обычно выполняемые человеком (либо животными). При этом робот может иметь связь как с оператором (получать от него команды), так и действовать автономно. Контроллер - это устройство управления и контроля процессами системы, в которой он установлен. Контроллер преобразует код в управляющие сигналы и выдает на внешние устройства. С внешних устройств он получает данные о рабочих процессах и условиях окружающей среды, с помощью чего способен самостоятельно контролировать некоторые действия системы.

Модуль EV3- это программируемый интеллектуальный контроллер, который контролирует и управляет датчиками и моторами.
• Процессор — ARM9;
• FLASH память — 16 мегабайт;
• Оперативная память — 64 мегабайт;
• Операционная система — Linux;
• Слот расширения SD;
• USB 2.0 (поддерживает USB Host, то есть можно подключить к WiFi);
• Bluetooth 2.1;
• 4 порта на вход и 4 порта на выход;
• Динамик.

Программирование на контроллере EV3 позволит легко и быстро освоить этапы составления программ и тестов для робота благодаря простому интерфейсу и готовым программным блокам (компонентам).

Большой мотор- это мощный мотор, который имеет встроенный датчик вращения с разрешением 1 градус для точного контроля.

Возможности робота LEGO Mindstorms Education EV3 Артикул
45544:
• Различает семь основных цветов, реагирует на степень освещенности помещения;
• "Видит" на расстоянии до 2,5 метра с точностью до 1 мм, "слышит" ультразвуковые волны;
• Еще быстрее "соображает" и реагирует на изменения программ за счет мощного микрокомпьютера (300 MHz против 48 MHz у моделей поколения NXT!) и увеличенного объема оперативной памяти;
• "Общается" с компьютером и другими роботами по Wi-Fi и Bluetooth;
• Интегрирование с мобильными устройствами систем Android и iOS;
• Поддержка карт памяти формата microSD объемом до 32 Гб.

Этот набор с легкостью вдохновит ваших учеников на совместное обсуждение проблемы и поиск креативного решения, которое затем можно будет претворить в жизнь - построить и протестировать, - используя набор моторов, датчиков и строительных элементов LEGO. Стартовый набор поставляется в удобной коробке, идеальной для хранения элементов и использования в классе. Можно расширить возможности комплекта, используя ресурсный набор LEGO Education Mindstorms EV3 45560.

Датчик цвета - это цифровой датчик, который может определять цвет или яркость света, поступающие в небольшое окошко на лицевой части датчика.

Гироскопический датчик- это цифровой датчик, который обнаруживает вращательное движение вокруг одной оси.

Датчик касания - это аналоговый датчик, который может определять, когда красная кнопка нажата, а когда отпущена.

Ультразвуковой датчик- это цифровой датчик, который определяет расстояние до находящегося перед ним объекта.

page4image32675936

Обзор среды программирования

page5image32513552

Глава 2. Программирование роботов 2.1 Основы алгоритмизации

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

Алгоритмизация – это процесс построения алгоритма для решения задач на компьютере.

Графический способ описания алгоритма (используется в программном обеспечении Lego Mindstorms EV3) получил самое широкое распространение. Для описания используются блоки, которые соединяются между собой линиями связи.

По структуре выполнения алгоритмы делятся на три вида: линейные, ветвления, циклические.

Линейный алгоритм (линейная структура) – это такой алгоритм, в котором все действия выполняются последовательно друг за другом и только один раз. Схема представляет собой последовательность блоков, которые располагаются сверху вниз или слева направо в порядке их выполнения.

Пример записи линейного алгоритма на языке программирования EV3.

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

page6image32630736 page6image32634272

описать с разветвляющейся направления алгоритма проверки заданного условия. Ветвящиеся процессы в EV3 описываются оператором

Переключатель.
Для решения некоторых задач нужно

повторение отдельных участков вычислений. В таких задачах применяются

Такие задачи можно

помощью структуры. продвижения осуществляется

алгоритмов Выбор

по схеме по итогам

page6image32630112

алгоритмы циклической
(циклические алгоритмы). последовательность команд,
повторяется до тех пор, пока не будет выполнено заданное условие.

структуры Цикл – которая

2.2 Палитры программирования и программные блоки.

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

Все программы в среде Lego Mindstorms EV3 состоят из блоков. У каждого блока есть один или несколько регулируемых параметров.

Блок действий (Зеленый)

Блоки действий управляют действиями в рамках программы. Они контролируют вращение моторов, а также изображения, звук и подсветку модуля EV3.

Блок выполнения программ (Оранжевый)

page7image32518544 page7image32511680page7image32515424

Блок выполнения программы управляют процессом выполнения программ. Все создаваемые тобой программы будут начинаться со стартового блока.

Блоки датчиков (Желтый)

Блоки датчиков позволяют программе считывать входящие данные с датчика цвета, ИК-датчика, датчика касания и многое другое.

Блоки операции над данными (Красный)

Блоки операций над данными позволяют вводить и считывать переменные величины, сравнивать характеристики и многое другое.

Блоки модернизации (синий).

Позволяют работать с файлами, устанавливать связь по Bluetooth

page8image32509808 page8image32512304page8image32520208

2.3 Вычислительные возможности робота.

В красной палитре среды программирования Lego Mindstorms EV3 сосредоточены программные блоки, необходимые для выполнения различных операций над числовыми, логическими или текстовыми данными.

Среда программирования Lego mindstorms EV3 позволяет нам обрабатывать в своих программах пять различных типов данных: «Текст», «Числовое значение», «Логическое значение», «Числовой массив», «Логический массив». Тип данных «Числовое значение» позволяет нам выполнять различные математические операции над числами. Числа в программе могут быть как положительными, так и отрицательными, быть целыми значениями или содержать десятичную дробь. Например: 3,14, -2,5, 20.

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

Программный блок «Константа» позволяет создавать ячейку памяти для хранения одного из пяти типов данных. Требуемое значение записывается в ячейку на этапе создания программы и остается неизменным во время выполнения всей программы. Для получения значения, записанного в блок

Робот для траектории на основе LEGO EV3

page9image32606448 page9image32608112page9image32607904

В программном блоке «Переменная» существует два режима «Считывание» и «Записать». Прежде чем использовать переменную, ей необходимо задать имя, выбрав параметр блока «Добавить переменную». Имя переменной может содержать только заглавные и строчные буквы латинского алфавита, цифры, а также символы _ и -. Задать значение переменной можно, записав или передав число в параметр «Значение».

Блок математика.

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

page9image18261184

числами, заданными параметрами "a" и "b".
В режиме «Дополнения» количество параметров для расчета

page10image32607280 page10image32611232

увеличивается до четырех. В параметр «Уравнение» можно вписать любую произвольную формулу.

Блок «Округление».

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

Блок «Сравнение».

Блок предназначен для сравнения двух числовых значений, которые могут вписываться в окна блока или приходить по проводникам. На выходе появляется логическое значение «Истина» или «Ложь», в зависимости от результата сравнения.

Блок «Интервал».

Блок предназначен для определения нахождения числа относительно диапазона: внутри или снаружи. Значения могут, как непосредственно вписываться в окна блока, так и приходить по проводника. На выходе блока появляется логическое значение «Истина» или «Ложь», в зависимости от полученного результата.

page10image32950304 page10image17918656 page10image32960912 page10image17923840 page10image17910976page10image32954256

page11image32614352

Блок «Случайное значение».
Блок предназначен для генерирования

page11image18257344

случайного значения
или логического) в указанном диапазоне.

Блок «Операции над массивом».

(числового

page11image18255040

Массив – это набор однотипных элементов, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу. Индекс первого элемента равен 0. В среде EV3 можно работать с одномерными числовыми и логическими массивами. Блок Операции над массивом позволяет определять длину массива, читать, записывать и удалять требуемые элементы массива.

Прежде чем начать работу с массивами, необходимо их инициировать, т.е. указать тип (числовой или логический) и присвоить имя. Данные в массив можно вносить в ручном или автоматическом режиме (считывая показания с датчиков). Для создания массива необходимо использовать блок «Переменная».

Например: необходимо написать программу прямолинейного движения для проезда роботом расстояния в 0,5 метра.

Решение:

За один полный оборот мотора робот проезжает расстояние, равное длине окружности колеса. Это расстояние можно найти, умножив число Пи (=3,14159) на диаметр колеса. Диаметр колеса из образовательного набора Lego mindstorms EV3 равен 56 мм. Если переведем расстояние в 0,5 метра в миллиметры (500 мм) и разделим на расстояние, которое робот проходит за один оборот мотора, то узнаем: сколько оборотов мотора необходимо для проезда всего заданного расстояния.

page11image32614144

Приступим к созданию программы:

1. Используя программный блок «Константа», заведем в программу постоянное число Пи, равное примерно 3,14159.

2. Используя программный блок «Переменная», создадим в программе переменную «d» и занесем в нее значение диаметра колеса.

3. Используя программный блок «Математика», умножим значение блока «Константа» на значение переменной d. Для передачи значения из переменной d в программный блок «Математика» используем второй программный блок «Переменная» в режиме «Считывание». Для передачи значений между программными блоками используются шины данных. Чтобы установить шину данных, необходимо «потянуть» выходной параметр одного программного блока и «присоединить» его к входному параметру другого программного блока.

4. Используя программный блок «Математика», разделим значение пути (500 мм) на значение, полученное в шаге 3.

page12image32955920 page12image32949056page12image17921920

5. Полученное в шаге 4 значение. округлив до двух знаков после запятой,

page12image17920384

выведем на экран модуля EV3.

page12image32954672

6. Полученное в шаге 4 значение подадим в параметр «Обороты» блока «Рулевое управление». Загрузим полученную программу в нашего робота. Поставим робота на ровную свободную площадку и запустим программу. Измерив расстояние, пройденное роботом, убедимся в правильности нашей программы.

page12image32955504

Пример: необходимо написать программу, рассчитывающую значение параметра «Градусы» дя поворота робота

Данная задача имеет сходство с предыдущей - нам только требуется найти

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

проехав определенный путь по окружности, поменялись местами.

page13image32603376 page13image15933872

D 1- диаметр колеса робота, а D2 – расстояние между центрами колес.

Тогда расстояние, пройденное каждым колесом при развороте может быть

найдено по формуле:

Расстояние, которое проезжает робот за один оборот, выражается формулой:

Разделив первую формулу на вторую, вычислим значение оборотов

двигателя для разворота робота:
Чтобы получить необходимое нам значение градусов, умножим

предыдущую формулу на 360:

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

page13image32599424 page13image32597968 page13image32598176 page13image32598592 page13image32598384

2.4 Движение робота по черной линии.

page14image32591104

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

Пример 1. Один датчик, с П регулятором.
Конструкция датчик света устанавливается на балку, удобно расположенную на модели.

Так как на реальной траектории датчик формирует значения во всѐм своѐм рабочем диапазоне (0-100), то значением к которому стремиться робот, выбрано 50. В этом случае значения передаваемые функции поворота формируются в диапазоне -50 - 50, но этих значений недостаточно для крутого поворота траектории. По этому следует расширить диапазон в полтора раза до -75 - 75.

В итоге, в программе, функция калькулятора является простым пропорциональным регулятором. Функция которого ( (a-50)*1.5 ) в рабочем диапазоне датчика света формирует значения поворота в

page14image32597344 page14image32589648

соответствии с графиком:

Пример 2. Один датчик, с ПK регулятором.
Этот пример составлен на той же конструкции.
Вы наверно заметили, что в прошлом примере робот излишне

раскачивался, что не давало ему достаточно разогнаться. Сейчас мы постараемся немного улучшить эту ситуацию.

Пример 3. Два датчика, с ПK регулятором.

Использование двух датчиков позволяет, более чѐтко разграничить отклонение датчиков от линии и позволяет легко отфильтровывать/подсчитывать перекрѐстки или сложные повороты на траектории.

page15image32914880 page15image32902608page15image32910304

2.5 Создание подпрограмм.

Подпрограмма – это поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определѐнного набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. Подпрограмма может быть многократно вызвана из разных частей программы.

Использование блоков подпрограмм позволяет сократить запись программы, сделать еѐ более читабельно и простой в восприятии. Для создания подпрограммы необходимо выделить блоки которые будут составлять подпрограмму и нажать «инструменты – конструктор моего блока».

Необходимо вписать имя блока, также можно добавить описание и выбрать значок.

После создание блока на палитре «Мои блоки», появляется ваш созданный блок.

page16image32746880 page16image32747088