Оглавление:

Робот LEGO проезжает через лабиринт: 9 шагов
Робот LEGO проезжает через лабиринт: 9 шагов

Видео: Робот LEGO проезжает через лабиринт: 9 шагов

Видео: Робот LEGO проезжает через лабиринт: 9 шагов
Видео: Лабиринт. Задать путь вручную EV3 среда Classroom 2024, Июль
Anonim
Image
Image
База робота
База робота

Это простой автономный робот, предназначенный для проезда через лабиринт к выходу. Он построен с использованием LEGO Mindstorms EV3. Программное обеспечение EV3 запускается на компьютере и генерирует программу, которая затем загружается в микроконтроллер, называемый модулем EV3. Метод программирования основан на пиктограммах и является высокоуровневым. Это очень просто и универсально.

ЧАСТИ

  1. Набор LEGO Mindstorms EV3
  2. Ультразвуковой датчик LEGO Mindstorms EV3. Он не входит в набор EV3.
  3. Гофрокартон для лабиринта. Двух картонных коробок должно хватить.
  4. Небольшой кусок тонкого картона для стабилизации углов и стен.
  5. Склейте и скотчем соедините кусочки картона вместе.
  6. Красный конверт с поздравительной открыткой для обозначения выхода из лабиринта.

ИНСТРУМЕНТЫ

  1. Универсальный нож для разрезания картона.
  2. Стальная линейка для облегчения процесса резки.

Метод решения лабиринта

Есть несколько методов навигации по лабиринту. Если вы заинтересованы в их изучении, они очень хорошо описаны в следующей статье Википедии:

Я выбрал правило следования левой стене. Идея состоит в том, что робот будет удерживать стену с левой стороны, принимая следующие решения по мере прохождения лабиринта:

  1. Если есть возможность повернуть налево, сделайте это.
  2. В противном случае, если возможно, идите прямо.
  3. Если нельзя ехать налево или прямо, по возможности поверните направо.
  4. Если ничего из вышеперечисленного невозможно, значит, это тупик. Повернись.

Одно предостережение заключается в том, что метод может потерпеть неудачу, если в лабиринте есть петля. В зависимости от расположения петли робот может продолжать двигаться вокруг нее. Возможным решением этой проблемы было бы переключение робота на правило следования за правой стеной, если бы он осознал, что движется по петле. Я не включил это уточнение в свой проект.

ЭТАПЫ ПОСТРОЕНИЯ РОБОТА

Хотя LEGO Mindstorms EV3 очень универсален, он позволяет подключать не более одного датчика каждого типа к одному блоку. Два или более Brick можно было соединить гирляндой, но я не хотел покупать еще Brick, поэтому я использовал следующие датчики (вместо трех ультразвуковых датчиков): инфракрасный датчик, датчик цвета и ультразвуковой датчик. Это сработало. На парах фотографий ниже показано, как собрать робота. На первом фото каждой пары показаны необходимые детали, а на втором фото показаны те же детали, соединенные вместе.

Шаг 1: База робота

База робота
База робота

Первый шаг - построить основу робота, используя показанные детали. База робота показана в перевернутом виде. Маленькая L-образная деталь в задней части робота является опорой для спины. Он скользит по мере движения робота. Это нормально работает. В комплекте EV3 нет детали типа катящегося шарика.

Шаг 2: верх основания

Вершина базы
Вершина базы
Вершина базы
Вершина базы
Вершина базы
Вершина базы

Следующие 3 шага относятся к верхней части основания робота, датчику цвета и кабелям, которые представляют собой 10-дюймовые (26 см) кабели.

Шаг 3: Инфракрасные и ультразвуковые датчики

Инфракрасные и ультразвуковые датчики
Инфракрасные и ультразвуковые датчики
Инфракрасные и ультразвуковые датчики
Инфракрасные и ультразвуковые датчики

Далее идут инфракрасный датчик (слева от робота) и ультразвуковой датчик (справа). А также 4 штифта для крепления кирпича сверху.

Инфракрасный и ультразвуковой датчики расположены вертикально, а не горизонтально. Это обеспечивает лучшую идентификацию углов или концов стен.

Шаг 4: кабели

Кабели
Кабели

Присоедините кирпич и подключите кабели следующим образом:

  • Порт B: левый большой мотор.
  • Порт C: правый большой мотор.
  • Порт 2: ультразвуковой датчик.
  • Порт 3: датчик цвета.
  • Порт 4: инфракрасный датчик.

Шаг 5: Последний шаг в создании робота: украшение

Последний шаг в создании робота: украшение
Последний шаг в создании робота: украшение
Последний шаг в создании робота: украшение
Последний шаг в создании робота: украшение
Последний шаг в создании робота: украшение
Последний шаг в создании робота: украшение

Крылья и плавники служат только для украшения.

Шаг 6: Псевдокод для программы

  1. Подождите 3 секунды и скажите «Вперед».
  2. Запустите робота прямо вперед.
  3. Если можно повернуть налево (т. Е. Если инфракрасный датчик не обнаруживает объект поблизости), скажите «Влево» и пройдите налево.
  4. Пройдите вперед примерно на 6 дюймов (15 см), чтобы избежать ложного поворота влево. Причина в том, что после того, как робот повернулся, датчик будет видеть длинное пространство, из которого он только что вышел, и робот будет думать, что он должен повернуть налево, что неуместно. Вернитесь к шагу 2.
  5. Если повернуть налево невозможно, проверьте, что датчик цвета видит перед роботом.
  6. Если нет цвета (т.е. нет объекта), вернитесь к шагу 2.
  7. Если цвет красный, это выход. Остановите робота, сыграйте фанфары и остановите программу.
  8. Если цвет коричневый (т.е. впереди коричневый картон), остановите робота.

    1. Если можно повернуть направо (т. Е. Если ультразвуковой датчик не обнаруживает объект поблизости), скажите «Направо» и идите направо. Вернитесь к шагу 2.
    2. Если повернуть направо невозможно, скажите «Угу», отступите примерно на 5 дюймов (12,5 см) и развернитесь. Вернитесь к шагу 2.

Шаг 7: программа

Программа
Программа

LEGO Mindstorms EV3 имеет очень удобный метод программирования на основе значков. Блоки отображаются в нижней части экрана дисплея компьютера, и их можно перетаскивать в окно программирования для создания программы. На снимке экрана показана программа для этого проекта. Блоки описаны в следующем шаге.

Я не мог понять, как настроить загрузку программы для вас, ребята, поэтому блоки описаны в следующем шаге. У каждого блока есть опции и параметры. Это очень просто и универсально. Вам не потребуется много времени, чтобы разработать программу и / или изменить ее в соответствии с вашими потребностями. Как всегда, рекомендуется периодически сохранять программу при ее разработке.

Модуль EV3 можно подключить к компьютеру с помощью кабеля USB, Wi-Fi или Bluetooth. Когда он подключен и включен, это отображается в небольшом окне в правом нижнем углу окна EV3 на компьютере. «EV3» в правой части станет красным. Когда этот дисплей настроен на просмотр порта, он показывает в реальном времени, что обнаруживает каждый датчик. Это полезно для экспериментов.

При создании этой программы я бы посоветовал работать слева направо и сверху вниз, а также увеличивать блоки цикла и переключателя, прежде чем перетаскивать другие блоки внутрь. Я столкнулся с грязными проблемами, пытаясь вставить дополнительные блоки перед увеличением.

Шаг 8: программные блоки

  1. Начиная с левой стороны программы, блок запуска присутствует автоматически, когда программа разрабатывается.
  2. Далее следует блок ожидания, который дает нам 3 секунды, чтобы поместить робота у входа в лабиринт после запуска программы.
  3. Звуковой блок заставляет робота сказать «Иди».
  4. Блок цикла содержит большую часть программы. Изображение должно быть уменьшено в 4 или 5 раз, и этот блок цикла должен быть увеличен почти до правого края области программирования, прежде чем вы начнете вставлять блоки. Впоследствии его можно уменьшить.
  5. Первый блок внутри контура - это блок управления движением с нулевым рулевым управлением и значением мощности 20. Это запускает двигатели, работающие прямо вперед на низкой скорости. Более высокая скорость заставит робота уйти слишком далеко, если он продолжит движение вперед, говоря на последующих шагах.
  6. Блок переключателя в режиме приближения инфракрасного датчика проверяет, есть ли какой-либо объект дальше, чем значение 30. Это эквивалентно приблизительно 9 дюймам (23 см) для коричневого картона. Если значение больше 30, то выполняются блоки 7, 8 и 9, в противном случае программа переходит к блоку 10 ниже.
  7. Звуковой блок заставляет робота сказать «Влево».
  8. Блок управления перемещением с параметром «Рулевое управление» на -45, мощностью 20, вращением на 1,26 и торможением в конце, установленным на «Истина». Это заставит робота повернуть налево.
  9. Блок управления перемещением с рулевым управлением, установленным на ноль, мощностью 20, вращениями, установленными на 1,2, и тормозом в конце, установленным на True. Это заставляет робота двигаться вперед примерно на 6 дюймов (15 см), чтобы избежать ложного поворота влево.
  10. Блок переключателя в цветовом режиме измерения датчика цвета проверяет, какой цвет впереди робота. Если цвета нет (т.е. нет объекта), программа переходит к концу цикла. Если цвет красный, то выполняются блоки 11, 12 и 13. Если цвет коричневый, программа переходит к блоку 14 ниже.
  11. Переместите блок рулевого управления в выключенный режим, чтобы остановить двигатели.
  12. Звуковой блок играет фанфары.
  13. Блок прерывания цикла выходит из цикла.
  14. Переместите блок рулевого управления в выключенный режим, чтобы остановить двигатели.
  15. Блок переключателя в режиме сравнения расстояния в дюймах ультразвукового датчика проверяет наличие каких-либо объектов на расстоянии более 8 дюймов (20 см). Если он больше 8 дюймов, то выполняются блоки 16 и 17, в противном случае программа переходит к блоку 18 ниже.
  16. Звуковой блок заставляет робота сказать «Верно».
  17. Блок управления перемещением с параметром «Рулевое управление» на -55, «Мощность» на -20, «Число оборотов» на 1,1 и «Торможение в конце» на «Истина». Это заставит робота повернуть направо.
  18. Звуковой блок заставляет робота говорить «Ой-ой».
  19. Блок «Перемещение бака» с левой мощностью, установленной на -20, правой мощностью, установленной на -20, вращением, установленным на 1, и тормозом в конце, установленным на True. Это заставит робота приподняться на 5 дюймов (12,5 см), чтобы освободить место для поворота.
  20. Блок «Перемещение бака» с левой мощностью, установленной на -20, правой мощностью, установленной на 20, вращением, установленным на 1,14, и тормозом в конце, установленным на True. Это заставляет робота развернуться.
  21. На выходе из цикла находится программный блок остановки.

