Оглавление:

Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC: 6 шагов (с изображениями)
Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC: 6 шагов (с изображениями)

Видео: Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC: 6 шагов (с изображениями)

Видео: Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC: 6 шагов (с изображениями)
Видео: OpenCV. #3 Робот ездящий по линии 2024, Июль
Anonim
Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC
Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC

Привет!

Это моя первая статья об инструкциях, и сегодня я собираюсь познакомить вас с дорогой и объяснить, как построить линию на основе PID, следующего за роботом, с использованием массива датчиков QTR-8RC.

Прежде чем приступить к созданию робота, нам нужно понять, что называется PID,

Шаг 1: принцип работы

Что такое PID ??

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

ключевые термины, указанные в документах Polalu

Пропорциональное значение приблизительно пропорционально положению вашего робота относительно линии. То есть, если ваш робот точно отцентрирован на линии, мы ожидаем, что пропорциональное значение будет ровно 0

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

Производная - это скорость изменения пропорционального значения

В этом уроке мы будем говорить только о терминах Kp и Kd, однако результаты могут быть получены и с использованием члена Ki. Показания, которые мы получаем от датчика, являются не только аналоговыми показаниями, но и позиционными показаниями робота. Так что в основном датчик обеспечивает значения от 0 до 2500 в диапазоне от максимальной отражательной способности до минимальной, но в то же время также предоставляет информацию о том, как далеко робот застрял от линии.)

Теперь нам нужно рассмотреть термин ошибки, это разница между двумя значениями заданного значения и текущего значения. (Заданное значение - это показание, которое соответствует «идеальному» размещению датчиков над строками. И Текущее значение value - это мгновенные показания датчика. Например: если вы используете этот матричный датчик и используете 8 датчиков, вы получите показание положения 3500, если вы находитесь на месте, около 0, если вы слишком далеко от линии и около 7000, если вы слишком правы.). Наша цель - свести ошибку к нулю. Только тогда робот сможет плавно следовать за линией.

Затем идет расчетная часть.

1) вычислить погрешность.

Ошибка = заданное значение - текущее значение = 3500 - положение

Как я использую 8 датчиков. датчик дает показание 3500, когда робот расположен идеально. Теперь, когда мы рассчитали нашу ошибку, то есть запас, с которым наш робот дрейфует по трассе, пришло время тщательно изучить ошибку и соответствующим образом отрегулировать скорость двигателя.

2) определить настроенные скорости двигателей.

MotorSpeed = Kp * Error + Kd * (Ошибка - LastError);

LastError = Ошибка;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Логично говоря, ошибка 0 означает, что наш робот находится слева, а это означает, что нашему роботу нужно немного повернуть вправо, что, в свою очередь, означает, что правый двигатель должен замедлиться, а левый двигатель должен ускориться. ЭТО ПИД!

Значение MotorSpeed определяется из самого уравнения. RightBaseSpeed и LeftBaseSpeed - это скорости (любое значение PWM 0–255), на которых работает робот, когда ошибка равна нулю.

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

Если у вас возникнут проблемы при реализации вашего робота, просто проверьте, есть ли, и посмотрите, изменив знаки уравнений !!!

А теперь самая сложная часть ПОИСКА Kp И Kd, мне пришлось потратить более 1 часа, чтобы идеально настроить моего робота. Вместо того, чтобы вводить случайные значения, я нашел более простой способ определить это.

  1. Начните с kp и Kd, равными 0, и начните с Kp, сначала попробуйте установить Kp равным 1 и понаблюдайте за роботом, наша цель - следовать по линии, даже если она шатается, если робот пролетает и теряет линию, уменьшите значение kp. Если робот не может пройти поворот и ведет себя медленно, увеличьте значение Kp.
  2. Как только робот будет немного следовать линии, отрегулируйте значение Kd (значение Kd> значение Kp), начиная с 1 и увеличивайте значение, пока не увидите плавный ход с меньшим колебанием.
  3. Как только робот начнет следовать по линии, увеличьте скорость и посмотрите, сможет ли он удерживать линию и следовать по ней.

Имейте в виду, что скорость имеет прямое влияние на настройку ПИД-регулятора, и иногда вам может потребоваться перенастройка, чтобы она соответствовала скорости вашего робота.

Теперь мы можем приступить к созданию нашего робота.

Шаг 2: Сборка

Сборка
Сборка
Сборка
Сборка
Сборка
Сборка

Arduino atmega 2560 с USB-кабелем - это основной используемый микроконтроллер.

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

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Микрометаллические мотор-редукторы - роботу нужны были быстро вращающиеся моторы, чтобы справиться с программой PID, для этого я использовал моторы, рассчитанные на 6 В, 400 об / мин, и подходящие захватные колеса.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Массив датчиков QTR 8Rc - его можно использовать для отслеживания линии, как упоминалось ранее, я думаю, что теперь вы получили четкое представление о том, как работать с массивом датчиков с PID. Код очень прост, и, используя существующие библиотеки Arduino, вы сможете для создания быстрого последователя линии.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Драйвер двигателя - я хотел использовать драйвер двигателя, который может обрабатывать повороты и менять направление одним щелчком, который способен эффективно тормозить двигатели, когда сигнал ШИМ становится низким.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Батарея Lipo - липо-батарея 11,1 В используется для обеспечения питания робота. Хотя я использовал липо-батарею на 11,1 В, эта емкость больше, чем требуется для Arduino и двигателей. Если вы можете найти легкий вес 7,4 В. Lipo аккумулятор или аккумулятор Ni-MH на 6 В, он будет идеальным. по этой причине я должен использовать понижающий преобразователь, чтобы преобразовать напряжение в 6 В.

11,1 В-

7.4 V-

Модуль понижающего преобразователя -

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

Шаг 3: Сборка

Сборка
Сборка
Сборка
Сборка
Сборка
Сборка
Сборка
Сборка

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

Вот идеальная диаграмма, которую я нашел в Интернете, которая говорит вам, как должны быть выполнены соединения.

Шаг 4: Создайте свой линейный трек

Создайте свой линейный трек
Создайте свой линейный трек

Теперь ваш проект, кажется, почти завершен. Поскольку на последнем этапе вам нужно иметь небольшую арену для тестирования вашего робота. Я использовал случайную линию шириной 3 см, белую линию на черном фоне. Убедитесь, что вы все хорошо приклеили, и пока избегайте перекрестков и сечений под углом 90 градусов, потому что это сложный случай с точки зрения кодирования.

Шаг 5: запрограммируйте свой код

1. Загрузите и установите Arduino.

Настольная IDE

· Окна -

· Mac OS X -

· Linux -

2. Загрузите и вставьте файл массива датчиков QTR 8 RC в папку с библиотеками Arduino.

·

· Вставить файлы по пути - C: / Arduino / libraries

3. Скачайте и откройте LINEFOLLOWING.ino.

4. Загрузите код на плату Arduino через USB-кабель.

Шаг 6: СДЕЛАНО

Image
Image

Теперь у вас есть робот, следующий за линией, сделанный вами сам.

Надеюсь, это руководство было полезным. Не стесняйтесь обращаться ко мне через [email protected], если у вас возникнут проблемы.

до скорой встречи с еще одним новым проектом.

Наслаждайтесь строительством !!

Рекомендуемые: