Sisällysluettelo:

PID-pohjainen linjaseurantarobotti POLOLU QTR 8RC -anturijoukolla: 6 vaihetta (kuvilla)
PID-pohjainen linjaseurantarobotti POLOLU QTR 8RC -anturijoukolla: 6 vaihetta (kuvilla)

Video: PID-pohjainen linjaseurantarobotti POLOLU QTR 8RC -anturijoukolla: 6 vaihetta (kuvilla)

Video: PID-pohjainen linjaseurantarobotti POLOLU QTR 8RC -anturijoukolla: 6 vaihetta (kuvilla)
Video: Урок 95: Использование щита двигателей постоянного тока L293D 4 для Arduino UNO и Mega | Пошаговый курс Arduino 2024, Heinäkuu
Anonim
PID-pohjainen linjaseurantarobotti, jossa on POLOLU QTR 8RC -anturijärjestelmä
PID-pohjainen linjaseurantarobotti, jossa on POLOLU QTR 8RC -anturijärjestelmä

Hei!

tämä on ensimmäinen kirjoitukseni ohjeista, ja tänään otan sinut tielle ja selitän, kuinka PID-pohjainen linja häviää robottia käyttäen QTR-8RC-anturiryhmän avulla.

Ennen kuin aloitamme robotin rakentamisen, meidän on ymmärrettävä, mitä kutsutaan PID: ksi.

Vaihe 1: Toimintaperiaate

Mikä on PID ??

Termi PID tarkoittaa suhteellista, integraalia, johdannaista. Yksinkertaisesti mitä me teemme PID: n ja rivinseurannan kanssa, annamme robotille komennon seurata linjaa ja havaita käännökset laskemalla virheen harkitsemalla pitkälle se on siirtynyt radalta.

keskeiset termit, kuten polalu -asiakirjoissa mainitaan

Suhteellinen arvo on suunnilleen verrannollinen robotin asentoon linjan suhteen. Toisin sanoen, jos robotti on tarkasti linjan keskellä, odotamme suhteellista arvoa täsmälleen 0

Integraaliarvo tallentaa robottisi liikkeen historian: se on summa kaikista suhteellisten termien arvoista, jotka on tallennettu robotin käynnistämisen jälkeen

Johdannainen on suhteellisen arvon muutosnopeus

Tässä opetusohjelmassa puhumme vain Kp: stä ja Kd -termeistä, mutta tulokset voidaan saavuttaa myös käyttämällä Ki -termiä. Anturista saamamme lukemat eivät ole vain analogisia lukemia vaan myös robotin sijaintilukemia. niin pohjimmiltaan anturi antaa arvoja 0–2500, jotka vaihtelevat suurimmasta heijastuskyvystä pienimpään heijastuskykyyn, mutta samalla antavat myös tietoa siitä, kuinka kaukana robotti on loitonnut linjasta.)

Nyt meidän on harkittava virhetermiä. Tämä on kahden arvon asetusarvon ja nykyisen arvon ero. (Asetuspisteen arvo on lukema, joka vastaa anturien "täydellistä" sijoittamista rivien päälle. Ja arvo on anturin hetkelliset lukemat. Esimerkiksi: Jos käytät tätä matriisianturia ja käytät 8 anturia, saat 3500 sijaintilukeman, jos olet paikalla, noin 0, jos olet liian kaukana linja ja noin 7000, jos olet aivan oikeassa.). Tavoitteenamme on tehdä virheestä nolla. Vain silloin robotti voi seurata sujuvasti linjaa.

Sitten tulee laskentaosa,.

1) Laske virhe.

Virhe = Asetusarvon arvo - Nykyinen arvo = 3500 - sijainti

Käytän 8 anturia. anturi antaa sijaintilukeman 3500, kun robotti on sijoitettu täydellisesti. Nyt kun olemme laskeneet virheemme, marginaalin, jolla robotti kulkee radan poikki, meidän on aika tutkia virhe ja säätää moottorin nopeuksia sen mukaan

2) määritä moottorien säädetyt nopeudet.

MotorSpeed = Kp * Virhe + Kd * (Virhe - viimeinen virhe);

LastError = Virhe;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Loogisesti ottaen virhe 0 tarkoittaa, että robotti on vasemmalla, mikä tarkoittaa, että robotin on mentävä hieman oikealle, mikä puolestaan tarkoittaa, että oikean moottorin on hidastuttava ja vasemman moottorin on nopeutettava. TÄMÄ ON PID!

MotorSpeed -arvo määritetään yhtälöstä. RightBaseSpeed ja LeftBaseSpeed ovat nopeuksia (mikä tahansa arvo PWM 0-255), joilla robotti toimii, kun virhe on nolla.

Liittämäni koodi sisältää myös anturin asentoarvojen tarkistamisen, jotta voit avata sarjamonitorin ja ladata koodin ja nähdä rivillä, kuinka moottorit pyörivät, kun asema vaihtelee.

Jos joudut vaikeuksiin robotin käyttöönotossa, tarkista vain, onko ja nähdä muuttamalla yhtälöiden merkkejä !!!

