робот. Учебное пособие по программированию в среде Lego Mindstorms ev3 Учебное пособие предназначено для обучающихся и педагогов, изучающих
Скачать 2.03 Mb.
|
Способы подключения робота к компьютеру. Загрузка программСуществует несколько способов подключения модуля EV3 к компьютеру. Через кабель USB. Через беспроводное соединение Bluetooth. Через беспроводное соединение Wi-Fi. При подключении модуля на странице аппаратных средств надпись EV3 загорается красным. При подключении на странице аппаратных средств можно посмотреть: Палитры программирования и программные блоки.Давайте теперь обратим свой взгляд в нижний раздел среды программирования. Здесь находятся команды для программирования робота. Разработчики применили оригинальный прием и, сгруппировав программные блоки, присвоили каждой группе свой цвет, назвав группы палитрами. Все программы в среде Lego Mindstorms EV3 состоят из блоков. У каждого блока есть один или несколько регулируемых параметров. Блоки действий (Зеленый) Блоки действий управляют действиями в рамках программы. Они контролируют вращение моторов, а также изображения, звук и подсветку модуля EV3. Блок выполнения программ (Оранжевый) Блок выполнения программы управляют процессом выполнения программ. Все создаваемые тобой программы будут начинаться со стартового блока. Блоки датчиков (Желтый) Блоки датчиков позволяют программе считывать входящие данные с датчика цвета, ИК-датчика, датчика касания и многое другое. Блоки операции над данными (Красный) Блоки операций над данными позволяют вводить и считывать переменные величины, сравнивать характеристики и многое другое. Зеленая палитра «Действие». Моторы, изображения и звуки.Здесь расположены программные блоки управления моторами: Средний мотор – предназначен для управления средним мотором. Большой мотор – для управления большим мотором. Рулевое управление Независимое управление моторами А также блоки: Вывод на экран Вывод звука Индикатор состояния модуля Рассмотрим настройку моторов на примере большого мотора: Режим: "Включить" включает мотор с заданным параметром "Мощность" и после этого управление передается следующему программному блоку программы. Мотор будет продолжать вращаться, пока не будет остановлен следующим блоком "Большой мотор" с режимом "Выключить" или следующий блок "Большой мотор" не будет содержать другие параметры выполнения. Режим "Включить на количество секунд" включает большой мотор с установленной мощностью на указанное количество секунд, и только по завершению времени мотор остановится, а управление в программе перейдет к следующему программному блоку. Аналогично поведет мотор себя в режимах "Включить на количество градусов" и "Включить на количество оборотов": только после выполнения установленного вращения мотора он остановится, и управление в программе перейдет к следующему блоку. Параметр мощность может принимать значения от -100 до 100. Положительные значения мощности задают вращение мотора по часовой стрелке, отрицательные - против часовой. При значении мощности равном 0 мотор вращаться не будет, чем "выше" значение мощности, тем быстрее вращается мотор. Параметр мощность задается только целыми значениями, параметры: секунды, градусы, обороты могут принимать значения с десятичной дробью. Но следует помнить, что минимальный шаг вращения мотора равен одному градусу. Отдельно следует сказать о параметре "Тормозить в конце". Данный параметр, если установлен в значение "Тормозить" заставляет мотор тормозить после выполнения команды, а если установлен в значение "Двигаться накатом", то мотор будет вращаться по инерции, пока сам не остановится. Следующие два программных блока "Рулевое управление" и "Независимое управление моторами" реализуют управление парой больших моторов. По умолчанию левый большой мотор подключается к порту "В", а правый - к порту "С". Но вы можете в настройках блока поменять порты подключения в соответствии с требованиями вашей конструкции Программный блок "Независимое управление моторами" похож на программный блок "Рулевое управление". Он также управляет двумя большими моторами, только вместо параметра "Рулевое управление" появляется возможность независимого управления мощностью каждого мотора. При равном значении параметра "Мощность" для левого и правого мотора робот будет двигаться прямолинейно. Если на один мотор подать отрицательное значение мощности (например -50), а на второй - положительное значение (например 50), то робот будет разворачиваться на месте. Например:Проехать прямолинейно вперед на 5 оборотов двигателя. Развернуться. Проехать на 980 градусов. Используя программный блок «Рулевое управление» проехать вперед на 4 оборота. Используя программный блок «Независимое управление моторами» развернуться на месте (также можно использовать блок «Рулевое управление», значение градусов придется подобрать экспериментально). Используя программный блок «Рулевое управление» проехать вперед на 980 градусов. Значение параметра "Градусы" равно 390. Данное значение позволяет роботу развернуться вокруг своей оси. Если у вас другой робот, то вам придется подобрать другое значение. Задание: Робот должен объехать препятствие (банка, мячик и т.п.) и вернутся к месту старта. Задание:Робот должен проехать по траектории квадрат. Экран, звук, индикатор состояния модуля Для работы с дисплеем в EV3 предусмотрен отдельный блок – “Экран” (рис. 129). Блокдляработысдисплеем Этот блок имеет несколько режимов: вывод текста; вывод фигур вывод готового изображения; сброс настроек и вывод стандартного изображения; вывод пользовательского изображения. Вы можете создавать более сложные изображения, поместив в программе подряд несколько блоков «Экран». Изображение может быть динамическим, т.е. изменяться во время выполнения программы, если подключить шины к концентратору данных и передавать по ним новые значения координат. Запомните, что при выводе готового изображения в параметре «расположение» указываются координаты его левого нижнего угла. Например:Напишем программу вывода на дисплей прямой линии, которая разделит его вертикально на две равные части. Для этого необходимо задать в параметрах команды координаты начальной и конечной точек прямой. Выполняя данную программу, состоящую всего из одной команды, микроконтроллер очистит экран дисплея, а затем выведет на него изображение вертикальной прямой линии. Задание: Самостоятельно измените данную программу так, чтобы она делила экран по горизонтали пополам. Существует еще один способ создания собственного изображения на экране дисплея – для этого нужно включить редактор изображений. В этом режиме можно добавлять на экран готовые изображения. Однако среда EV3 предоставляет возможность самостоятельно создать изображение при помощи редактора изображений (Редактор изображений). Открыть редактор можно в меню “Инструменты” среды EV3. Открываемредакторизображений Поскольку дисплей блока EV3 черно-белый, редактор не поддерживает цветные палитры. Помимо ручной отрисовки, редактор поддерживает импорт готовых изображений. Для этой цели служит кнопка “Открыть”, кнопка “Сохранить” позволяет сохранить готовое изображение и добавить его к списку изображений проекта. Редактор поддерживает форматы ric, jpg, jpeg, bmp, png. Создадим собственное изображение в «Редакторе изображений» и заставим робота показывать его на дисплее. Пусть этим изображением будет бьющееся сердце, поскольку микроконтроллер, по сути, и есть сердце робота. Нам необходимо два изображения сердца – одно большое, другое – маленькое. Когда Вы запустите в программе их циклическую смену, будет казаться, что у робота действительно бьется сердце. Задание:Откройте «Редактор изображений». Нарисуйте в рабочей области сердце так, как вам больше нравится. Чтобы сделать его заметнее, можно воспользоваться заливкой. У Вас может получиться что-то похожее на рисунок. Сохраните полученное изображение с именем Heart1, нажав на кнопку сохранить. Далее необходимо нарисовать еще одно сердце, но меньшего размера. Постарайтесь при этом оставить без изменений его форму. Сохраните второе изображение с именем Heart2 и закройте редактор. Теперь составим программу. Для этого поместите в рабочую область подряд два блока «Экран», заключив их в рамку команды «Цикл». Цикл необходим для того, чтобы изображения сменяли друг друга все время, пока работает программа. У Вас должна получиться структура, показанная на рисунке. Но при запуске данная программа не работает. На экране Вы видите статическое изображение сердца, которое не изменяется. В чем же дело? Все дело в том, что программа работает правильно, но Вы не видите этого, потому что смена изображений происходит слишком быстро. Добавим в программный код два блока ожидания «Ожидание», установив в параметрах ожидание истечения времени в 1 секунду. Окончательный вариант программы представлен на рисунке. Звук. Работа с динамиком Еще одним важным средством коммуникации робота является воспроизведение звуковых сигналов. Робот может также воспринимать звуки из окружающей среды при помощи звукового датчика. Для работы со звуком в языке EV3 предназначен блок «Звук». Звуки можно выбирать из стандартной библиотеки звуков. Если в блоке “Звук” установлен флажок “Ожидать завершения”, то звуковой файл будет воспроизведен полностью, и только потом осуществлён переход к следующей команде. Так же можно создать собственную звуковую дорожку. Этот способ аналогичен подобному для блока «Экран» Редактор звука позволяет открыть для редактирования звуковой файл формата rso, rsf, mp3 или wav. Нажав на кнопку “Открыть”, Вы можете выбрать файл произвольной длительности. В отличие от микрофонной записи, длина импортированного из операционной системы файла не ограничена. Но, как и в случае записи, сохранить для загрузки в команду «Звук» можно только 10 секунд из любого места файла. Нам осталось познакомиться с последним программным блоком зеленой палитры - блоком «Индикатор состояния модуля». Вокруг кнопок управления модулем EV3 смонтирована цветовая индикация, которая может светиться одним из трех цветов: зеленым, оранжевым или красным. За включение - выключение цветовой индикации отвечает соответствующий режим. Параметр "Цвет" задает цветовое оформление индикации. Параметр "Импульсный" отвечает за включение - отключение режима мерцания цветовой индикации. Как можно использовать цветовую индикацию? Например, можно во время различных режимов работы робота использовать различные цветовые сигналы. Это поможет понять: так ли выполняется программа, как мы запланировали. |