Урок №1 - Знакомство с конструктором 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Урок №1 - Знакомство с конструктором



Урок №1 - Знакомство с конструктором

Конец формы

Содержание урока

Введение:

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

Курс рассчитан на делающих первые шаги в мир робототехники с помощью конструктора Lego mindstorms. Хотя все примеры роботов в этом курсе сделаны с помощью конструктора Lego mindstorms EV3, программирование роботов объясняется на примере среды разработки Lego mindstorms EV3, тем не менее, владельцы Lego mindstorms NXT тоже могут присоединиться к изучению данного курса, и, надеемся, найдут для себя тоже полезное...

 

Что в наборе? Классификация деталей, крепление деталей между собой, главный блок, моторы, датчики

Давайте начнем знакомиться с конструктором Lego mindstorms EV3. Распечатав конструктор, мы найдем в нем множество разнообразных деталей. Если вы знакомы с традиционными кирпичиками Lego, но раньше вам не приходилось сталкиваться с наборами Lego серии Technic, ты, возможно, вы будете слегка обескуражены видом непривычных деталей. Однако, разобраться с ними совсем несложно. Итак, условно разделим все детали на несколько категорий. На рисунке представлены детали, называемые балками (иногда для этих деталей можно встретить название - бим (beam)) Балки исполняют роль каркаса (скелета вашего робота),

Рис. 1

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

Рис. 2

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

Рис. 3

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

Рис. 4

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

Рис. 5

Ну и, конечно же, движение в пространстве нашему роботу обеспечивают различные колеса и гусеницы, представленные в наборе.

Рис. 6

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

Рис. 7

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

Рис. 8

Один средний мотор, который также входит в набор Lego mindstorms EV3 выполняет роль движущей силы для различного навесного оборудования робота (клешни, модули захвата, различные манипуляторы) По аналогии с большими моторами отведем среднему мотору ту же роль, которую у нас выполняют руки.

Рис. 9

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

Рис. 10

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

Рис. 11

Lego mindstorms EV3 Home

Рис. 12

В одном проекте может находиться множество программ. Для того, чтобы проект корректно загружался в нашего робота необходимо в названии проекта и программ использовать только буквы латинского алфавита! Давайте назовем наш проект lessons (уроки), а первую программу - lesson-1 (урок-1). Для того, чтобы дать название проекту, воспользуемся главным меню программы: "Файл" - "Сохранить проект как..." Чтобы изменить название программы - следует сделать двойной щелчок мышью на её названии (program) и вписать свое название.

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

Рис. 13

Если подключение робота прошло успешно, то приступим к программированию и создадим нашу первую программу.

1.4. Наша первая программа!

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

Рис. 14

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

Рис. 15

Но, если вы собирали робота по инструкции, предложенной выше, то, наверное, обратили внимание, что в ней отсутствует схема подключения моторов и датчиков. Настало время с этим разобраться. Блок EV3 имеет 4 порта, обозначенных цифрами: 1, 2, 3, и 4. Эти порты служат для подключения только датчиков. Для подключения моторов служат порты, обозначенные буквами: A, B, C и D. Можно подключать моторы в любые свободные порты, предназначенные для них. Но в случае управляемой тележки рекомендовано подключать моторы в порты: B и C. Давайте сейчас возьмем два соединительных кабеля длиной 25 см, левый мотор подключим к порту B, а правый - к порту C. Именно это подключение выбрано по умолчанию в блоке "Рулевое управление". Специальная кнопка, обозначенная стрелкой, отвечает за режим работы блока. Для первой программы выберем режим: "Включить на количество оборотов". Значение 0 под черной стрелочкой на блоке означает прямолинейное движение, когда оба мотора крутятся с одинаковой скоростью. Число 75 задает мощность моторов, чем больше это значение, тем быстрее поедет наш робот. Цифра 2 задает количество оборотов каждого из моторов, на которое они должны провернуться.

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

Рис. 16

 

Устанавливаем робота на ровную поверхность. С помощью стрелок на блоке EV3 заходим в папку нашего проекта, выбираем программу lesson-1 и центральной кнопкой блока EV3 запускаем ее на выполнение.

Рис. 17

Содержание урока

Введение:

На втором занятии мы детальнее познакомимся со средой программирования и подробно изучим команды, задающие движение нашему роботу-тележке, собранному на первом занятии. Итак, давайте запустим среду программирования Lego mindstorms EV3, загрузим наш проект lessons.ev3, созданный ранее и добавим в проект новую программу - lesson-2-1. Программу можно добавить двумя способами:

· Выбрать команду "Файл"-"Добавить программу" (Ctrl+N).

· Нажать "+" на вкладке программ.

Рис. 1

Рис. 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

Режимы работы этих блоков аналогичны режимам блока управления одним мотором, поэтому дополнительного описания не требуют...

Рис. 7

Задача 2: Установите на ровной поверхности какое-либо препятствие (банку, кубик, небольшую коробку), отметьте место старта вашего робота. Создайте в проекте новую программу: lesson-2-2, позволяющую роботу объехать вокруг препятствия и вернуться к месту старта.

Сколько программных блоков вы использовали? Поделитесь своим успехом в комментарии к уроку...

Рис. 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:

1. Воспроизвести сигнал "Start"

2. Включить зеленую немигающую цветовую индикацию

3. Отобразить на экране изображение "Forward"

4. Проехать прямолинейно вперед на 4 оборота двигателя.

5. Включить оранжевую мигающую цветовую индикацию

6. Развернуться

7. Включить зеленую мигающую цветовую индикацию

8. Отобразить на экране изображение "Backward"

9. Проехать на 720 градусов

10. Воспроизвести сигнал "Stop"

Попробуйте решить задачу 3 самостоятельно, не подглядывая в решение! Удачи!

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

Содержание урока

Введение:

Наше третье занятие мы посвятим изучению вычислительных возможностей модуля EV3 и разберем примеры практических решений задач на вычисление траектории движения. Снова запускаем среду программирования Lego mindstorms EV3, загружаем наш проект lessons.ev3 и добавляем в проект новую программу - lesson-3-4. Добавлять новую программу в проект мы научились с вами на предыдущем уроке.

Рис.1

3.2. Числовые значения. Блок "Константа", блок "Переменная"

Среда программирования Lego mindstorms EV3 позволяет нам обрабатывать в своих программах пять различных типов данных: "Текст", "Числовое значение", "Логическое значение", "Числовой массив", "Логический массив". В сегодняшнем уроке мы научимся оперировать с числовыми данными. Тип данных "Числовое значение" позволяет нам выполнять различные математические операции над числами. Числа в программе могут быть как положительными, так и отрицательными, быть целыми значениями или содержать десятичную дробь. Примеры: -15; 3,145; 8; -247,34.

Перед тем, как начать обрабатывать различные типы данных в наших программах, нам надо научиться их создавать и хранить. Для этих целей среда программирования Lego mindstorms EV3 предоставляет два вида программных блоков: "Переменная" и "Константа". Эти блоки позволяют создать в памяти робота специальные ячейки, позволяющие записывать, извлекать и редактировать различные типы данных. Программный блок "Константа" (Рис. 2) позволяет создавать ячейку памяти для хранения одного из пяти типов данных (Рис. 2 поз. 1). Требуемое значение записывается в ячейку на этапе создания программы (Рис. 2 поз. 2) и остается неизменным во время выполнения всей программы. Для получения значения, записанного в блок "Константа" используется "Вывод" (Рис. 2 поз. 3). Подробнее с извлечением данных из программных блоков мы познакомимся ниже при решении практической задачи Урока №3.

Рис. 2

В отличие от программного блока "Константа" - в блоке "Переменная" присутствуют два режима "Считывание" и "Записать" (Рис. 3 поз. 1). Перед первым использованием необходимо задать имя переменной, выбрав параметр блока "Добавить переменную" (Рис. 3 поз. 2). Имя переменной может содержать только заглавные и строчные буквы латинского алфавита, цифры, а также символы _ и -. Задать значение переменной можно, записав или передав число в параметр "Значение" (Рис. 3 поз. 3).

Рис. 3

Рис. 4

Отдельно следует остановиться на режиме "Дополнения". В этом режиме количество параметров для расчета увеличивается до четырех: "a", "b", "c" и "d". В параметр "Уравнение" (Рис. 5 поз. 1) можно вписать любую произвольную формулу, производящую вычисления с этими параметрами.

Рис. 5

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

Рис. 6

Примеры выполнения вычислений в программе

Настало время применить полученные знания на практике.

Задача №4: необходимо написать программу прямолинейного движения для проезда роботом расстояния в 1 метр.

Решение:

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

Рис. 7

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

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

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

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

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

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

6. Полученное в шаге 4 значение подадим в параметр "Обороты" блока "Рулевое управление".

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

Задача №5: необходимо написать программу, рассчитывающую значение параметра "Градусы" для разворота нашего робота (Урок №2, Задача №1)

Данная задача имеет сходство с предыдущей - нам только требуется найти расстояние, которое должны проехать колеса нашего робота. Для того, чтобы наш робот развернулся на 180 градусов - необходимо, чтобы правое и левое колеса, проехав определенный путь по окружности, поменялись местами. Как видим из Рис. 8 - каждое колесо при этом проедет ровно половину окружности с диаметром, равным расстоянию между центрами колес (красная линия на Рис. 8). Подходящей линейкой померяем расстояние между центрами колес. Для робота, собранного по инструкции small-robot-45544, это расстояние равно 120 мм. Следовательно, умножив это значение на число Пи (3,14159) и разделив на 2, мы найдем расстояние, которое должно проехать каждое из колес нашего робота. Как найти соответствующее этому расстоянию число оборотов мотора - мы разобрали в Задаче 4 данного урока. Для того, чтобы перевести полученное число оборотов в градусы - вспомним соотношение: 1 оборот мотора = 360 градусов. Следовательно, если мы, воспользовавшись программным блоком "Математика", умножим полученное значение оборотов на 360 и подадим результат в параметр "Градусы" программного блока "Независимое управление моторами" (Урок №2 Рис.7 поз. 2), то решим требуемую задачу.

Рис. 8

Попробуйте написать программу для решения задачи №5 самостоятельно, не подглядывая в решение!

Решение Задачи №5

Содержание урока

Введение:

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

Рис. 1

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

Рис. 2

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

Рис. 3

Рис. 4

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

· С самым первым блоком Оранжевой палитры мы уже с вами знакомы: он называется "Начало". Именно с него начинаются все программы для роботов.

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

· Третий программный блок называется "Цикл". Этот блок многократно выполняет программные блоки, вложенные внутрь его, пока не будет выполнено условие завершения цикла, заданное в настройках блока.

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

· Заключительный программный блок называется "Прерывание цикла". Его предназначение - досрочное прекращение выполнения заданного цикла.

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

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

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

Рис. 5

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

Решение:

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

Рис. 6

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

Рис. 7

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

Рис. 8

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



Поделиться:


Последнее изменение этой страницы: 2019-12-15; просмотров: 324; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.15.112.69 (0.171 с.)