Лего робот программа лабиринт
1. Лабиринт (для дистанционных соревнований)
2. Задача робота: Двигаясь внутри лабиринта, за время не более 3 минут, добраться из зоны старта в зону финиша, или как можно
ближе к зоне финиша
Полигон для соревнования «Лабиринт» представляет собой
прямоугольную поверхность с размером сторон три клетки. Всю
поверхность полигона мысленно можно разделить на квадратные
ячейки со сторонами в три клетки, расположенный смежно друг с
другом. Между ячейками могут быть установлены не преодолимые
для робота перегородки. По периметру полигона имеется ограждение
той же высоты. Зоны старта и финиша выделены линиями черного
цвета
3. Требования к роботу
Для
дистанционных
соревнований
«Лабиринт» робот строится на основе
двухмоторной тележки из контроллера
Lego EV3, Lego NXT или TRIK. Датчики
расстояния ориентируются один –
вперёд, другой – вправо или лево и
располагаются так, чтобы они не
выступали за габариты тележки для
исключения зацепления ими за стенку
при
поворотах.
Датчик
света
располагается аналогичным образом
Время заезда останавливается по истечении 3 минут, когда робот
прибыл в финишную ячейку, либо когда робот не может покинуть ячейку
в течении 15 секунд. Местонахождения робота фиксируется и
производится подсчёт ячеек, которые роботу требуется пройти до зоны
финиша по кратчайшему маршруту. Чем меньше количество таких
ячеек, тем лучше результат. При равном количестве, побеждает тот, кто
затратил меньшее время.
4. Робот ТРИК, датчики расстояния подключены к портам 1 и 2. Модель робота – 2D модель. Физика – реалистичная физика
Для нахождения выхода из лабиринта применяют правило правой (левой)
руки: Если двигаться по лабиринту, держась рукой за правую (левую)
стену, то рано или поздно выйдешь выходу из него, либо в точку начала
пути, если лабиринт замкнут.
Для начала настроим робота в Trik Studio
Робот ТРИК, датчики расстояния подключены к портам 1 и 2.
Модель робота – 2D модель. Физика – реалистичная физика
6. Однако, как Вы заметили, если подпрограмма «Вперёд» настраивается достаточно просто, то после поворота налево и направо, робот
смещается относительно
центра ячейки. А это негативно будет сказываться на всём дальнейшем его
движении. При каждом повороте смещение всё больше и когда-то робот просто
упрётся в стену.
Перед поворотом
После поворота
Для точного поворота на месте, кроме собственно поворота, необходимо сделать
ещё два корректирующих движения: перед поворотом – проезд немного вперед, и
откат назад после поворота. Тогда робот встанет точно в центр клетки. Таким
образом, начиная каждый раз движение из центра клетки, робот постоянно будет
находится посередине коридора.
7. Так выглядит подпрограмма для поворота направо по энкодеру:
Здесь намеренно искажены настройки блоков ожидания. Их вы должны подобрать
при настройке подпрограмм сами
8. Так выглядит подпрограмма для поворота налево по энкодеру:
Здесь намеренно искажены настройки блоков ожидания. Их вы должны подобрать
при настройке подпрограмм сами
9. Но кроме энкодера, выполнить поворот можно и по гироскопическому датчику. Поворот направо по гиродатчику:
10. Поворот налево по гиродатчику:
Напоминаю: Во всех примерах намеренно искажены настройки блоков ожидания.
Их вы должны подобрать при настройке подпрограмм сами
11. Теперь, когда подпрограммы движений робота написаны, настроены и сохранены в коллекцию, можно приступить к сборке главного
алгоритма. Главная программа
(Диаграмма поведения робота) будет выглядеть так:
Здесь применены повороты по гиродатчику. Но можно написать программу с
поворотами по энкодеру, или комбинировать: например, правый – по энкодеру,
левый – по городатчику.
12. Для точной настройки, можно встроить в ветки Диаграммы поведения робота остановки и задержки времени. Тогда вы увидите, где
13. Отладка робота в Trik Studio
Подпрограммы настраиваются отдельно. Особое внимание следует обратить на
точность движений, так как, от этого зависит насколько робот сместится от
желаемой траектории в конце лабиринта.
После настройки приложений переходим к настройке всей программы. Случается,
что при настройке приложения не так видно неточность, как при отладке всей
программы. И тогда необходимо вернуться к настройке приложения и произвести
корректировку.
На данном уроке мы рассмотрим, как пользоваться собственными блоками Ev3 при программировании Ev3.
Напишем программу для Ev3 для прохождения лабиринта. Когда в программе много раз повторяется одна и также последовательность команд, то удобно использовать собственные блоки. Это делает программу очень наглядной и удобной для изменения. Каждый блок отвечает за свой смысловой набор действий,, который можно обособить и выделить.
А далее из этих собственных блоков конструируется программа, согласно логике задания. Рассмотрим, как написать программу для Ev3 для прохождения лабиринта с помощью собственных блоков. Напишем блокидвижение вперед до стены.
Поворот направо на Ev3
Поворот налево на Ev3
Выделяя эти части программы и выбирая в меню Инструменты раздел Конструктор моего блока, создадим три блока: vpered, parvo, levo. Подробно как создавать свои блоки в Ev3.Составим программу из собственных блоков Ev3 для прохождения такого лабиринта.Робот должен двигаться со старта вперед до левой стенки, потом повернуться направо и двигаться до стенки, потом повернуться направо и двигаться до стенки, налево и до стенки, и налево и до стенки до финиша.
Реализуем этот лагоритм с помощью собственных блоков Ev3 , которые мы создали.
Как видим программа достаточно лаконичная. Представьте, какая была бы большая программа без использования собственных блоков.Аналогично мы можем составить программу для прохождения лабиринта любой сложности.
Робот-чистильщик » Робот своими руками
Стих: Последний робот поле » Стихотворения про роботов
На этом уроке мы узнаем, как делать собственные блоки процедуры для lego ev3.
Когда одно и то же действие много раз повторяется в программе, его можно записать в собственный блок наподобие уже существующих и вставлять этот блок в любом нужном месте программы. Использование собственных блоков существенно сократит работу надо программой, сделает ее более наглядной и удобной.
Разберем как создать собственный блок.
Создадим собственный блок для поворота .
Чтобы создать собственный блок в ev3.
1. Пишем часть программы, которую мы хотим добавить в собственный блок.
В нашем случае это поворот направо . Как программировать повороты можно посмотреть на уроке Программирование движения ev3.
2 Выделяем нужную часть программы, кроме самого первого начального блока с зеленой стрелкой и выбираем в меню Инструменты Конструктор моего блока
3 Пишем имя блока на английском языке, выбираем соответствующую ему картинку. Жмем Завершить.
Мы создали собственный блок для поворота. Теперь везде в программе мы можем его использовать.
Для этого его необходимо выбрать на закладке Мои блоки и перетащить в рабочую область программы.
Задание:
Напишите собственные блоки для поворота направо, разворота.
Дистанционное управление для. собаки! » роботы для связи и общения
Гоночная машина - автобот » робот из lego nxt 2.0
На данном уроке мы рассмотрим, как пользоваться собственными блоками Ev3 при программировании Ev3.
Напишем программу для Ev3 для прохождения лабиринта. Когда в программе много раз повторяется одна и также последовательность команд, то удобно использовать собственные блоки. Это делает программу очень наглядной и удобной для изменения. Каждый блок отвечает за свой смысловой набор действий,, который можно обособить и выделить. А далее из этих собственных блоков конструируется программа, согласно логике задания. Рассмотрим, как написать программу для Ev3 для прохождения лабиринта с помощью собственных блоков.Напишем блокидвижение вперед до стены.
Поворот направо на Ev3
Поворот налево на Ev3
Выделяя эти части программы и выбирая в меню Инструменты раздел Конструктор моего блока, создадим три блока: vpered, parvo, levo. Подробно как создавать свои блоки в Ev3.Составим программу из собственных блоков Ev3 для прохождения такого лабиринта.Робот должен двигаться со старта вперед до левой стенки, потом повернуться направо и двигаться до стенки, потом повернуться направо и двигаться до стенки, налево и до стенки, и налево и до стенки до финиша.
Реализуем этот лагоритм с помощью собственных блоков Ev3 , которые мы создали.
Как видим программа достаточно лаконичная. Представьте, какая была бы большая программа без использования собственных блоков.Аналогично мы можем составить программу для прохождения лабиринта любой сложности.
Вернуться к содержанию Перейти к следующей теме Математика в ev3
Полезно почитать по теме прохождение лабиринта ev3
Собственные блоки ev3
Циклические алгоритмы ev3
Одним из видов соревнований по робототехнике является прохождение роботом лабиринта. Сегодня мы представляем простую модель, собранную на базе домашней версии EV3. Эту модель и программу вы можете использовать как пример для собственной модели робота. Это даст вам возможность принять участие в соревнованиях, которые проходят во многих крупных городах Украины.
Итак, начнем.
1) Скачайте архив с инструкцией по сборке
2) Распакуйте его в любую папку.
3) Запустите файл «Building Instructions [MazeSolver].html»
4) В бровзере откроется инструкция для сборки конструкции.
5) Скачайте программу для робота
6) Запустите среду программирования Lego Ev3 и загрузите файл «MazeSolver.ev3″
7) Подключите робота к ПК и загрузите программу в робота.
8) Робот готов. Поставьте его рядом со стеной (датчик расстояния должен смотреть в стену).
9) Выберите на блоке управления загруженную программу с названием «index» и запустите ее.
Описание принципа работы
Робот использует два датчика:
— датчик касания (кнопка) для определения препятствия спереди
— датчик расстояния (в нашем случае удьтразвуковой, который можно заменить на инфракрасный) для определения препятствия справа.
После старта программы робот начинает двигаться вперед вдоль препятствия справа. Если препятсвие далеко (более 4 см), то он поворачивает вправо, приближаясь к препятствию. Если препятствие близко (менее 4 см), то робот поворачивает влево, удалясь от препятствия. Таким образом робот все время движется вдоль препятствия справа на одном расстоянии. Если препятсвие справа отсутсвует (поворот), то робот старается найти его и поворачивает вправо, пока не обнаружит его.
Если же препятствие будет спереди, то при его достижении сработает датчик касания (кнопка). В этом случае робот отъезжает назад, поворачивается влево на 90 градусов и включает алгоритм движения вдоль препятствия. И так по циклу.
Если переставить датчик расстояния на другую сторону, то робот будет двигаться вдоль препятствия слева.
Мы собрали два примера лабиринта для демонстрации.
Это базовая модель, которую вы можете улучшить, изменив некоторые параметры программы или усовершенстовав конструкцию.
До встречи в роболабиринтах!
Читайте также: