- Tarvittavat materiaalit:
- Linjaseuraajan käsitteet
- Piirikaavio ja selitys:
- PIC-mikrokontrollerin ohjelmointi:
- PIC-linjan seuraaja toiminnassa:
Linjaseuraajarobotti on yksinkertainen mutta kiehtova robotti, jonka useimmat opiskelijat / harrastajat voivat rakentaa. Tässä opetusohjelmassa opimme kuinka linjaseuraajarobotti toimii ja kuinka voimme rakentaa sellaisen käyttämällä PIC-mikrokontrolleria PIC16F877A. PIC16F877A on 40-nastainen monikäyttöinen MCU Microchipiltä, olemme käyttäneet tätä IC: tä täydellisessä PIC-opetusohjelmassa. Jos olet uusi, tässä kannattaa ehkä tarkastella näitä PIC-oppaita oppiaksesi tämän IC: n perustiedot ja kuinka ladata ohjelmia mikro-ohjaimeen. Koska olemme jo käsitelleet näitä tietoja opetusohjelmissamme, ohitamme ne alla olevassa selityksessä.
Jos olet kiinnostunut robotiikasta, sinun pitäisi olla hyvin perehtynyt nimeen " Line Follower Robot ". Tämä robotti pystyy seuraamaan linjaa vain anturien ja moottorien avulla. Tämä robotti antaa sinulle tilaa loputtomalle kehitykselle, ja robotit, kuten Kiva (Amazon-varastorobotti), ovat esimerkki tästä. Voit myös tarkistaa muut linjaseuraajarobotimme:
- Linjaseuraajarobotti 8051-mikrokontrollerilla
- Linjaseurainrobotti Arduinolla
- Linjaseuraajarobotti Raspberry Pi: llä
Tarvittavat materiaalit:
- PIC16F877A
- IR-anturi (2Nos)
- DC-vaihdemoottori (2Nos)
- L293D-moottorin ohjain
- Cheeses (Voit myös rakentaa oman kartongin avulla)
- Virtapankki (kaikki käytettävissä olevat virtalähteet)
Linjaseuraajan käsitteet
Linjaseuraajarobotti pystyy seuraamaan linjaa infrapunatunnistimen avulla. Tässä anturissa on IR-lähetin ja IR-vastaanotin. IR-lähetin (IR LED) lähettää valon ja vastaanotin (valodiodi) odottaa lähetetyn valon paluuta. IR-valo palaa takaisin vain, jos pinta heijastaa sitä. Vaikka kaikki pinnat eivät heijasta infrapunavaloa, vain valkoinen väripinta voi heijastaa ne kokonaan ja musta väri pinta havaitsee ne täysin alla olevan kuvan mukaisesti. Lisätietoja IR-anturimoduulista on täällä.
Nyt käytämme kahta infrapuna-anturia tarkistaaksemme, onko robotti radalla linjan kanssa, ja kahdella moottorilla korjaamaan robotin, jos robotti liikkuu radalta. Nämä moottorit vaativat suurta virtaa ja niiden tulisi olla kaksisuuntaiset; siksi käytämme moottorin ohjainmoduulia, kuten L293D. Tarvitsemme myös PIC: n kaltaisen mikrokontrollerin ohjaamaan moottoreita IR-anturin arvojen perusteella. Samanlainen yksinkertaistettu lohkokaavio on esitetty alla.
Nämä kaksi IR-anturia sijoitetaan yksi linjan molemmille puolille. Jos mikään antureista ei havaitse mustaa viivaa, PIC-mikrokontrolleri neuvoo moottoreita liikkumaan eteenpäin alla olevan kuvan mukaisesti
Jos vasen anturi tulee mustalle viivalle, mikro-ohjain kehottaa robottia kääntymään vasemmalle pyörittämällä oikeaa pyörää yksin.
Jos oikea anturi tulee mustalle viivalle, mikro-ohjain kehottaa robottia kääntymään oikealle kiertämällä vasenta pyörää yksin.
Jos molemmat anturit tulevat mustalle linjalle, robotti pysähtyy.
Tällä tavalla robotti pystyy seuraamaan linjaa menemättä radan ulkopuolelle. Katsotaan nyt, kuinka piiri ja koodi näyttävät.
Piirikaavio ja selitys:
Tämän PIC-pohjaisen linjaseuraajarobotin täydellinen kytkentäkaavio on esitetty alla
Piirissä käytetään kahta IR-anturia ja paria DC-vaihdemoottoreita yhdessä moottorin ohjainmoduulin kanssa, kuten yllä on esitetty. Tässä projektissa käytetty moottoriohjainmoduuli on L293D, tarvitsemme moottoriohjaimen, koska PIC-mikrokontrollerin ulostulotappi ei voi tuottaa tarpeeksi virtaa moottoreiden ajamiseksi. Tämä moduuli saa virran suoraan virtalähteestä (5 V) piirin mukaisesti. Moduulissa on neljä nastaa (kaksi kullekin moottorille), jotka on kytketty PIC: ään moottoreiden suunnan ohjaamiseksi. Meillä on myös kaksi IR-anturia, jotka toimivat tulona PIC-mikrokontrolleriin. Nämä anturit menevät korkealle (1), jos ne ovat valkoisen pinnan yli, ja menevät mataliksi (0), kun ne ovat mustan pinnan päällä. Täydelliset nastaliitokset on esitetty alla olevassa taulukossa.
S. ei |
Yhdistetty |
Yhdistetty |
1 |
IR-anturi Vasen uloke |
RD2 (tappi 21) |
2 |
IR-anturi Oikea ulostulo |
RD3 (tappi 22) |
4 |
Moottori 1 kanava A tappi |
RC4 (tappi 23) |
5 |
Moottori 1 kanava B-nasta |
RC5 (tappi 25) |
6 |
Moottorin 2 kanavan A tappi |
RC6 (tappi 26) |
7 |
Moottorin 2 kanavan B tappi |
RC7 (tappi 27) |
Todellisessa laitteistossa olen käyttänyt tehopankkia, joka antaa + 5 V: n lähdön suoraan USB-portin kautta; Siksi olen ohittanut 7805-jännitesäätimen ja syöttänyt PIC: n, anturit ja moottorit samalla tavalla. Voit tehdä saman käyttämällä 12 V: n akkua yhdessä säätimen kanssa, kuten piirissä on esitetty.
PIC-mikrokontrollerin ohjelmointi:
Kun olet valmis laitteistosi kanssa, on aika aloittaa ohjelmointi. Täydellinen ohjelma Tämän PIC Line Seuraaja robotti projekti annetaan lopussa tämän sivun. Tärkeät palat selitetään kuitenkin alla.
Alusta I / O-nastat seuraavilla riveillä. Kaksi infrapunatunnistintappia toimivat tulona ja neljä moottorinappia toimivat ulostulotapina.
TRISD2 = 1; TRISD3 = 1; // Kylpy IR-anturitapit ilmoitetaan tulona TRISC4 = 0; TRISC5 = 0; // Moottorin 1 nastat ilmoitettu lähtöön TRISC6 = 0; TRISC7 = 0; // Moottori 2 nastaa ilmoitettu tuotokseksi
Nyt meidän on luettava sekä IR-anturin tila että ohjattava moottoria vastaavasti. Esimerkiksi, jos molemmat anturit ovat korkealla (eivät kuulu mustan viivan alle), liikutamme molempia moottoreita eteenpäin alla olevan ohjelman mukaisesti.
if (RD2 == 1 && RD3 == 1) // Molemmat anturit eivät ole yliviivat {RC4 = 0; RC5 = 1; // Moottori 1 eteenpäin RC6 = 1; RC7 = 0; // moottori 2 eteenpäin}
Jos vasen anturi tulee mustan viivan yli, teemme oikean käännöksen pitämällä moottoria 1 paikallaan ja pyörittämällä moottoria 2 eteenpäin. Tämän tyyppistä kääntämistä kutsutaan differentiaaliseksi sorvaukseksi.
muuten, jos (RD2 == 0 && RD3 == 1) // Vasen anturi on mustan viivan yli {RC4 = 1; RC5 = 1; // Moottorin 1 pysäytys RC6 = 1; RC7 = 0; // moottori 2 eteenpäin}
Vastaavasti, jos oikea anturi tulee mustan viivan yli, botti tehdään ottamaan vasen käänne pitämällä toista moottoria paikallaan ja pyörittämällä ensimmäistä moottoria yksin eteenpäin, kuten alla on esitetty.
muuten jos (RD2 == 1 && RD3 == 0) // Oikea anturi on mustan viivan yläpuolella {RC4 = 0; RC5 = 1; // Moottori 1 eteenpäin RC6 = 1; RC7 = 1; // moottori 2 pysäytys}
Lopuksi, jos molemmat anturit ovat mustan viivan alla, on aika lopettaa botti. Tämä voidaan tehdä asettamalla molempien moottoreiden kaikki tapit korkealle. Sama tekevä koodi näkyy alla
else // Molemmat anturit mustan viivan yli {RC4 = 1; RC5 = 1; // Moottorin 1 pysäytys RC6 = 1; RC7 = 1; // moottori 2 pysäytys}
Eli ohjelma on valmis ja se voidaan ladata PIC: ään millä tahansa ohjelmoijalla, kuten PicKit.
PIC-linjan seuraaja toiminnassa:
Kun laitteisto ja koodi ovat valmiit, on aika toimia. Kuten aiemmin sanoin, olen käyttänyt virtapankkia botin virtalähteeseen, joten minun tarvitsee vain liittää virtapankki bottiin, jossa laitteisto on jo määritetty ja koodi jo ladattu.
PIC Perf -levy tehtiin PIC-opetusohjelmaamme varten, jossa opimme käyttämään PIC-mikrokontrolleria. Haluat ehkä palata niihin PIC-mikrokontrollerioppaisiin, joissa käytetään MPLABX: ää ja XC8: ta, jos et tiedä miten polttaa ohjelmaa Pickit 3: lla, koska ohitan kaikki nämä perustiedot.
Käynnistä robotti yksinkertaisesti mustalla viivalla ja sinun tulisi katsoa sitä seuraamalla linjaa.
Saatat kohdata joitain vaikeuksia alussa, siinä tapauksessa lue lisää. Jos pyörät pyörivät vastakkaiseen suuntaan, vaihda yksinkertaisesti pyörän pyörimissuunta vastakkaiseen suuntaan. Jos botti poikkeaa linjasta, vaihda IR-anturi ja kaikkien pitäisi olla hyviä.
Botin täydellinen toiminta löytyy alla olevasta videosta. Toivottavasti pidät projektista ja nautit rakentamaan jotain vastaavaa. Jos sinulla on vaikeuksia saada tämä toimimaan, voit lähettää ne alla olevaan kommenttiosioon saadaksesi sen ratkaistua tai keskustella teknisistä sisällöistä foorumillamme.