Съдържание:

Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC: 6 стъпки (със снимки)
Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC: 6 стъпки (със снимки)

Видео: Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC: 6 стъпки (със снимки)

Видео: Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC: 6 стъпки (със снимки)
Видео: FULL BUILD | Rebuilding A DESTROYED Porsche 911 Turbo! 2024, Ноември
Anonim
Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC
Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC

Здравейте!

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

Преди да преминем към изграждането на робота, трябва да разберем какво се нарича PID,

Стъпка 1: Принцип на работа

Какво е PID ??

Терминът PID означава пропорционален, интегрален, производен, така че просто това, което правим с включването на PID със следния ред, е, ние даваме команда на робота да следва линията и да открива завоите, като изчислява грешката, като обмисля как далеч се е отдалечил от пистата.

ключови термини, споменати в документи polalu

Пропорционалната стойност е приблизително пропорционална на позицията на вашия робот по отношение на линията. Тоест, ако вашият робот е точно центриран по линията, очакваме пропорционална стойност точно 0

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

Дериватът е скоростта на промяна на пропорционалната стойност

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

Сега трябва да разгледаме термина за грешка, Това е разликата между стойностите на двете стойности и текущата стойност. (Стойността на зададената стойност е показанието, което съответства на „перфектното“разположение на сензорите отгоре на редовете. И Текущата стойност стойността е моментните показания на сензора. Например: Ако използвате този сензор за масив и използвате 8 сензора, ще получите позиционно отчитане от 3500, ако сте на място, около 0, ако сте твърде далеч от линията и около 7000, ако сте твърде прав.). Нашата цел е да направим грешката нулева. Само тогава роботът може плавно да следва линията.

След това идва изчислителната част,.

1) изчислете грешката.

Грешка = Зададена стойност - Текуща стойност = 3500 - позиция

Като използвам 8 сензора. сензорът дава позиционен показател от 3500, когато роботът е перфектно поставен. Сега, след като сме изчислили нашата грешка, границата, с която нашият робот се движи по пистата, е време да проучим грешката и да регулираме съответно скоростите на двигателя

2) определете регулираните обороти на двигателите.

MotorSpeed = Kp * Грешка + 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. След като роботът започне да следва линията, увеличете скоростта и вижте дали е в състояние да задържи и следва линията.

Имайте предвид, че скоростта има пряко влияние върху PID настройката и понякога може да се наложи да пренастроите, за да съответства на скоростта на вашия робот.

Сега можем да преминем към изграждането на нашия робот.

Стъпка 2: Изграждането

Сградата
Сградата
Сградата
Сградата
Сградата
Сградата

Arduino atmega 2560 с USB кабел - това е основният използван микроконтролер.

Шаси- за шасито на робота съм използвал 2 кръгли акрилни плочи, които се използват за друг проект, който е идеален за това. С помощта на гайки и винтове съм построил двуетажно шаси, така че да мога да прикрепя други модули към горната плоча. Или можете да използвате налични готови шасита.

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

Микрометални редукторни двигатели- роботът се нуждаеше от бързо въртящи се двигатели, за да се справи с PID рутината, за това използвах двигатели с мощност 6V 400rpm и подходящи захващащи се колела.

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 Шофьор на мотор-Исках да използвам шофьор на мотор, който може да управлява завои и да променя посоката в един момент, който е в състояние ефективно да спира спира двигателите, когато PWM сигналът се понижи.

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

Lipo батерия- 11.1V lipo батерия се използва за захранване на робота. Въпреки че съм използвал 11.1 V lipo батерия, този капацитет е повече от това, което е необходимо за arduino и двигателите. Ако можете да намерите лека претеглена 7.4V lipo батерия или 6V Ni-MH батерия, тя ще бъде перфектна. Поради тази причина трябва да използвам доларов конвертор, за да преобразувам напрежението в 6V.

11.1V-

7.4 V-

Модул за преобразуване на долари-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

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

Стъпка 3: Сглобяване

Сглобяване
Сглобяване
Сглобяване
Сглобяване
Сглобяване
Сглобяване
Сглобяване
Сглобяване

прикрепете двигателите и малко колело в плоча с помощта на гайки и винтове и след това монтирайте QTR сензора, драйвера на двигателя, платката arduino и накрая батерията върху шасито.

Ето една перфектна диаграма, която намерих в интернет, която ви казва как трябва да се правят връзките.

Стъпка 4: Проектирайте линията си

Проектирайте линията си
Проектирайте линията си

Сега вашият проект изглежда е почти приключил. Тъй като за последния етап трябва да имате малка арена, за да тествате вашия робот. Аз съм използвал произволна линия с широчина 3 см бяла линия на черен фон. Уверете се, че сте поставили всичко добре и засега избягвайте ъглови кръстосания и напречни сечения от 90 градуса, защото това е сложен случай от гледна точка на кодирането.

Стъпка 5: Програмирайте кода си

1. Изтеглете и инсталирайте Arduino

Desktop IDE

· Windows -

· Mac OS X -

· Linux -

2. Изтеглете и поставете QTR 8 RC сензорен масив файл в папката Arduino libraries.

·

· Поставете файловете в пътя - C: / Arduino / libraries

3. Изтеглете и отворетеLINEFOLLOWING.ino

4. Качете кода на платката arduino чрез USB кабел

Стъпка 6: ГОТОВО

Image
Image

сега имате робот, който следва линия, направен от вас.

Надявам се този урок да е бил полезен. Не се колебайте да се свържете с мен чрез [email protected], ако имате някакъв проблем.

ще се видим скоро с друг нов проект.

Насладете се на изграждането !!

Препоръчано: