Программирование датчиков касания и ультразвука — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

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

Программирование датчиков касания и ультразвука

2020-05-07 439
Программирование датчиков касания и ультразвука 0.00 из 5.00 0 оценок
Заказать работу

На контроллере 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.133 с.