• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO





Робот-следящий за линией, использующий алгоритм PID



Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком  "Карта сайта"







Следование за линией - это простой робот, который следует по толстой линии, нарисованной на полу, с помощью инфракрасных (ИК) или других оптических датчиков. Этот робот-следящий за линией использует два двигателя с колесами сзади и роликом в качестве опоры спереди. Питание поступает от батареи, установленной на повторителе линии. Логическая система (обычно микроконтроллер) используется для управления движением робота путем считывания линии через датчики. Авторский прототип представлен на рис.1.

 

Авторский прототип

Рис. 1: Авторский прототип

 

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

Формула функции ПИД, состоящая из трех последовательных членов [P] + [I] + [D], выглядит следующим образом:

f (t) = [Kp.e (t)] + [Ki∫e (t) .d (t)] + [Kd.de/dt]

где e (t) - значение ошибки, которое представляет собой разницу между требуемым значением и фактическим значением,

Kp = константа для пропорции
Ki = константа для интеграла
Kd = константа для производной
P = Kp, умноженная на значение ошибки
I = Ki, умноженная на предыдущее значение интегральной ошибки
D = Kd, умноженная на значение производной

Обратите внимание, что константы Kp, Ki и Kd не одинаковы для всех последователей линии. Каждый раз необходимо принимать приблизительные значения для трех вышеуказанных констант, а затем компилировать и записывать код в микроконтроллер для проверки поведения повторителя линии. Это очень утомительная работа, и во время тестирования тратится много времени. Применение приведенной выше формулы упрощается с помощью функции void runPID () в исходном коде. Постоянные значения Kp, Ki, Kd, ​​задержки и петли, необходимые для управления повторителем линии, могут быть изменены простым нажатием трех кнопок. Текущие установленные значения можно просмотреть на OLED-дисплее, и они автоматически сохраняются в EEPROM микроконтроллера, что упрощает и упрощает тестирование линейного повторителя с помощью алгоритма PID. Принципиальная схема настраиваемого повторителя линии ПИД-регулятора состоит из двух частей: главной цепи и цепи датчика. Основная схема показана на рис. 2. Она построена на базе регулятора напряжения 5 В 7805 (IC1), микроконтроллера ATmega16 (IC2), регулятора напряжения 6 В 7806 (IC3), драйвера двигателя L293D (IC4), четырех диодов 1N4007 (от D1 до D4), 10-сегментная линейка светодиодов (BAR1), три светодиода (от LED1 до LED3), два двигателя с питанием от батарей 6 В и несколько других компонентов.

 

Принципиальная схема настраиваемого повторителя линии ПИД-регулятора

Рис.2: Основная принципиальная схема настраиваемого повторителя линии ПИД-регулятора

 

Блок схемы датчика показан на рис. 3. Он состоит из двух операционных усилителей LM324 (IC5 и IC6), восьми передающих ИК-светодиодов (IRTX1-IRTX8), восьми ИК-приемных светодиодов (IRRX1 -IRRX8) и нескольких других. составные части.

 

Цепь датчика повторителя линии

Рис.3: Схема датчика повторителя линии

 

Данные линии считываются восемью парами светодиодов, передающих ИК-сигнал, и светодиодов приема ИК-излучения (используемых в качестве датчиков), расположенных в линию. Сопротивление ИК-датчика зависит от отражения ИК-света от цвета дорожек на полу, при этом дорожка белого цвета отражает больше всего, а дорожка черного цвета - меньше всего. Изменение сопротивления достигается, когда напряжение изменяется с помощью цепи сопротивления и подается на восемь операционных усилителей (по четыре от IC5 и IC6) для дальнейшего усиления сигнала. Выходы операционных усилителей являются входными сигналами для микроконтроллера ATmega16. Таким образом, состояние сигналов, полученных микроконтроллером, отображается на линейке из 10 светодиодов (здесь используются только восемь из десяти светодиодов). Сигнал можно инвертировать с помощью перемычки J1, которая позволяет роботу следовать по белой линии на черном фоне или черной линии на белом фоне на полу. Компоновка печатной платы для главной схемы показана на рис. 4, а расположение ее компонентов - на рис. 5. Соберите схему на печатной плате. Подключите LiPo аккумулятор к BATT.1. Вы также можете использовать обычную свинцово-кислотную батарею на 12 В вместо LiPo батареи. Перед установкой ATmega16A на плату не забудьте загрузить в него custom_pid_lf.hex.

 

Компоновка печатной платы для пользовательского повторителя линии ПИД

Рис.4: Компоновка печатной платы для настраиваемого повторителя линии ПИД-регулятора

 

Компоновка компонентов печатной платы

Рис.5: Компоновка компонентов печатной платы

 

Компоновка печатной платы для схемы датчика показана на рис. 6, а расположение ее компонентов - на рис. 7. После сборки схемы на печатной плате подключите CON3 к CON4.

 

Схема печатной платы сенсорного блока

Рис.6: Схема печатной платы сенсорного блока

 

Компоновка компонентов печатной платы для рис.6

Рис.7: Компоновка компонентов печатной платы для Рис.6

 

Загрузите PDF-файлы с макетами печатных плат и компонентов: нажмите здесь

 

После сборки основного и сенсорного блоков на соответствующих печатных платах закрепите основной блок наверху шасси вместе с батареей и сенсорным блоком внизу шасси (примерно на 25 мм над поверхностью). Подробнее о сборке и подключениях см. Авторский прототип на рис.1 и сборку сенсорного блока на рис.8.

 

Авторская сборка сенсорного блока

Рис. 8: Сборка авторского сенсорного блока

 

Закрепите два мотора с батарейным питанием, поворотное колесо и аккумулятор на хорошем шасси, как описано ниже. Поместите плату массива из восьми ИК-датчиков на лицевую сторону, оставив зазор примерно 5 мм между полом и ИК-светодиодами. Затем поместите основную плату на шасси и запишите / запишите файл custom_pid_lf.hex в микроконтроллер (ATmega16) через порт ISP с помощью любого подходящего программатора AVR после включения питания платы от батареи. Теперь выключите источник питания и снимите программатор AVR с главной платы. Подключите выходы датчиков к блоку главной цепи и включите питание блока цепи датчика. Массив светодиодных полос (BAR1) должен мигать, а на OLED-экране на некоторое время должно отображаться «приветственное сообщение», за которым следует режим остановки по умолчанию. Теперь отрегулируйте VR1 рядом с ИС операционного усилителя (LM324) в сенсорном блоке, чтобы включить и выключить восемь светодиодов в массиве светодиодных полос, перемещая сенсорный блок по черной (или белой) линии. Обратите внимание на разницу в обнаружении линии, сняв и подключив закорачивающую перемычку J1, и установите ее в соответствии с цветом (черный или белый) линии. Откройте J1 для черной линии и закройте J1 для белой линии.

 

 

Нажмите кнопку переключателя S2, чтобы проверить вращение двигателей, когда робот-повторитель линии находится в режиме остановки. На OLED-дисплее появится сообщение «Шаг 1 из 4, правый двигатель находится в прямом режиме». В то же время правый мотор будет двигаться вперед. Затем кратковременно нажмите S2, чтобы проверить левый мотор. Аналогичным образом нажмите S2, чтобы проверить движение робота-следящего за линией вперед и назад. Если какой-либо из двигателей не вращается, отключите питание от аккумуляторной батареи и исправьте соединения проводов двигателя. Затем снова выполните самотестирование и проверьте, пока направления двигателей не совпадают с сообщениями, отображаемыми на OLED-экране. Для изменения постоянных значений (Kp, Ki и Kd) последовательно нажмите кнопку S1, чтобы отобразить текущие значения и изменить значения. Нажмите кнопку S2 для уменьшения или S3 для увеличения значений. Если ни одна кнопка не будет нажата более пяти секунд, измененные значения будут автоматически сохранены в EEPROM микроконтроллера. Следующие параметры могут быть выбраны нажатием кнопки S1 с последующим нажатием кнопок S2 или S3 для увеличения или уменьшения значений соответственно:

1.      Константа Kp (отображается как KP на OLED) - это константа умножения для P в PID. Вы можете изменить его на подходящее значение, например Kp = 8.1.

2.      Константа Ki (отображается как KI) - это постоянная умножения I в PID. Измените его на KI = 0,1

3.      Константа Kd (отображается как KD) - это константа умножения для D в PID. Измените его на Kd = 0,1

4.      Задержка цикла (отображается как ЗАДЕРЖКА) - это задержка между считыванием данных линии ИК-датчиками. Вы можете изменить его, чтобы сказать Delay = 50.

5.      Цикл поиска (отображается как ПОИСК) - это количество раз, которое программа ищет строку перед переходом в режим остановки. Измените его на Search = 45.

Нажмите кнопку S3, чтобы запустить или остановить повторитель линии, когда он не находится в режиме конфигурации. Нажмите кнопку сброса S4 в любое время, чтобы остановить и снова запустить операцию. Текущий режим Run / Stop отображается в правом верхнем углу OLED. Первоначально в режиме остановки установите некоторое значение (скажем, 8,0) для KP, сохраняя при этом значения KI и KD равными нулю. Сделайте на полу толстую черную изогнутую дорожку и держите робота-следящего за линией сверху дорожки. Нажмите кнопку S3, чтобы запустить робота-следящего за линией. Он должен следовать изогнутой линии, нарисованной на полу. Чтобы настроить точность движения робота, измените значения KD и KI. Функция searchLine () в коде вызывается, когда не найдено ни одной строки. Эта функция не зависит от алгоритма PID и может быть изменена в соответствии с индивидуальными требованиями, если таковые имеются.

 

Фаяз Хассан

 







Просмотров: 530 | Добавил: Chinas | Рейтинг: 0.0/0








Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 371



          

Радио для всех© 2024