Схемы

Как построить робота - Урок 3. Создание робота для отслеживания линий: 16 шагов

Моя недотрога классное исполнение под гармонь

Моя недотрога классное исполнение под гармонь

Оглавление:

Anonim

Выполнив основные функции, мы готовы предоставить роботу Arduino улучшенную возможность - Line-tracking!

В этом уроке вы научитесь шаг за шагом создавать робота Arduino для отслеживания линий. Чтобы сделать это руководство легким для ознакомления, в качестве примера используется комплект робота Arduino (Pirate: 4WD Arduino Mobile Robot Kit с Bluetooth 4.0).

Меню уроков:

Урок 1: Введение

Урок 2. Создание базового робота Arduino

Урок 3: Создание робота Arduino для отслеживания линий

Урок 4: Создайте робота Arduino, который мог бы избежать препятствий

Урок 5: Создание робота Arduino со световыми и звуковыми эффектами

Урок 6: Создайте робота Arduino, который мог бы контролировать среду

Урок 7. Создание робота Arduino, управляемого Bluetooth

Детали оборудования, которые могут вам понадобиться:

Датчик отслеживания линии (следующий) для Arduino × 3

Расходные материалы:

Шаг 1:

Ширина 2,5 см. Черная электрическая лента × 1

Шаг 2:

1M * 1M Белая доска × 1

Шаг 3:

M3 * 30MM Нейлоновая опора (винты, гайки) × 3

Шаг 4:

Руководство по сборке

Собрать робота Arduino несложно. Пожалуйста, следуйте следующей инструкции.

Шаг 1:

Во-первых, вам нужно 3 нейлоновых опоры и прилагаемые к ним винты и гайки.

Шаг 5:

Шаг 2: Присоединение нейлоновых опор

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

Шаг 6:

Шаг 3: Сборка платы датчика

Снимите верхнюю плиту с роботизированной платформы. Затем прикрепите плату датчика к передней части платформы.

Шаг 7:

Шаг 4: Сборка датчика отслеживания линии

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

Шаг 8:

Подключение оборудования

После сборки датчиков не спешите снова устанавливать верхнюю пластину платформы - перед этим нам нужно сначала подключить датчики с BLE Romeo.

На рисунке слева показано правильное расположение датчиков ABC на плате датчиков в соответствии с ABC, которое соответствует контактам 10, 9 и 8 на BLE Romeo. При подключении датчиков убедитесь, что вы подключили их в правильной последовательности. После подключения датчиков снова прикрепите верхнюю плиту платформы обратно к основанию.

Шаг 9:

Регулировка датчиков

Перед загрузкой кода нам нужно настроить наши датчики. Сначала подключите USB-кабель к BLE Romeo (плата управления роботом Arduino с Bluetooth 4.0), чтобы обеспечить его питание. Как видно на рисунке ниже, датчик ниже имеет головку винта Philips; эту головку винта можно использовать для регулировки определения расстояния датчика. Возьмите белый лист бумаги и поместите его под датчик датчика (цвет бумаги используется для калибровки). Возьмите отвертку и используйте ее, чтобы затянуть головку винта Philips. Вы почувствуете, как зонд датчика физически перемещается вверх и вниз в зависимости от того, насколько плотно вы затянули головку винта. Вы также увидите, что светодиод датчика загорится, как только вы начнете затягивать. Затягивайте головку винта, пока точка зонда не окажется примерно на 2 см выше листа бумаги.

Шаг 10:

кодирование

Подключите свой USB. Загрузите код Arduino с именем «HuntingLineBlack.ino» с GitHub. Нажмите кнопку «Загрузить» в Arduino IDE, чтобы загрузить код на панель управления BLE.

Шаг 11:

Настройка пути вашего робота Arduino

Вынь свою доску. Используйте изоленту шириной 2,5 см, чтобы проложить дорожку на доске, как показано на рисунке ниже.

Шаг 12:

Ширина провода составляет примерно 2,5 см, приблизительное расстояние между датчиками A и C. Мы выбрали путь выше по причинам, связанным с кодом; более поздний раздел объяснит это рассуждение более тщательно.

Шаг 13:

Коробка передач: как это работает

Как заставить робота оставаться на своем пути? Мы должны убедиться, что робот последовательно расположен в середине дорожки. Робот использует свои 3 датчика трансмиссии для калибровки своего положения относительно гусеницы - как только он отклонится в сторону, робот самонастроится назад к середине.

Когда наш робот движется, произойдут три условия.

Шаг 14:

(a) Когда робот впервые начинает двигаться по дорожке, только средний датчик (B) обнаруживает черную линию - левый и правый датчики еще не вступили в игру. Автомобиль останется по центру трассы и будет двигаться вперед.

Шаг 15:

(b) После продолжения своего движения робот может начать отклоняться от центра. При этих обстоятельствах левый и правый датчики попытаются обнаружить черную линию и направить робота обратно к дорожке. Например, если робот поворачивает к правой стороне гусеницы, автомобиль должен будет перецентрироваться, поворачиваясь влево - левый датчик сработает и автоматически повернет робота, пока он не перецентрируется.

Шаг 16:

(c) И наоборот, если робот поворачивает к левой стороне дорожки, правый датчик сработает и отрегулирует путь робота, пока он не перецентрируется.

Сводка кода

Нет необходимости обсуждать основной код - давайте просто посмотрим на часть, касающуюся передачи.

int RightValue; // Правый датчик трактора на выводе 8

int MiddleValue; // Датчик трактора средней линии на выводе 9

int LeftValue; // Датчик трактора левой линии на выводе 10

// чтение значений 3 пинов датчика слежения за линией

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Используйте три переменные - RightValue, MiddleValue, LeftValue - для записи значений считывания 3 датчиков.

Функция digitalRead (pin) используется для считывания значения порта цифрового ввода / вывода. Если эта часть все еще неясна, пожалуйста, ознакомьтесь с нашим Терминологическим руководством или веб-сайтом Arduino.

Когда средний датчик передачи обнаружит черную линию (дорожку), он выдаст НИЗКУЮ выходную энергию. Когда они обнаруживают пустое пространство, они производят ВЫСОКУЮ энергию.

Приведенный ниже пример А иллюстрирует принципы работы кода передачи. Когда средний датчик обнаруживает черную линию (дорожку), он вырабатывает НИЗКУЮ энергию. Когда левый / правый датчики обнаружат пустое пространство, они произведут ВЫСОКИЙ выход.

if (MiddleValue == LOW) {// строка в середине Robot.Speed ​​(100,100); задержка (10);}

иначе if ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); задержка (10);}

Если датчики обнаружат черную линию / дорожку слева, а также обнаружат пустое пространство справа, робот повернет налево. Смотрите пример B ниже:

иначе if ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // повернуть налево с задержкой (10);}

И наоборот, если датчики обнаруживают черную линию / дорожку справа, а также обнаруживают пустое пространство слева, робот поворачивает направо. Смотрите пример C ниже:

иначе if ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // повернуть вправо с задержкой (10);}