Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Оснащения врачебно-сестринской бригады.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
2020-05-07 | 439 |
5.00
из
|
Заказать работу |
|
|
На контроллере Lego EV3 кроме разъемов для подключения моторов А, В, С, D находятся порты для подключения датчиков и обозначены цифрами 1, 2, 3 и 4.
Задача 8.1. Составить программудвижения робота до стены, ударившись о которую, отъехать назад на заданное расстояние.
Для решения поставленной задачи используем датчик касания, которому соответствует в палитре блок «Ждать датчик касания».Данный блок будет являться условием окончания движения вперед, поэтому блоки «Таймер» или «Ждать энкодер» не нужны. В свойствах блока необходимо указать номер порта, к которому датчик касания подключен (рисунок 8.1)
Рис.8.1: Свойства блока «Ждать датчик касания»
Затем на панели «Настройки сенсоров» необходимо из списка в строке «Порт 1» выбрать «Сенсор касания» (рисунок 8.2). В окне «Отладка» на роботе появится изображение датчика, который с помощью мыши можно перетащить к передней или задней панели робота.
Рис. 8.2: Панель «Настройки сенсоров»
Итак, переместим на сцену блоки «Моторы вперед», «Ждать датчик касания», «Стоп моторы», «Сбросить показания энкодеров», «Моторы назад», «Ждать энкодер», «Конец». Соединив блоки последовательно и выставив необходимые свойства, получим программу как на рисунке 8.3:
Рис. 8.3: Программа к задаче 8.1.
Осталось запустить программу. Для запуска программы в 2D модели сначала необходимо нарисовать стену с помощью инструмента «Стена» (рисунок 8.4). Для проверки программы на реальном роботе, загружаем программу на контроллер и запускаем на выполнение, выставив переднюю панель робота с датчиком касания в направлении стены.
Рис. 8.4: Режим отладки в 2D модели с нарисованной стеной.
Задача 8.2. Составить программудвижения робота до стены, не касаясь которой, отъехать назад на заданное расстояние.
|
Отличие от предыдущей задачи заключается в том, что робот не должен ударяться о стену, а остановиться на определенном расстоянии и отъехать назад.
При решении задачи в данном случае необходимо воспользоваться ультразвуковым датчиком.
Цифровой ультразвуковой датчик генерирует ультразвуковые волны и считывает их отражение для обнаружения измерения расстояния до объектов. Минимальное расстояние – 3 см, максимальное – 250 см. Точность определения ±1 см. Точность измерения поддерживается в диапазоне 0-160 см. Если смотреть на датчик спереди, то левая сторона содержит передатчик сигнала, правая – приемник. Угол излучения пучка лучей составляет примерно 20о. Если поместить робота на расстоянии 1 метр, то ширина пучка составит»65 см. Соответственно, датчик не сможет обнаружить объекты, расположенные на расстоянии 1 метр от него более чем на» 32 см в сторону от оси (рисунок 8.5).
Рис. 8.5: Определение угла разброса пучка лучей.
В TRIK Studio ультразвуковому датчику соответствует блок «Ждать сенсор расстояния», имеющий ряд свойств:
· Расстояние (выставляем расстояние до объекта в сантиметрах, на котором должны остановиться).
· Порт (определяем порт, к которому подключен датчик).
· Считанное значение (меньше, больше, не меньше, не больше).
Изменим программу, написанную с использованием датчика касания. Заменим блок датчика касания на блок «Ждать сенсор расстояния». Укажем расстояние, равное 10 см и считанное значение – меньше, что будет означать: моторы остановятся, как только расстояние до стены станет меньше 10 см (рисунок 8.6).
Рис. 8.6: Программа к задаче 8.2.
Перед запуском программы необходимо поменять на панели «Настройки сенсоров» у порта 1 «Сенсор касания» на «Сенсор расстояния». В режиме «Отладка» на 2D модели появится изображение ультразвукового датчика (рисунок 8.7).
Рис. 8.7: Режим отладки в 2D модели с ультразвуковым датчиком.
|
Задания для самостоятельного решения
1. Составить программу: робот перемещается в сторону стены и останавливается на расстоянии 15 см, затем поворачивает налево и продолжает движение вдоль стены, пока не упрется в тупик.
2. Создать программу перемещения робота с помощью датчика касания по следующему маршруту в лабиринте:
3. Используя лабиринт из задания 1, создать программу перемещения робота с помощью ультразвукового датчика.
4. Составить программу: робот движется вдоль забора до тех пор, пока он не закончится, затем разворачивается на 180о и дет обратно.
5. Сигнализация: в случае проникновения в помещение срабатывает звуковая сигнализация. Какие датчики необходимо использовать? Составить программу.
Использование подпрограмм
При составлении программ очень часто бывает, что некоторые операции, выполняемые роботом, повторяются в разных частях программы или в разных программах. Такие блоки команд лучше выделить в подпрограммы.
Подпрограмма (функция, процедура) – относительно самостоятельная часть программы, имеющая свое имя и выполняющая определенные действия.
Команды, размещенные в подпрограмме и отделенные от основной программы, выполняются лишь в случае их вызова из основной программы из любого места. Одна и та же подпрограмма может вызываться из основной программы любое количество раз. Чтобы понять, какие подпрограммы потребуются и сколько раз их нужно вызывать, необходимо выполнить декомпозицию задачи.
Декомпозиция задачи – процесс разбиения задачи на элементарные действия, например, движение вперед, поворот, движение назад, движение до стены и т.д.
Для того чтобы не выполнять одну и туже работу, программисты составляют свою собственную библиотеку подпрограмм и используют их при необходимости.
Задача 9.1. Объехать прямоугольное здание по периметру.
Декомпозиция задачи: движение робота состоит из операций движение «Прямо» и «Поворот» (влево или вправо в зависимости от выбора направления).
Для создания подпрограммы, следует перетащить блок «Подпрограмма» из палитры на сцену, ввести название, затем дважды щелкнуть по пиктограмме, чтобы добавить команды в подпрограмму. Начало любой подпрограммы – блок «Начало», а заканчивается блоком «Конец».
Подпрограмма «Go» – это движение по прямой (рисунок 9.1).
|
Рис. 9.1: Подпрограмма «Go».
Подпрограмма «Turn» осуществляет резкий поворот на 90о (рисунок 9.2).
Рис. 9.2: Подпрограмма «Turn».
Итоговая программа показана на рисунке 9.3.
Рис. 9.3: Программа к задаче 9.1.
После создания подпрограмм и их открытия рядом с вкладкой «Диаграмма поведения робота» появляются вкладки подпрограмм (рисунок 9.4), а в палитре – панель «Подпрограммы» (рисунок 9.5).
Рис. 9.4: Вкладки подпрограмм.
Рис. 9.5: Панель «Подпрограммы».
Созданные подпрограммы при необходимости можно корректировать, переходя по нужным вкладкам. Любая подпрограмма имеет ряд свойств, которые можно изменить, если вызвать контекстное меню в палитре «Подпрограммы» и выбрать строку «Изменить свойства» (рисунок 9.6). Данная диалоговая панель позволяет изменить имя, картинку или фон подпрограммы, добавить при необходимости параметры. После внесения изменений обязательно нажать кнопку «Сохранить все».
Рис. 9.6: Свойства подпрограммы.
Итак, за счет использования подпрограмм, текст основной программы становится намного короче и читабельнее. Такой подход используется профессиональными программистами во всем мире, в том числе и при коллективной разработке программного обеспечения.
Задания для самостоятельного решения
1. Включить в свою библиотеку подпрограмм следующие действия:
a) Резкий поворот налево на 90о;
b) Резкий поворот направо на 90о;
c) Плавный поворот налево на 90о;
d) Плавный поворот направо на 90о;
e) «Танковый» разворот налево на 90о;
f) «Танковый» разворот направо на 90о;
g) Резкий поворот на 180о;
h) Плавный поворот на 180о;
i) «Танковый» разворот на 180о;
j) Проезд вперед на одну клетку;
k) Проезд до стены с помощью датчика касания;
l) Проезд до стены с помощью ультразвукового датчика.
2. Составить программу выхода из лабиринта с использованием соответствующих подпрограмм.
3. Робот рисует восьмерку, в ее центре поворачивается на 90 градусов и рисует еще одну.
4. Робот захватывает манипулятором груз, находящийся перед ним, и переставляет его, поворачиваясь на 180 градусов.
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!