Код для поиска

ESP32 Урок 20/55 — Модуль отслеживания линии | Обучающий набор SunFounder для ESP32 IoT

ESP32 Урок 20/55 — Модуль отслеживания линии | Обучающий набор SunFounder для ESP32 IoT

В этом руководстве мы узнаем, как использовать модуль ESP32 вместе с модулем отслеживания линии для обнаружения черных линий на белой поверхности. Эта возможность необходима для таких приложений, как роботизированные автомобили, которым нужно следовать по заданному пути. Кроме того, мы интегрируем зуммер, который активируется, когда модуль отслеживания линии обнаруживает черную линию, улучшая механизм обратной связи нашего проекта. Для дальнейших разъяснений, пожалуйста, обратитесь к видео (в видео на 0:00).

line_track

Объяснение аппаратного обеспечения

Основными компонентами этого проекта являются модуль ESP32, модуль отслеживания линии и зуммер. Модуль ESP32 — это мощный микроконтроллер со встроенными возможностями Wi-Fi и Bluetooth, что позволяет использовать его в широком спектре приложений Интернета вещей. Модуль отслеживания линии использует инфракрасный излучатель и фоторезистор для обнаружения различий в цвете поверхности на основе интенсивности отраженного инфракрасного света.

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

Детали из технического описания

Производитель SunFounder
Номер детали TCRT5000
Логическое/IO напряжение 3,3 В до 5 В
Выходной ток (на канал) 20 мА
Пиковый ток (на канал) 50 мА
Время отклика < 10 мс
Диапазон обнаружения от 1 см до 5 см
Корпус Модуль с штыревыми контактами
Примечания / варианты Обычно используется в роботах, следующих по линии

 

  • Обеспечьте правильное питание (3,3 В или 5 В).
  • Содержите датчик в чистоте для точных показаний.
  • Отрегулируйте чувствительность с помощью встроенного потенциометра.
  • Проверьте соединения, чтобы избежать плавающих входов.
  • При необходимости используйте подтягивающие резисторы для стабильных показаний.
  • Минимизируйте помехи от окружающих инфракрасных источников.

Инструкции по подключению

ESP32-20_line-tracking-wiring

Чтобы подключить модуль отслеживания линии к ESP32, начните с подключения контакта заземления модуля к контакту заземления на ESP32. Затем подключите контакт V+ модуля отслеживания линии к подходящему источнику питания, либо 3,3 В, либо 5 В на ESP32. Сигнальный контакт (обозначенный как S) должен быть подключен к GPIO 14 на ESP32. Убедитесь, что эти соединения надежны, прежде чем продолжить.

Если вы используете зуммер, подключите его отрицательный вывод к земле, а положительный вывод к GPIO 27 на ESP32. Эта настройка позволяет зуммеру активироваться, когда модуль отслеживания линии обнаруживает черную линию. Обязательно перепроверьте все соединения, чтобы убедиться, что они соответствуют указанным контактам в коде.

ESP32-20_line-tracking-schemtaic

Примеры кода и пояснения

Ниже приведен ключевой фрагмент кода, который настраивает модуль отслеживания линии. Переменная linePin определена для представления контакта, подключенного к модулю отслеживания линии.

const int linePin = 14;  // Номер контакта модуля отслеживания линии

Эта строка инициализирует linePin как контакт 14, который будет использоваться для чтения состояния линии. Переменная lineState будет хранить результат с датчика.

В функции setup() мы настраиваем режим контакта для linePin как вход.

void setup() {
  Serial.begin(115200);  
  pinMode(linePin, INPUT);
}

Это гарантирует, что ESP32 может считывать состояние модуля отслеживания линии. Последовательная связь инициируется со скоростью 115200 бод для мониторинга вывода.

Наконец, в функции loop() мы непрерывно считываем состояние модуля отслеживания линии и выводим обнаруженный цвет.

void loop() {
  lineState = digitalRead(linePin);
  if (lineState == HIGH) {
    Serial.println("Black");
    delay(100);
  } else {
    Serial.println("White");
    delay(100);
  }
}

Этот цикл проверяет, является ли lineState HIGH (указывает на черный) или LOW (указывает на белый), и выводит результат в последовательный монитор. Полный код загружается ниже статьи для вашего ознакомления.

Демонстрация / Что ожидать

После завершения подключения и загрузки кода вы должны наблюдать, как ESP32 выводит "Black", когда модуль отслеживания линии находится над черной поверхностью, и "White", когда он находится над белой поверхностью. Кроме того, зуммер будет звучать, когда модуль обнаружит черную линию, обеспечивая звуковой сигнал. Будьте осторожны с настройками потенциометра, так как чрезмерно чувствительные настройки могут привести к нестабильному поведению (в видео на 10:00).

Временные метки видео

  • 00:00 Начало
  • 2:22 Введение в модуль отслеживания линии
  • 5:10 Страница документации
  • 9:20 Объяснение подключения
  • 10:49 Объяснение кода Arduino
  • 13:36 Выбор платы ESP32 и COM-порта в Arduino IDE
  • 15:18 Демонстрация
  • 18:15 Проект: отслеживание линии с зуммером
  • 19:52 Код Arduino для отслеживания линии и зуммера
  • 20:52 Демонстрация

Изображения

ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-wiring
ESP32-20_line-tracking-wiring
line_track
line_track
819-ESP32 Tutorial 20/55- Arduino code line tracking
Язык: C++
/*
 * Установить номер пина
 */
const int linePin = 14; // Номер выхода модуля трековой линии

 // Переменная для хранения статуса линии
int lineState = 0;

void setup() {
  Serial.begin(115200);
 // Инициализируйте вывод модуля трековой линии как входной.
  pinMode(linePin, INPUT);
}

void loop() {
 // Считайте состояние модуля трековых линий.
  lineState = digitalRead(linePin);

  if (lineState == HIGH) {
    Serial.println("Black");
    delay(100);
  }
  else {
    Serial.println("White");
    delay(100);
  }
}

Файлы📁

Нет доступных файлов.