Indholdsfortegnelse:

PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: 6 trin (med billeder)
PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: 6 trin (med billeder)

Video: PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: 6 trin (med billeder)

Video: PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: 6 trin (med billeder)
Video: Урок 95: Использование щита двигателей постоянного тока L293D 4 для Arduino UNO и Mega | Пошаговый курс Arduino 2024, Juli
Anonim
PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array
PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array

Hej!

dette er mit første opslag om instruktører, og i dag tager jeg dig ned af vejen og forklarer, hvordan du kan mobbe en PID-baseret linje efter robot ved hjælp af QTR-8RC sensor array.

Inden vi går videre til bygningen af robotten, skal vi forstå, hvad der kaldes PID,

Trin 1: Arbejdsprincip

Hvad er PID ??

Udtrykket PID står for proportional, integral, derivat. Så enkelt, hvad vi gør med at involvere PID med linjefølgende er, giver vi en kommando til robotten om at følge linjen og til at registrere svingene ved at beregne fejlen ved at overveje, hvordan langt er det flyttet af banen.

nøglebegreber som nævnt i polalu -dokumenter

Proportionsværdien er omtrent proportional med din robots position i forhold til linjen. Det vil sige, at hvis din robot er præcist centreret på linjen, forventer vi en proportional værdi på nøjagtigt 0

Integralværdien registrerer historien om din robots bevægelse: det er en sum af alle værdierne for det proportionelle udtryk, der blev registreret, siden robotten begyndte at køre

Derivatet er ændringshastigheden for den proportionelle værdi

I denne vejledning taler vi kun om Kp og Kd -termerne, men resultater kan også opnås ved hjælp af Ki -udtrykket. De aflæsninger, vi får fra sensoren, er ikke kun analoge aflæsninger, men også positionens aflæsninger af robotten.so grundlæggende Sensoren giver værdier fra 0 til 2500, der spænder fra maksimal refleksion til minimum reflektans, men giver samtidig også oplysninger om, hvor langt robotten har strandet fra linjen.)

Nu skal vi overveje fejlbetegnelsen, Dette er forskellen mellem de to værdiers setpunktværdi og den aktuelle værdi. (Setpunktsværdien er den aflæsning, der svarer til den "perfekte" placering af sensorer oven på linjerne. Og Strømmen værdien er sensorens øjeblikkelige aflæsninger. For eksempel: Hvis du bruger denne array -sensor og bruger 8 sensorer, vil du modtage en positionsmåling på 3500, hvis du er spot on, omkring 0 hvis du er alt for venstre fra linjen og omkring 7000, hvis du har alt for ret.). Vores mål er at gøre fejlen nul. Da kan robotten kun glat følge linjen.

Derefter kommer beregningsdelen,.

1) Beregn fejlen.

Fejl = Setpunktværdi - Aktuel værdi = 3500 - position

Som jeg bruger 8 sensorer. sensoren giver en positionsmåling på 3500, når robotten er perfekt placeret. Nu hvor vi har beregnet vores fejl, den margin, hvormed vores robot driver hen over banen, er det på tide, at vi undersøger fejlen og justerer motorhastighederne i overensstemmelse hermed

2) bestem motorernes justerede hastigheder.

MotorSpeed = Kp * Error + Kd * (Error - LastError);

LastError = Fejl;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logisk set betyder en fejl på 0, at vores robot er ude til venstre, hvilket betyder, at vores robot skal gå lidt til højre, hvilket igen betyder, at den højre motor skal bremse, og den venstre motor skal fremskynde. DETTE ER PID!

MotorSpeed -værdien bestemmes ud fra selve ligningen. RightBaseSpeed og LeftBaseSpeed er de hastigheder (enhver værdi på PWM 0-255), som robotten kører ved, når fejlen er nul.

Koden, som jeg har vedhæftet, inkluderer også, hvordan du kontrollerer sensorens positionsværdier, så du kan åbne den serielle skærm og uploade koden og selv se med en linje, hvordan motorerne roterer, når positionen varierer.

Hvis du støder på problemer, når du implementerer din robot, skal du bare kontrollere, om og se ved at ændre tegnene på ligningerne !!!

Og nu den sværeste del FINDING Kp OG Kd, jeg var nødt til at bruge mere end 1 time på perfekt at indstille min robot. I stedet for at sætte tilfældige værdier fandt jeg en lettere metode til at bestemme dette.

  1. Start med kp og Kd lig med 0, og start med Kp, prøv først at sætte Kp til 1 og observer robotten, vores mål er at følge linjen, selvom den er vaklende, hvis robotten overskyder og taber linjen reducerer kp -værdien. Hvis robotten ikke kan navigere i en sving og være træg, øges Kp -værdien.
  2. Når robotten tilsyneladende følger en del linjen, justeres Kd -værdien (Kd -værdi> Kp -værdi) fra 1 og øges værdien, indtil du ser et jævnt drev med mindre wobbling.
  3. Når robotten begynder at følge linjen, skal du øge hastigheden og se, om den er i stand til at fastholde og følge linjen.

Husk, at hastighed har en direkte indvirkning på PID -tuning, og du kan nogle gange være nødt til at justere igen for at matche din robots hastighed.

Nu kan vi komme i gang med at bygge vores robot.

Trin 2: Bygningen

Bygningen
Bygningen
Bygningen
Bygningen
Bygningen
Bygningen

Arduino atmega 2560 med USB -kabel - dette er den vigtigste mikrokontroller, der bruges.

Chassis- til robotchassiset har jeg brugt 2 cirkulære akrylplader, der bruges til et andet projekt, der er perfekt til dette. Ved hjælp af møtrikker og skruer har jeg bygget et 2-etagers chassis, så jeg kan fastgøre andre moduler til den øverste plade. Eller du kan bruge færdiglavet chassis til rådighed.

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

Mikrometallige gearmotorer- robotten havde brug for hurtigt roterende motorer for at klare PID-rutinen, til det har jeg brugt motorer med en nominel hastighed på 6V 400rpm og egnede grippy hjul.

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

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

QTR 8Rc sensor array - dette kan bruges til liniesporing, som tidligere nævnt tror jeg, at du nu har en klar forståelse af, hvordan du betjener sensor arrayet med PID. Koden er meget enkel og ved hjælp af eksisterende arduino biblioteker vil du være i stand til at bygge en hurtig line -tilhænger.

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

TB6612FNG Motor driver-Jeg ville bruge en motor driver, der kan håndtere sving og ændre retninger på et øjeblik, som effektivt kan bremse motorerne, når PWM-signalet gik lavt.

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

Lipo batteri- 11.1V lipo batteri bruges til at levere strøm til robotten. Selvom jeg har brugt et 11.1 V lipo batteri, er denne kapacitet mere end hvad der er nødvendigt for arduino og motorer. Hvis du kan finde et let vægtet 7,4V lipo-batteri eller 6V Ni-MH batteripakke, vil det være perfekt. på grund af denne grund skal jeg bruge en buck-konverter til at konvertere spændingen til 6V.

11.1V-

7.4 V-

Buck converter-modul-

Derudover har du brug for jumperwires, møtrikker og bolte, skruetrækkere og elektriske bånd og også lynlåse for at sikre, at alt er på plads.

Trin 3: Samling

Montering
Montering
Montering
Montering
Montering
Montering
Montering
Montering

fastgør motorerne og et lille hjul til en plade ved hjælp af møtrikker og skruer, og monter derefter QTR -sensoren, motordriveren, arduino -kortet og til sidst batteriet på chassiset.

Her er et perfekt diagram, jeg fandt på internettet, som fortæller dig, hvordan forbindelserne skal laves.

Trin 4: Design dit liniespor

Design dit liniespor
Design dit liniespor

Nu ser dit projekt ud til at være næsten slut. Som for sidste fase skal du have en lille arena til at teste din robot. Jeg har brugt en tilfældig linje med en bredde på 3 cm på en hvid linje på en sort baggrund. Sørg for at indsætte alt godt. Og undgå foreløbig 90 degees vinkelkryds og kryds, fordi det er et kompliceret tilfælde med hensyn til kodning.

Trin 5: Programmer din kode

1. Download og installer Arduino

Desktop IDE

· Windows -

· Mac OS X -

· Linux -

2. Download og indsæt QTR 8 RC sensor array -fil i mappen Arduino biblioteker.

·

· Indsæt filer på stien - C: / Arduino / biblioteker

3. Download og åbnLINEFOLLOWING.ino

4. Upload koden til arduino -kortet via et USB -kabel

Trin 6: FÆRDIG

Image
Image

nu har du en linje efter robot, der er lavet af dig selv.

Håber denne vejledning var nyttig. Tøv ikke med at kontakte mig via [email protected], hvis du har problemer.

vi ses snart med endnu et nyt projekt.

God fornøjelse med at bygge !!

Anbefalede: