Как сделать препятствие избегая робота с помощью Arduino?
Мир движется быстро, и технологии также движутся вместе с ним в области робототехники. Приложения робототехники можно увидеть повсюду в мире. Концепция мобильных или автономных роботов, которые перемещаются без какой-либо внешней помощи, является самой глубокой областью исследований. Существует так много типов мобильных роботов, например, интерпретаторы Self Localization and Mapping (SLAM), слежение за линией, боты сумо и т. Д. Робот, избегающий препятствий, является одним из них. Он использует технику, чтобы изменить путь, если он обнаруживает любое препятствие на своем пути.
(Изображение предоставлено: Дайджест схемы)
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
В этом проекте разработан робот, избегающий препятствий на основе Arduino, который будет использовать ультразвуковой датчик для обнаружения всех препятствий на своем пути.
Как избежать препятствий с помощью ультразвукового датчика?
Поскольку мы знаем реферат нашего проекта, давайте сделаем шаг вперед и соберем немного информации для начала проекта.
Шаг 1: Сбор компонентов
Лучший подход к запуску любого проекта – составить список полных компонентов в начале и кратко изучить каждый компонент. Это помогает нам избежать неудобств в середине проекта. Полный список всех компонентов, используемых в этом проекте, приведен ниже.
Шаг 2: Изучение компонентов
Теперь, когда у нас есть полный список всех компонентов, давайте сделаем шаг вперед и кратко рассмотрим работу каждого компонента.
Arduino nano – это макроконтроллерная плата, удобная для макета, которая используется для управления или выполнения различных задач в цепи. Мы записываем код C на Arduino Nano, чтобы сообщить плате микроконтроллера, как и какие операции выполнять. Arduino Nano обладает точно такой же функциональностью, что и Arduino Uno, но довольно небольшого размера. Микроконтроллер на плате Arduino Nano – ATmega328p.
Ардуино Нано
L298N представляет собой интегральную схему с высоким током и высоким напряжением. Это двойной полный мост, разработанный для принятия стандартной логики TTL. Он имеет два входных входа, которые позволяют устройству работать независимо. Два двигателя могут быть подключены и работать одновременно. Скорость двигателей варьируется через штырьковые шипы. Широтно-импульсная модуляция (ШИМ) – это метод, в котором можно контролировать поток напряжения в любом электронном компоненте. Этот модуль имеет H-мост, который отвечает за управление направлением вращения в двигателях путем инвертирования направления тока. Вывод разрешения A и вывод разрешения B используются для изменения скорости обоих двигателей. Этот модуль может работать между 5 и 35 В и пиковым током до 2 А. Входной контакт 1 и входной контакт 2 и для первого двигателя и входной контакт 3 и входной контакт 4 предназначены для второго двигателя.
L298N Драйвер мотора
Плата HC-SR04 – это ультразвуковой датчик, который используется для определения расстояния между двумя объектами. Он состоит из передатчика и приемника. Передатчик преобразует электрический сигнал в ультразвуковой сигнал, а приемник преобразует ультразвуковой сигнал обратно в электрический сигнал. Когда передатчик посылает ультразвуковую волну, он отражается после столкновения с определенным объектом. Расстояние рассчитывается с использованием времени, которое требуется ультразвуковому сигналу, чтобы пройти от передатчика и вернуться к приемнику.
Ультразвуковой датчик
Шаг 3: Сборка компонентов
Теперь, когда мы теперь знаем работу большинства используемых компонентов, давайте начнем собирать все компоненты и создать робота, избегающего препятствий.
- Возьмите автомобильные колесные каркасы и наклейте макет на его верх. Установите ультразвуковой датчик в передней части шасси и крышку батарейного отсека за шасси.
- Закрепите плату Arduino Nano на макетной плате и прикрепите привод мотора прямо за макетной платой на шасси. Подключите контакты включения обоих двигателей к контактам 6 и 9 от Arduino nano. Контакты In1, In2, In3 и In4 модуля драйвера двигателя подключены к контактам 2, 3, 4 и 5 Arduino nano соответственно.
- Триггерный и эхо-контакт ультразвукового датчика подключен к контактам 11 и 10 на Arduino nano соответственно. Vcc и контакт заземления ультразвукового датчика подключены к 5 В и заземлению Arduino Nano.
- Модуль контроллера мотора питается от батареи. Плата Arduino Nano получает питание от порта 5 В модуля драйвера двигателя, а ультразвуковой датчик получает питание от платы Arduino Nano. вес и энергия аккумуляторов могут стать определяющим фактором их работы.
- Убедитесь, что ваши соединения такие же, как показано ниже на принципиальной схеме.Принципиальная электрическая схема
Шаг 4: Начало работы с Arduino
Если вы еще не знакомы с Arduino IDE, не беспокойтесь, потому что пошаговая процедура настройки и использования Arduino IDE с платой микроконтроллера описана ниже.
- Загрузите последнюю версию Arduino IDE с Arduino.
- Подключите плату Arduino Nano к ноутбуку и откройте панель управления. на панели управления нажмите на Оборудование и звук. Теперь нажмите на устройства и принтеры. Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но он отличается на разных компьютерах.Поиск порта
- Нажмите на меню инструментов. и установите плату Arduino Nano из выпадающего меню.Настольная доска
- В том же меню «Инструменты» установите для порта номер порта, который вы видели ранее в «Устройствах и принтерах».Настройка порта
- В том же меню «Инструменты» установите для процессора значение «ATmega328P» («Старый загрузчик»).процессор
- Загрузите приведенный ниже код и вставьте его в свою Arduino IDE. Нажмите на кнопку загрузки, чтобы записать код на вашей плате микроконтроллера.Загрузить
Чтобы скачать код, кликните сюда.
Шаг 5: Понимание кода
Код хорошо прокомментирован и не требует пояснений. Но все же, это объясняется ниже
1. В начале кода инициализируются все контакты платы Arduino Nano, подключенные к ультразвуковому датчику и модулю привода двигателя. Pin6 и Pin9 – это выводы PWM, которые могут изменять поток напряжения для изменения скорости робота. Две переменные, продолжительность и расстояние инициализируются для хранения данных, которые впоследствии будут использоваться для расчета расстояния ультразвукового датчика и препятствия.
int enable1pin = 6; // Пины для первого мотора
int motor1pin1 = 2;
int motor1pin2 = 3;
int enable2pin = 9; // Контакты для второго мотора
int motor2pin1 = 4;
int motor2pin2 = 5;
const int trigPin = 11; // Пусковой контакт ультразвукового Сеснора
const int echoPin = 10; // Echo Pin ультразвукового Sesnor
большая продолжительность; // переменные для расчета расстояния
дистанция плавания;
2. void setup () – это функция, которая используется для установки всех используемых выводов, таких как INPUT и OUTPUT. Скорость передачи данных определяется в этой функции. Скорость в бодах – это скорость связи, посредством которой плата микроконтроллера взаимодействует с интегрированными в нее датчиками.
настройка void ()
{
Serial.begin (9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode (enable1pin, OUTPUT);
pinMode (enable2pin, OUTPUT);
pinMode (motor1pin1, OUTPUT);
pinMode (motor1pin2, OUTPUT);
pinMode (motor2pin1, OUTPUT);
pinMode (motor2pin2, OUTPUT);
}
3. void loop () – это функция, которая повторяется в цикле. В этой функции мы сообщаем плате микроконтроллера, как и какие операции выполнять. Здесь, во-первых, триггерный вывод настроен на отправку сигнала, который будет обнаружен эхо-контактом. Затем рассчитывается время, которое требуется ультразвуковому сигналу для перемещения от датчика и обратно к датчику, и сохраняется в переменной длительности. Затем это время используется в формуле для расчета расстояния до препятствия и ультразвукового датчика. Затем применяется условие, что если расстояние больше 5 см, робот будет двигаться вперед по прямой линии, а если расстояние меньше 50 см, робот сделает крутой поворот вправо.
void loop ()
{
digitalWrite (trigPin, LOW); // Отправка и обнаружение ультразвукового сигнала
delayMicroseconds (2);
digitalWrite (trigPin, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin, LOW);
длительность = pulseIn (echoPin, HIGH); // Вычисление времени, принимаемого ультразвуковой волной для отражения назад
расстояние = 0,034 * (длительность / 2); // Расчет расстояния между тобой и роботом и препятствием.
if (distance> 50) // Двигаться вперед, если расстояние больше 50 см
{
digitalWrite (enable1pin, HIGH);
digitalWrite (enable2pin, HIGH);
digitalWrite (motor1pin1, HIGH);
digitalWrite (motor1pin2, LOW);
digitalWrite (motor2pin1, HIGH);
digitalWrite (motor2pin2, LOW);
}
иначе if (distance <50) // Резкий поворот направо, если расстояние меньше 50 см { digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, LOW); digitalWrite (motor2pin2, LOW); } задержки (300); }
Приложения
Итак, здесь была процедура создания робота, избегающего препятствий. Эту технологию избегания препятствий можно использовать и в других приложениях. Некоторые из этих приложений следующие.
- Система слежения.
- Цели измерения расстояния.
- Это может быть использовано в автоматических пылесосах роботов.
- Это может быть использовано в палках для слепых людей.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)