Оглавление:
- Шаг 1: принцип работы
- Шаг 2: Сборка
- Шаг 3: Сборка
- Шаг 4: Создайте свой линейный трек
- Шаг 5: запрограммируйте свой код
- Шаг 6: СДЕЛАНО
Видео: Робот слежения за линией на основе ПИД-регулятора с массивом датчиков POLOLU QTR 8RC: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Привет!
Это моя первая статья об инструкциях, и сегодня я собираюсь познакомить вас с дорогой и объяснить, как построить линию на основе 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 часа, чтобы идеально настроить моего робота. Вместо того, чтобы вводить случайные значения, я нашел более простой способ определить это.
- Начните с kp и Kd, равными 0, и начните с Kp, сначала попробуйте установить Kp равным 1 и понаблюдайте за роботом, наша цель - следовать по линии, даже если она шатается, если робот пролетает и теряет линию, уменьшите значение kp. Если робот не может пройти поворот и ведет себя медленно, увеличьте значение Kp.
- Как только робот будет немного следовать линии, отрегулируйте значение Kd (значение Kd> значение Kp), начиная с 1 и увеличивайте значение, пока не увидите плавный ход с меньшим колебанием.
- Как только робот начнет следовать по линии, увеличьте скорость и посмотрите, сможет ли он удерживать линию и следовать по ней.
Имейте в виду, что скорость имеет прямое влияние на настройку ПИД-регулятора, и иногда вам может потребоваться перенастройка, чтобы она соответствовала скорости вашего робота.
Теперь мы можем приступить к созданию нашего робота.
Шаг 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: СДЕЛАНО
Теперь у вас есть робот, следующий за линией, сделанный вами сам.
Надеюсь, это руководство было полезным. Не стесняйтесь обращаться ко мне через [email protected], если у вас возникнут проблемы.
до скорой встречи с еще одним новым проектом.
Наслаждайтесь строительством !!
Рекомендуемые:
Самобалансирующийся робот - алгоритм ПИД-регулирования: 3 шага
Самобалансирующийся робот - алгоритм ПИД-регулирования: этот проект был задуман, потому что мне было интересно узнать больше об алгоритмах управления и о том, как эффективно реализовать функциональные контуры ПИД-регулирования. Проект все еще находится в стадии разработки, так как модуль Bluetooth еще не добавлен, что позволит
Робот-следящий за линией с PICO: 5 шагов (с изображениями)
Робот-последователь линии с PICO: Прежде чем вы сможете создать робота, который может положить конец цивилизации, какой мы ее знаем, и положить конец человеческой расе. Сначала вы должны уметь создавать простых роботов, которые могут следовать за линией, проведенной на земле, и вот где вы
Плата: система слежения за транспортными средствами на основе GPS и GSM: 3 шага
Печатная плата: Система слежения за транспортными средствами на основе GPS и GSM: Система слежения за транспортными средствами на основе GPS и GSM 30 июня 2016 г., инженерные проекты В проекте Система слежения за транспортными средствами на основе GPS и GSM использует глобальную систему позиционирования (GPS) и глобальную систему мобильной связи (GSM), которая делает этот проект более э
Генератор музыки на основе погоды (генератор MIDI на основе ESP8266): 4 шага (с изображениями)
Музыкальный генератор на основе погоды (Midi-генератор на основе ESP8266): Привет, сегодня я объясню, как сделать свой собственный небольшой музыкальный генератор на основе погоды. Он основан на ESP8266, который похож на Arduino, и он реагирует на температуру, дождь. и яркость света. Не ожидайте, что он сделает целые песни или аккордовые программы
Робот для объезда препятствий с помощью ультразвуковых датчиков: 9 шагов (с изображениями)
Робот для обхода препятствий с помощью ультразвуковых датчиков: это простой проект о роботах для обхода препятствий с использованием ультразвуковых датчиков (HC SR 04) и платы Arduino Uno. Робот перемещается, избегая препятствий и выбирая лучший способ следовать за датчиками. учебный проект, поделитесь с вами