Ja nyt vaikein osa KP: n ja Kd: n löytäminen, minun piti viettää yli 1 tunti robotin virittämiseksi täydellisesti. Satunnaisarvojen asettamisen sijaan löysin helpomman menetelmän tämän määrittämiseksi.

  1. Aloita kp: llä ja Kd: llä 0, ja aloita Kp: llä, kokeile ensin asettaa Kp arvoon 1 ja tarkkailla robottia. Tavoitteenamme on seurata linjaa, vaikka se on epävakaa, jos robotti ylittää ja menettää viivan, pienennä kp -arvoa. Jos robotti ei pysty navigoimaan käännöksessä ja on hidas lisäämään Kp -arvoa.
  2. Kun robotti näyttää jonkin verran noudattavan linjaa, säädä Kd -arvo (Kd -arvo> Kp -arvo) aloita 1: stä ja lisää arvoa, kunnes näet tasaisen ajon, jossa on vähemmän heilumista.
  3. Kun robotti alkaa seurata linjaa, lisää nopeutta ja katso, kykeneekö se pitämään ja seuraamaan linjaa.

Muista, että nopeudella on suora vaikutus PID -viritykseen ja joudut joskus säätämään uudelleen vastaamaan robotin nopeutta.

Nyt voimme aloittaa robottimme rakentamisen.

Vaihe 2: Rakenna

Rakenna
Rakenna
Rakenna
Rakenna
Rakenna
Rakenna

Arduino atmega 2560 USB -kaapelilla - tämä on tärkein käytetty mikro -ohjain.

Runko- robotin runkoon Olen käyttänyt 2 pyöreää akryylilevyä, joita käytetään toiseen tähän tarkoitukseen täydelliseen projektiin. Muttereiden ja ruuvien avulla olen rakentanut 2-kerroksisen kotelon, jotta voin kiinnittää muita moduuleja ylälevyyn. Tai voit käyttää valmiita koteloita.

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

Mikrometalliset hammaspyörämoottorit- robotti tarvitsi nopeasti pyöriviä moottoreita selviytyäkseen PID-rutiinista, sillä olen käyttänyt 6 V 400 rpm: n nimellismoottoreita ja sopivia tarttuvia pyöriä.

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

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

QTR 8Rc -anturimatriisi - tätä voidaan käyttää linjanseurantaan, kuten aiemmin mainittiin. Luulen, että olet nyt ymmärtänyt selvästi, miten anturiryhmää käytetään PID: llä. Koodi on hyvin yksinkertainen ja voit käyttää olemassa olevia arduino -kirjastoja rakentaa nopea linjan seuraaja.

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

TB6612FNG Moottorin kuljettaja-halusin käyttää moottoriajuria, joka pystyy käsittelemään käännöksiä ja muuttamaan suuntaa hetkessä, mikä pystyy tehokkaasti jarruttamaan moottoreita, kun PWM-signaali heikkenee.

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

Lipo-akku- 11,1 V: n lipoakkua käytetään virran tuottamiseen robotille. Vaikka olen käyttänyt 11,1 V: n lipoakkua, tämä kapasiteetti on enemmän kuin mitä tarvitaan arduinoon ja moottoreihin. Jos löydät kevyen 7,4 V: n lipo-akku tai 6V Ni-MH -akku, se on täydellinen. tästä syystä minun on käytettävä buck-muunninta jännitteen muuttamiseksi 6 V: ksi.

11,1 V-https://www.ebay.com/itm/High-Capacity-11-1V-2200…

7.4 V-

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

Lisäksi tarvitset hyppyjohtimia, muttereita ja pultteja, ruuvimeisseliä ja sähköteippejä sekä vetoketjuja varmistaaksesi, että kaikki on paikallaan.

Vaihe 3: Kokoaminen

Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen

kiinnitä moottorit ja pieni pyöräpyörä levyyn muttereilla ja ruuveilla ja asenna sitten QTR -anturi, moottorin ohjain, arduino -kortti ja lopuksi akku runkoon.

Tässä on täydellinen kaavio, jonka löysin Internetistä, joka kertoo, miten yhteydet tulisi tehdä.

Vaihe 4: Suunnittele viivarata

Suunnittele linjaraita
Suunnittele linjaraita

Nyt projektisi näyttää olevan melkein ohi. Viimeisessä vaiheessa sinulla on oltava pieni areena robotin testaamiseen. Olen käyttänyt satunnaista viivaa, jonka leveys on 3 cm ja valkoinen viiva mustalla taustalla. Varmista, että olet liittänyt kaiken hyvin. Ja vältä toistaiseksi 90 degees -kulma- ja poikkileikkausta, koska se on monimutkainen tapaus koodauksen kannalta.

Vaihe 5: Ohjelmoi koodi

1. Lataa ja asenna Arduino

Työpöydän IDE

· Ikkunat -

· Mac OS X -

· Linux -

2. Lataa ja liitä QTR 8 RC -anturimatriisitiedosto Arduino -kirjastojen kansioon.

·

· Liitä tiedostot polulle - C: / Arduino / -kirjasto

3. Lataa ja avaaLINEFOLLOWING.ino

4. Lähetä koodi arduino -kortille USB -kaapelin kautta

Vaihe 6: VALMIS

Image
Image

nyt sinulla on linjanseurantarobotti, jonka olet itse tehnyt.

Toivottavasti tästä opetusohjelmasta oli apua. Älä epäröi ottaa minuun yhteyttä osoitteessa [email protected], jos sinulla on ongelmia.

nähdään pian uuden projektin kanssa.

Nauti rakentamisesta !!

Suositeltava: