Всех приветствую, дорогие читатели канала "Генератор мыслей". С вами автор, человек, который редко при возникновении особых трудностей продолжает начатое. Если что-то приводит меня в тупик, то спустя время некоторых усилий желание это завершить пропадает. Да, это не очень хорошо.
Но могу немного собой гордиться, что проект "лабиринт" для робота я всё-таки закончила. Хоть и в упрощённой форме. Это стоило много трудов, стараний, истерик, криков. Казалось бы, что там? Пусть робот пройдёт лабиринт и всё! Тем более робот оснащён аж 4 датчиками! И алгоритм прохождения лабиринта уже дан- "правило правой руки". Но всё не так уж и просто. Сейчас сами увидите.
Внешний вид робота и как выглядит лабиринт
Как я уже писала, у моего робота есть 4 датчика: датчик касания, ультразвуковой датчик, датчик цвета и гироскопический датчик. Робот передвигается при помощи 2 колёс, управляемых большими моторами. Колёса расположены впереди, поэтому чтобы робот не заваливался назад, задняя часть не касалась пола, сзади я прикрепила опорное колесо-шар. Эту модель я собрала сама. В моих изначальных планах я хотела, чтобы робот вертел голову вперёд-вправо(чтобы убрать датчик касания), но я не смогла сориентироваться и реализовать задумку.
Лабиринт я сделала из картона и старых обоев. Обои- "пол", а картонные перегородки- стенки. Я специально сделала конструкцию такой, чтобы робот не сразу нашёл бы выход и даже однажды попал бы в тупик. Ширина лабиринта должна быть не слишком маленькой, чтобы робот смог в случае необходимости без проблем повернуть и развернуться. Но если расстояние между стенками будет большим, то робот может посчитать, что это дырка и поехать в стену. Около выхода я приклеила немного бумажного скотча, покрашенного в синий цвет. Это будет сигналом роботу, что он нашёл выход.
Краткое описание принципа прохождения лабиринта
Как упоминалось выше, робот проходит лабиринт по правилу правой руки. Робот при помощи ультразвукового датчика всегда проверяет справа есть ли дырка, возможный выход. Как только он данную возможность находит- поворачивает направо.
В то же время датчик касания ждёт нажатия, появления стены. Как только впереди появилась стена, то робот поворачивает налево. Так как ему больше некуда ехать: ультразвуковой датчик не нашёл дырку, а датчик касания нашёл стену впереди. Точность всех поворотов регулируется при помощи гироскопического датчика. И когда датчик цвета ловит синий цвет, робот понимает, что выход найден, завершение программы.
Программа для лабиринта и некоторые нюансы к ней
Итак, программу я создала в "LEGO Mindstorms Education Ev3 Classroom". Вся программа и каждый повтор цикла начинаются с моего блока go. Этот блок отвечает за движение вперёд до тех пор, пока не сработают ультразвуковой датчик или датчик касания. После этого запрашивается условие на нахождение дырки справа. Если расстояние больше 15- то поворот, нет- тогда спрашивают про датчик касания. Если кнопка нажата, то поворот налево, если нет-возвращаемся к началу цикла. А дополнительная подпрограмма ждёт нахождения синего цвета для выхода.
Есть один нюанс при поворотах. Если робот повернётся на месте, то при осмотре направо он может обнаружить дырку откуда он приехал и повернуть туда. Поэтому поворот считается завершённым только после поворота и нахождения роботом стенки после. Я специально разделила эти действия, когда вы посмотрите видео, то после поворота увидите небольшую остановку робота.
Вот и всё! Давайте смотреть результат!
А здесь я сделала торговый автомат с конфетами из этого же набора.
Я очень довольна результатом. Это стоило стольких усилий и времени. Желаю вам большей усидчивости, не отчаиваться и всегда добиваться желаемого!