Шаг 9: ПОСТРОЙТЕ лабиринт

ПОСТРОЙТЕ лабиринт
ПОСТРОЙТЕ лабиринт
ПОСТРОЙТЕ лабиринт
ПОСТРОЙТЕ лабиринт
ПОСТРОЙТЕ лабиринт
ПОСТРОЙТЕ лабиринт

Для лабиринта должно хватить двух картонных коробок из гофрированного картона. Я сделал стены лабиринта высотой 5 дюймов (12,5 см), но 4 дюйма (10 см) тоже подойдут, если у вас не хватает гофрированного картона.

Сначала я обрезаю стенки картонных коробок на расстоянии 10 дюймов (25 см) от дна. Затем я обрезаю стены на 5 дюймов от дна. Это дает несколько 5-дюймовых стен. Кроме того, я обрезаю дно картонных коробок, оставляя около 2,5 см прикрепленных к стенкам для устойчивости.

Различные части можно вырезать и приклеить или приклеить лентой в любом месте, чтобы сформировать лабиринт. Между стенами должно быть расстояние 12 дюймов (30 см) на любом пути с тупиком. Это расстояние необходимо, чтобы робот мог развернуться.

Некоторые углы лабиринта, возможно, потребуется укрепить. Кроме того, некоторые прямые стены необходимо защитить от изгиба, если они включают выпрямленный угол картонной коробки. К нижней части в этих местах следует приклеить небольшие кусочки тонкого картона, как показано на рисунке.

У выхода есть красный барьер, состоящий из половины красного конверта с поздравительной открыткой и основы из двух кусков тонкого картона, как показано на рисунке.

Одно предостережение: лабиринт не должен быть большим. Если повороты робота находятся под небольшим углом от правильного, расхождения складываются после нескольких поворотов. Например, если левый поворот отклоняется на 3 градуса, то после 5 левых поворотов робот отклоняется на 15 градусов. В большом лабиринте будет больше поворотов и более длинный путь, чем в маленьком, и робот может врезаться в стены. Мне пришлось несколько раз повозиться с настройками вращения поворотов, чтобы добиться успешного прохождения даже небольшого лабиринта, который я сделал.

БУДУЩИЕ УЛУЧШЕНИЯ

Очевидный последующий проект - сделать так, чтобы робот мог определять прямой путь через лабиринт во время навигации по нему, а затем проехать по этому прямому пути (избегая тупиков) сразу после этого.

Это намного сложнее, чем текущий проект. Робот должен запомнить пройденный им путь, удалить тупики, сохранить новый путь и затем следовать по новому пути. Планирую поработать над этим проектом в ближайшее время. Я полагаю, что с LEGO Mindstorms EV3 можно добиться успеха, используя блоки операций с массивами и некоторые блоки, связанные с математикой.

ЗАКЛЮЧИТЕЛЬНОЕ ЗАМЕЧАНИЕ

Это был забавный проект. Надеюсь, вам это тоже интересно.

Рекомендуемые: