Робот движущийся по линии на Arduino

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

По сути, существует два типа роботов, движущийся по линии: первый — это робот движущийся по черной линии, а второй — робот движущийся по белой линии. Данный робот фактически видит линию и следует по ней. Хотя идея звучит просто, но не самые умные роботы, подобные этому, практически используются во многих областях, таких как производство или склад. Мы же собрали своего робота, движущегося по линии, с помощью Arduino UNO. Демонстрационное видео, можете посмотреть ниже:

Как робот движется по линии

Движение по линии

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

Белая поверхность

Черная поверхность

В этом роботе, на базе Arduino, мы использовали ИК-передатчики и ИК-приемники, также называемые фотодиодами. Данные фотодиоды используются для отправки и получения сигнала света. ИК-передатчик передает инфракрасное излучение. Когда инфракрасные лучи падают на белую поверхность, они отражаются обратно и улавливаются фотодиодами, которые генерируют некоторые изменения напряжения. Когда инфракрасный свет падает на черную поверхность, то свет поглощается черной поверхностью, и никакие лучи не отражаются обратно, поэтому фотодиод не получает никакого сигнала. В нашем же роботе, когда датчик обнаруживает белую поверхность, Arduino получает, в качестве входных данных, сигнал (1) , а когда видит черную линию, то Arduino получает сигнал (0).

Читать также:  Использование камеры на Raspberry Pi

Описание схемы

Всего робота, движущегося по линии, можно разделить на 3 части: часть датчиков, часть управления и часть драйвера.

Датчики:

Эта часть содержит ИК-диоды, потенциометр, компаратор (операционный усилитель) и светодиоды. Потенциометр используется для установки опорного напряжения на одном выводе компаратора, а ИК-датчики используются для обнаружения линии и обеспечения изменения напряжения на втором выводе компаратора. Затем компаратор сравнивает оба напряжения и формирует на выходе цифровой сигнал. В этой схеме мы использовали два компаратора для двух датчиков. В качестве компаратора используется LM 358. LM358 имеет два встроенных малошумящих операционных усилителя.

Управление:

Arduino UNO используется для управления всем процессом робота, движущегося по линии. Выходы компараторов подключены к цифровым пинам (контактам) 2 и 3 платы Arduino. Arduino считывает эти сигналы и отправляет команды в схему драйвера для правильной работы трансмиссии.

Драйвер:

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

Работа робота движущегося по линии

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

Читать также:  Датчик Холла — датчик магнитного поля

Работа робота

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

Робот движется вперед

Если левый датчик попадает на черную линию, то робот поворачивает влево.

Робот поворачивает влево

Если правый датчик видит черную линию, то робот поворачивает вправо, пока оба датчика не окажутся на белой поверхности. Когда оба датчика видят белую поверхность, робот снова начинает двигаться вперед.

Робот поворачивает вправо

Если оба датчика попадают на черную линию, робот останавливается.

Робот останавливается

Принципиальная электрическая схема

Схема движущегося по линии робота
Принципиальная электрическая схема робота

Полная принципиальная схема робота движущегося по линии на Arduino показана выше. Как видите, выход компараторов напрямую подключен к цифровым контактам 2 и 3 платы Arduino. Входные контакты 2, 7, 10 и 15 драйвера двигателя подключены к цифровым контактам платы Arduino 4, 5, 6 и 7 соответственно. И один двигатель подключен к выходным контактам драйверов двигателей 3 и 6, а другой двигатель подключен к контактам 11 и 14.

Описание программы

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

Читать также:  PHP для Arduino — часть 2

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

ВХОД ВЫХОД Движение робота
Левый датчик Правый датчик Левый двигатель Правый двигатель
LS RS LM1 LM2 RM1 RM2
( 0 ) ( 0 ) ( 0 ) ( 0 ) ( 0 ) ( 0 ) Остановка
( 0 ) ( 1 ) ( 1 ) ( 0 ) ( 0 ) ( 0 ) Поворот направо
( 1 ) ( 0 ) ( 0 ) ( 0 ) ( 1 ) ( 0 )  Поворот налево
( 1 ) ( 1 ) ( 1 ) ( 0 ) ( 1 ) ( 0 ) Движение вперед

Код пишется в соответствии с условиями, показанными в таблице выше.

Требуемые компоненты

Ардуино

Ардуино уноВ нашем проекте мы использовали микроконтроллер для управления всем процессом системы ARDUINO. Arduino — это аппаратное обеспечение с открытым исходным кодом, очень полезное для разработки проектов. В продаже доступно множество типов плат Arduino, таких как Arduino UNO, arduino mega, arduino pro mini, Lilypad и т.д. В этом мини-проекте мы использовали Arduino UNO.

Драйвер двигателя L293D

L293DL293D — это микросхема драйвера двигателя, которая имеет два канала для управления двумя двигателями. L293D имеет две пары встроенных транзисторов Дарлингтона для усиления тока и отдельный вывод питания для подачи внешнего питания на двигатели.

ИК-датчик

ИК-датчикИК-датчик представляет собой схему датчика, состоящую из пары ИК-светодиод/фотодиод, потенциометра, LM358, резисторов и светодиода. ИК-датчик передает инфракрасный свет, а фотодиод принимает инфракрасный свет.

Источник питания

Мы добавили регулятор напряжения, чтобы получить 5 вольт для питания платы Arduino, компаратора и драйвера двигателя. А для питания схемы используется 9-вольтовая батарея.

Полный код программы

Сборка робота
Примерная сборка робота

С Уважением, МониторБанк

Добавить комментарий