Оглавление:
Видео: Как сделать следящего за линией с помощью Arduino: 8 шагов (с изображениями)
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
By miniProjectsminiProjectsСледуйте Еще от автора:
О нас: посмотрите мой канал на YouTube, есть похожие проекты. Подробнее о миниПроектах »
Если вы только начинаете заниматься робототехникой, один из первых проектов, создаваемых новичком, включает в себя последователя линии. Это особая игрушечная машинка, способная двигаться по линии, которая обычно имеет черный цвет и контрастирует с фоном.
Давайте начнем.
Шаг 1. Видео
Прикрепил подробное видео. Пожалуйста, взгляните.
Шаг 2: основные блоки
Мы можем разделить последователя линии на четыре основных блока. ИК-фотодиодные датчики, драйвер двигателя, Arduino nano / code и шасси игрушечной машины, а также пластиковые колеса и двигатели постоянного тока 6 В. Давайте посмотрим на эти блоки по очереди.
Шаг 3: ИК-фотодиодный модуль (часть 1 из 3)
Работа ИК-фотодиодного датчика в линейном повторителе заключается в том, чтобы определить, есть ли под ним черная линия. ИК-свет, излучаемый ИК-светодиодом, отражается от поверхности под ним и фиксируется фотодиодом. Ток через фотодиод пропорционален фотонам, которые он получает, и физика утверждает, что черный цвет поглощает ИК-излучение, поэтому, если у нас есть черная линия под фотодиодом, он получает меньше фотонов, что приводит к меньшему току по сравнению с тем, если бы у него была отражающая поверхность, такая как белая под ним.
На следующем шаге мы преобразуем этот сигнал тока в сигнал напряжения, который Arduino сможет считать с помощью digitalRead.
Шаг 4: ИК-фотодиодный модуль (часть 2 из 3)
Ток фотодиода пропускается через резистор 10 кОм для создания пропорционального падения напряжения, назовем его Vphoto. Если под ним есть белая поверхность, ток фотодиода возрастает и, следовательно, Vphoto, с другой стороны, для черной поверхности оба уменьшаются. Vphoto подключен к неинвертирующему терминалу операционного усилителя LM741. В этой конфигурации, если напряжение на неинвертирующей клемме (+) больше напряжения на инвертирующей клемме (-), выход операционного усилителя устанавливается на ВЫСОКИЙ и НИЗКИЙ, в противном случае. Мы осторожно устанавливаем напряжение на инвертирующем выводе, чтобы оно находилось между показаниями напряжения для белого и черного цветов с помощью потенциометра. При этом выход этой схемы будет высоким для белого и низким для черного цвета, что идеально подходит для чтения Arduino.
Я пометил прикрепленные изображения в порядке их описания для лучшего понимания.
Шаг 5: ИК-фотодиодный модуль (часть 3 из 3)
Одного ИК-фотодиодного датчика недостаточно для создания повторителя линии, так как мы не будем знать направление выхода, чтобы компенсировать использование двигателей. Поэтому я использовал сенсорный модуль, содержащий схему из 6 ИК-фотодиодов, показанную на прилагаемом изображении. 6 ИК-фотодиодов размещаются как 3 кластера в паре из 2-х кластеров. Если центральный кластер считывается черным, а два других - белым, мы можем продолжать движение вперед. Если левый кластер отображается как черный, нам нужно повернуть ведомого влево, чтобы он не сбивался с пути. То же самое относится к правому кластеру.
Шаг 6: Драйвер мотора
Для перемещения ведомого я использую два двигателя постоянного тока 6 В, которые управляются с помощью драйвера двигателя L293D. Если двигатель подключен, как показано на прилагаемом изображении номер 4, установка включения и вывода 1A на высокий уровень вместе с выводом 2A на низкий уровень перемещает двигатель в одном направлении. Чтобы переместить его в другом направлении, нам нужно поменять местами контакты 2A и 1A. Нам не понадобится двунаправленный момент, так как последователь всегда движется вперед. Чтобы повернуть налево, мы отключаем левый двигатель, в то время как правый двигатель продолжает работать, и наоборот.
Шаг 7: Arduino Nano и код
5V arduino nano, работающий на частоте 16 МГц, решает, должен ли ведомый повернуть вправо или влево. Решения принимаются, глядя на показания матрицы ИК-фотодиодов. Прикрепленный код arduino управляет перемещением последователя. В следующем абзаце показан код Arduino сверху.
Изначально мы декларируем 6 контактов датчика и 4 контакта двигателя. В настройке мы устанавливаем выводы двигателя на вывод, поскольку по умолчанию используется режим ввода. В цикле сначала мы читаем все выводы датчика, после чего идет цепочка операторов if-else, которые определяют движение ведомого. Некоторые заявления помогают ему двигаться вперед. Некоторые утверждения помогают ему остановиться, а некоторые позволяют двигаться влево или вправо.
Введите код и дайте мне знать, если у вас возникнут проблемы.
Шаг 8: Схема и ОТДЕЛКА
Наконец, все было собрано в соответствии с прилагаемой схемой с использованием нескольких проводов и макета. Итак, у вас есть линия, следующая за игрушечной машинкой.
Спасибо за прочтение.
Надеюсь увидеть изображение вашего последователя в комментариях.