INHOUDSOPGAWE:

PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensoropstelling: 6 stappe (met foto's)
PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensoropstelling: 6 stappe (met foto's)

Video: PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensoropstelling: 6 stappe (met foto's)

Video: PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensoropstelling: 6 stappe (met foto's)
Video: Урок 95: Использование щита двигателей постоянного тока L293D 4 для Arduino UNO и Mega | Пошаговый курс Arduino 2024, Julie
Anonim
PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensor-reeks
PID-gebaseerde lyn na robot met POLOLU QTR 8RC-sensor-reeks

Hallo!

Dit is my eerste skrywe oor instruksies, en vandag gaan ek u in die pad aflê en verduidelik hoe u 'n PID-gebaseerde lyn met 'n robot met behulp van QTR-8RC-sensorreeks kan afkraak.

Voordat ons aan die bou van die robot gaan, moet ons verstaan wat PID genoem word,

Stap 1: Werkbeginsel

Wat is PID ??

Die term PID staan vir proporsioneel, integraal, afgeleide. So eenvoudig, wat ons doen om PID met die volgende lyn te betrek, gee ons die robot 'n opdrag om die lyn te volg en die draaie op te spoor deur die fout te bereken deur te kyk hoe ver het dit van die baan af beweeg.

sleutelterme soos genoem in polalu -dokumente

Die proporsionele waarde is ongeveer eweredig aan die posisie van u robot ten opsigte van die lyn. Dit wil sê, as u robot presies op die lyn gesentreer is, verwag ons 'n proporsionele waarde van presies 0

Die integraalwaarde teken die geskiedenis van die beweging van u robot aan: dit is 'n som van al die waardes van die proporsionele term wat aangeteken is sedert die robot begin hardloop het

Die afgeleide is die koers van verandering van die proporsionele waarde

In hierdie tutoriaal gaan ons slegs oor Kp en die Kd -terme praat, maar met die Ki -term kan u ook resultate behaal..so basies Die sensor bied waardes van 0 tot 2500, wat wissel van maksimum reflektansie tot minimum reflektansie, maar gee terselfdertyd ook inligting oor hoe ver die robot van die lyn gestrand het.)

Nou moet ons die foutterm oorweeg: Dit is die verskil tussen die twee waardes se setpointwaarde en die huidige waarde (die setpointwaarde is die lesing wat ooreenstem met die 'perfekte' plasing van sensors bo -op die lyne. En die huidige waarde is die oombliklike lesings van die sensor. Byvoorbeeld: as u hierdie skikkingsensor gebruik en van 8 sensors gebruik maak, sal u 'n posisionele lesing van 3500 ontvang as u in die kol is, ongeveer 0 as u ver te links van die lyn en ongeveer 7000 as u heeltemal te reg is.). Ons doel is om die fout nul te maak. Dan kan die robot net glad die lyn volg.

Dan kom die berekening deel,.

1) bereken die fout.

Fout = Stelwaarde - Huidige waarde = 3500 - posisie

Soos ek 8 sensors gebruik. die sensor gee 'n posisionele lesing van 3500 as die robot perfek geplaas is. Noudat ons ons fout bereken het, die marge waarmee ons robot oor die baan dryf, is dit tyd dat ons die fout ondersoek en die motorsnelhede dienooreenkomstig aanpas

2) bepaal die aangepaste snelhede van die motors.

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

LastError = Fout;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logies gesproke beteken 'n fout van 0 dat ons robot na links is, wat beteken dat ons robot 'n bietjie regs moet gaan, wat weer beteken dat die regte motor moet vertraag en die linkermotor moet versnel. DIT IS PID!

Die MotorSpeed -waarde word bepaal uit die vergelyking self. RightBaseSpeed en LeftBaseSpeed is die snelhede (enige waarde van PWM 0-255) waarteen die robot hardloop wanneer die fout nul is.

Die kode wat ek aangeheg het, bevat ook hoe u die posisionele waardes van die sensor kan kontroleer, sodat u die seriële monitor kan oopmaak en die kode kan oplaai en self kan sien hoe die motors draai as die posisie wissel.

As u probleme ondervind tydens die implementering van u robot, kyk net of u dit kan sien deur die tekens van die vergelykings te verander !!!

En nou die moeilikste deel om Kp en Kd te vind, moes ek meer as 1 uur spandeer om my robot perfek af te stem.

  1. Begin met kp en Kd gelyk aan 0, en begin met Kp, probeer eers om Kp op 1 te stel en let op die robot; ons doel is om die lyn te volg, selfs al is dit wankelrig, as die robot oorskiet en die lyn verloor, verminder die kp -waarde. As die robot nie 'n draai kan navigeer nie en traag is, verhoog die Kp -waarde.
  2. Sodra dit lyk asof die robot die lyn ietwat volg, pas die Kd -waarde (Kd -waarde> Kp -waarde) aan vanaf 1 en verhoog die waarde totdat u 'n gladde rit sien met minder wankel.
  3. Sodra die robot die lyn begin volg, verhoog die spoed en kyk of hy die lyn kan behou en volg.

Hou in gedagte dat spoed 'n direkte impak op die PID -afstemming het, en dat u soms moet herinstel om aan te pas by die snelheid van u robot.

Nou kan ons begin met die bou van ons robot.

Stap 2: Die bou

Die bou
Die bou
Die bou
Die bou
Die bou
Die bou

Arduino atmega 2560 met USB -kabel - dit is die belangrikste mikrokontroleerder wat gebruik word.

Onderstel- vir die robot-onderstel het ek 2 sirkelvormige akrielplate gebruik wat gebruik kan word vir 'n ander projek wat perfek hiervoor is. Met moere en skroewe het ek 'n onderstel met twee verdiepings gebou, sodat ek ander modules aan die boonste plaat kan heg. Of u kan klaargemaakte onderstel gebruik.

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

Mikrometaal-ratmotors- die robot het vinnig roterende motors nodig om die PID-roetine te kan hanteer, daarvoor het ek motors met 'n nommer van 6V 400 rpm en geskikte grypwiele gebruik.

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

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

QTR 8Rc sensor array - dit kan gebruik word vir die opsporing van lyne, soos vroeër genoem, dink ek dat u nou 'n duidelike begrip het van hoe u die sensor array met PID moet gebruik. Die kode is baie eenvoudig en met behulp van bestaande arduino biblioteke sal u in staat wees om 'n vinnige lynvolger te bou.

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

TB6612FNG Motorbestuurder-ek wou 'n motorbestuurder gebruik wat vinnig draaie kan hanteer en rigtings kan verander, wat die motors effektief kan rem wanneer die PWM-sein laag word.

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

Lipo battery- 11.1V lipo battery word gebruik om die robot van krag te voorsien. Alhoewel ek 'n 11.1 V lipo battery gebruik het, is hierdie kapasiteit meer as wat nodig is vir die arduino en die motors. As u 'n ligte 7.4V kan vind lipo battery of 6V Ni-MH battery pack dit sal perfek wees. Om hierdie rede moet ek 'n buck converter gebruik om die spanning na 6V om te skakel.

11.1V-

7.4 V-

Buck converter module-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Boonop het u draaddrade, moere en boute, skroewedraaiers en elektriese bande en ritsbande nodig om seker te maak dat alles in plek is.

Stap 3: Monteer

Montering
Montering
Montering
Montering
Montering
Montering
Montering
Montering

heg die motors en 'n klein wiel met moere en skroewe aan 'n bord vas en monteer dan die QTR -sensor, motorbestuurder, arduino -bord en laastens die battery op die onderstel.

Hier is 'n perfekte diagram wat ek op die internet gevind het, wat u vertel hoe die verbindings gemaak moet word.

Stap 4: Ontwerp u lynsnit

Ontwerp jou lynlyn
Ontwerp jou lynlyn

Dit lyk asof u projek amper verby is. Vir die laaste fase moet u 'n klein arena hê om u robot te toets. Ek het 'n ewekansige lyn met 'n lengte van 3 cm breed op 'n swart agtergrond gebruik. Maak seker dat u alles goed plak. En vermy voorlopig 90 hoekpunte en kruisings, omdat dit 'n ingewikkelde geval is vir kodering.

Stap 5: Programeer u kode

1. Laai die Arduino af en installeer dit

Desktop IDE

· Vensters -

· Mac OS X -

· Linux -

2. Laai QTR 8 RC sensor array lêer af en plak dit in die gids Arduino biblioteke.

·

· Plak lêers op die pad - C: / Arduino / biblioteke

3. Laai af en maak LINEFOLLOWING.ino oop

4. Laai die kode op die arduino -bord op via 'n USB -kabel

Stap 6: GEDOEN

Image
Image

nou het u 'n lyn na die robot wat u self gemaak het.

Hoop dat hierdie tutoriaal nuttig was. Moenie huiwer om my te kontak via [email protected] as u probleme ondervind nie.

sien julle binnekort met nog 'n nuwe projek.

Geniet die bou !!

Aanbeveel: