Интуитивно понятный робот для решения лабиринта: 3 шага
Интуитивно понятный робот для решения лабиринта: 3 шага
Anonim
Интуитивно понятный робот для решения лабиринта
Интуитивно понятный робот для решения лабиринта

В этом руководстве вы узнаете, как создать робота, решающего лабиринты, который решает лабиринты, нарисованные людьми.

В то время как большинство роботов решают нарисованные лабиринты первого типа (вы должны следовать линиям, это пути), нормальные люди склонны рисовать лабиринты второго типа. Для робота это намного сложнее и требовательнее, но не невозможно!

Шаг 1: Шаг 1: решение лабиринта

Шаг 1: решение лабиринта
Шаг 1: решение лабиринта

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

В этом методе мы говорим роботу:

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

На изображении вы видите, как лабиринт решается таким образом. Этот метод часто называют «Следование за стеной». Пока целью является выход во внешней стене, «Следование за стеной» его найдет.

Шаг 2: Шаг 2: Заказ запасных частей

Шаг 2: Заказ запасных частей
Шаг 2: Заказ запасных частей

Для этого робота нам понадобятся:

  • 1 × Arduino Uno
  • Держатель для батареек 1 × 4 AA
  • 3 датчика TCRT5000 (QTR-1A)
  • 2 × 6V двигатели постоянного тока
  • 13 × мужской-женский провод макета
  • 10 × женский-женский макетный провод
  • Заголовок штыря с как минимум 29 штырями
  • Паяльное оборудование

Кроме того, загрузите и установите Arduino IDE для разработки на вашем Arduino и убедитесь, что ваш Arduino поставляется с USB-кабелем типа A / B для подключения к компьютеру.

Шаг 3: Шаг 3: Считывание с датчика

Шаг 3. Считайте данные с датчика
Шаг 3. Считайте данные с датчика
Шаг 3. Считайте данные с датчика
Шаг 3. Считайте данные с датчика

Датчики TCRT5000 состоят из инфракрасного светодиода (синий шар) и приемника (черный шар).

Когда светодиод излучает инфракрасный свет на белую поверхность, он отражается в приемнике и возвращает низкое значение (40 ~ 60 в моем случае). Когда светодиод излучает свет на черную поверхность, он поглощается и возвращает высокое значение (700 ~ 1010 в моем случае)

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

Теперь нам просто нужно подключить Arduino к нашему компьютеру, поместить следующий код в Arduino IDE и скомпилировать его:

// Измените A0 на любой порт, к которому вы подключили датчик, на # define FRONT_SENSOR A0void start () {Serial.begin (9600); } void loop () {int frontValue = analogRead (FRONT_SENSOR); Serial.println (frontValue);}

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