Sisällysluettelo:
- Vaihe 1: Toimintaperiaate
- Vaihe 2: Rakenna
- Vaihe 3: Kokoaminen
- Vaihe 4: Suunnittele viivarata
- Vaihe 5: Ohjelmoi koodi
- Vaihe 6: VALMIS
Video: PID-pohjainen linjaseurantarobotti POLOLU QTR 8RC -anturijoukolla: 6 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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.
- 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.
- 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.
- 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
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
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
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
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:
Itsetasapainottava robotti - PID -ohjausalgoritmi: 3 vaihetta
Itsetasapainottava robotti - PID -ohjausalgoritmi: Tämä projekti suunniteltiin, koska olin kiinnostunut oppimaan lisää ohjausalgoritmeista ja siitä, kuinka tehokkaasti toteuttaa toiminnallisia PID -silmukoita. Hanke on vielä kehitysvaiheessa, koska Bluetooth -moduulia ei ole vielä lisätty, mikä
Hexapod Arduino Pololu Maestro Servo Ohjaus: 11 vaihetta
Hexapod Arduino Pololu Maestro Servo Control: Nach dem mein erster Versuch mit einem Hexapod, daran gescheitert war das die servos zu schwach waren jetzt ein neuer Versuch mit mit 10Kg Servos aus HK. Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden
Mobiiliohjattu linjaseurantarobotti esteiden välttämisellä: 6 vaihetta
Mobiiliohjattu linjaseurantarobotti esteiden välttämisellä: Tämä oli vain idea, jossa useita ominaisuuksia, kuten esteiden välttäminen, linjan seuraaja, mobiiliohjattu jne., Sekoitettiin yhteen ja tehtiin yhdeksi kokonaisuudeksi. asu tähän kokoonpanoon. Tässä minä
Kuinka tehdä maailman pienin linjaseurantarobotti (robo Rizeh): 7 vaihetta (kuvilla)
Kuinka tehdä maailman pienin linjaseurantarobotti (robo Rizeh): Kuinka tehdä maailman pienin linjanseurantarobotti (vibrobotti) " roboRizeh " paino: 5 gr koko: 19x16x10 mm kirjoittanut: Naghi Sotoudeh Sana " Rizeh " on persialainen sana, joka tarkoittaa "pientä". Rizeh on värähtelyyn perustuva hyvin pieni ro
Pallotasapaino ja PID -viulisti: 7 vaihetta (kuvilla)
Ball Balancer ja PID Fiddler: Tämä projekti on tarkoitettu ihmisille, joilla on kokemusta Arduinon käytöstä. Aiempi tieto servojen, OLED -näyttöjen, kattiloiden, painikkeiden ja juottamisen käytöstä on hyödyllistä. Tämä projekti käyttää 3D -painettuja osia. Ball Balancer on PID -testauslaite