- Potrebni materiali:
- Koncepti sledilca vrstic
- Shema vezja in razlaga:
- Programiranje mikrokrmilnika PIC:
- Sledilnik linije PIC v akciji:
Line Follower Robot je preprost, a fascinanten robot za izdelavo večine študentov / hobijev. V tej vadnici bomo izvedeli, kako deluje robotski sledilni robot in kako ga lahko izdelamo z uporabo mikrokrmilnika PIC PIC16F877A. PIC16F877A je 40-pinski večnamenski MCU podjetja Microchip, ki smo ga uporabili v celotni vadnici PIC. Če ste novi, si boste morda želeli ogledati te vadnice PIC, da se naučite osnov tega IC in kako naložite programe v mikrokrmilnik. Ker smo te informacije že zajeli v naših vajah, jih bomo v spodnji razlagi preskočili.
Če vas robotika zanima, morate dobro poznati ime " Robot sledilca linij ". Ta robot lahko sledi liniji, samo z uporabo para senzorja in motorjev. Ta robot vam ponuja prostor za neskončen razvoj in roboti, kot je Kiva (Amazonov skladiščni robot), so primer za to. Preverite lahko tudi druge naše robotske sledilce:
- Robot za sledenje linij z mikrokrmilnikom 8051
- Robot sledilca linije, ki uporablja Arduino
- Line Follower Robot z uporabo Raspberry Pi
Potrebni materiali:
- PIC16F877A
- IR senzor (2 št.)
- Motor z enosmernim gonilom (2 št.)
- L293D Motor voznik
- Ležalniki (lahko tudi sami izdelate kartone)
- Napajalnik (kateri koli razpoložljivi vir energije)
Koncepti sledilca vrstic
Line Follower Robot lahko sledi liniji s pomočjo IR senzorja. Ta senzor ima IR oddajnik in IR sprejemnik. IR oddajnik (IR LED) oddaja svetlobo in sprejemnik (fotodioda) čaka, da se oddana svetloba vrne nazaj. IR svetloba se bo vrnila nazaj le, če jo odbija površina. Medtem pa vse površine ne odbijajo IR svetlobe, le bela barvna površina jih lahko popolnoma odbije, črna barvna površina pa jih bo popolnoma opazovala, kot prikazuje spodnja slika. Več o modulu IR senzorja preberite tukaj.
Zdaj bomo z dvema IR senzorjema preverili, ali je robot na progi, in dva motorja za popravilo robota, če se premakne iz tira. Ti motorji zahtevajo visok tok in bi morali biti dvosmerni; zato uporabljamo modul pogonskega motorja, kot je L293D. Prav tako bomo potrebovali mikrokrmilnik, kot je PIC, da poučuje motorje na podlagi vrednosti iz IR senzorja. Poenostavljen blokovni diagram istega je prikazan spodaj.
Ta dva IR senzorja bosta nameščena na obeh straneh črte. Če noben senzor ne zazna črne črte, mikrokrmilnik PIC ukaže motorjem, da se premaknejo naprej, kot je prikazano spodaj
Če se levi senzor prikaže na črni črti, potem mikrokrmilnik naroči robotu, da zavije levo, tako da sam zavrti desno kolo.
Če desni senzor prihaja na črno črto, potem mikrokrmilnik naroči robotu, da zavije desno, tako da sam zavrti levo kolo.
Če sta oba senzorja na črni črti, se robot ustavi.
Tako bo Robot lahko sledil črti, ne da bi prišel izven proge. Zdaj pa poglejmo, kako izgledata vezje in koda.
Shema vezja in razlaga:
Popoln diagram vezja za tega sledilnega robota na osnovi PIC je prikazan spodaj
Vezje uporablja dva IR senzorja in par enosmernih motorjev z enosmernim tokom, kot je prikazano zgoraj. V tem projektu uporabljen modul motornega pogona je L293D, potrebovali bomo gonilnik motorja, ker izhodni zatič mikrokrmilnika PIC ne more dati dovolj toka za pogon motorjev. Ta modul se napaja neposredno iz vira napajanja (5V), kot je prikazano v vezju. Modul ima štiri zatiče (dva za vsak motor), ki so povezani s PIC za nadzor smeri motorjev. Imamo tudi dva IR senzorja, ki delujeta kot vhod v mikrokrmilnik PIC. Ti senzorji gredo visoko (1), če so na beli površini, in nizko (0), če so na črni površini. Celotne pin povezave so prikazane v spodnji tabeli.
S. Št |
Povezan z |
Povezan z |
1. |
IR senzor Levi ven |
RD2 (pin 21) |
2. |
IR senzor Desni zunanji zatič |
RD3 (nožica 22) |
4. |
Zatič motorja 1 kanal A |
RC4 (zatič 23) |
5. |
Zatič motorja 1 kanal B |
RC5 (nožica 25) |
6. |
Zatič motorja 2 kanala A |
RC6 (pin 26) |
7. |
Zatič motorja 2 kanala B |
RC7 (zatič 27) |
V dejanski strojni opremi sem uporabil napajalnik, ki bo izhod + 5 V neposredno prek vrat USB; zato sem zaobšel regulator napetosti 7805 in z njim napajal PIC, senzorje in motorje. Enako lahko storite z uporabo 12V baterije skupaj z regulatorjem, kot je prikazano v vezju.
Programiranje mikrokrmilnika PIC:
Ko ste pripravljeni na svojo strojno opremo, je čas, da začnete s programiranjem. Celoten program te PIC Line privrženec Robot projekta je podan na koncu te strani. Vendar so pomembni deli pojasnjeni v nadaljevanju.
Inicializirajte V / I zatiče v naslednjih vrsticah. 2 zatiča IR senzorja delujejo kot vhod, štirje zatiči motorja pa kot izhodni zatiči.
TRISD2 = 1; TRISD3 = 1; // Koplji zatičev IR senzorja so deklarirani kot vhod TRISC4 = 0; TRISC5 = 0; // zatiči motorja 1, deklarirani kot izhodni TRISC6 = 0; TRISC7 = 0; // Motor 2 zatiča, prijavljena kot izhodna
Zdaj moramo prebrati stanje IR-senzorja in ustrezno upravljati motor. Na primer, če sta oba senzorja visoka (ne prideta pod črno črto), potem oba motorja premaknemo naprej, kot je prikazano v spodnjem programu.
if (RD2 == 1 && RD3 == 1) // Oba senzorja nista preko zaporne črte {RC4 = 0; RC5 = 1; // Motor 1 naprej RC6 = 1; RC7 = 0; // motor 2 naprej}
Če pride levi senzor čez črno črto, zavijemo desno, tako da motor 1 držimo mirno in motor 2 zavrtimo naprej. Ta vrsta struženja se imenuje diferencialno struženje.
sicer če (RD2 == 0 && RD3 == 1) // Levi senzor je nad črno črto {RC4 = 1; RC5 = 1; // motor 1 stop RC6 = 1; RC7 = 0; // motor 2 naprej}
Podobno, če desni senzor pride čez črno črto, se bot zavije v levo, tako da drugi motor drži mirno in prvi motor sam zasuče v smeri naprej, kot je prikazano spodaj.
sicer če (RD2 == 1 && RD3 == 0) // Desni senzor je nad črno črto {RC4 = 0; RC5 = 1; // Motor 1 naprej RC6 = 1; RC7 = 1; // motor 2 stop}
Končno, če oba senzorja prideta pod črno črto, je čas, da zaustavite bota. To je mogoče doseči tako, da so vsi zatiči obeh motorjev visoki. Koda, ki stori enako, je prikazana spodaj
else // Oba senzorja nad črno črto {RC4 = 1; RC5 = 1; // motor 1 stop RC6 = 1; RC7 = 1; // motor 2 stop}
To je to, da je program pripravljen in ga je mogoče naložiti v PIC s katerim koli programerjem, kot je PicKit.
Sledilnik linije PIC v akciji:
Ko sta strojna oprema in koda pripravljena, je čas za nekaj dejanj. Kot že rečeno, sem za napajanje bota uporabil Power Bank, zato moram le priključiti power bank na bota, ki ima nastavljeno strojno opremo in že naloženo kodo.
PIC Perf plošča je bila narejena za našo vadnico PIC, v kateri smo se naučili uporabljati PIC mikrokrmilnik. Morda se boste želeli vrniti k tistim vadnicam mikrokrmilnika PIC, ki uporabljajo MPLABX in XC8, če ne veste, kako zapisati program s programom Pickit 3, saj bom preskočil vse te osnovne informacije.
Zdaj preprosto zaženite bota čez črno črto in si ga oglejte po vrstici.
V tem primeru lahko na začetku naletite na nekaj težav. Če se kolesa vrtijo v nasprotni smeri, preprosto zamenjajte polarnost motorja, ki se vrti v nasprotni smeri. Če bot odstopa od linije, zamenjajte IR senzor in vse mora biti dobro.
Popolno delovanje bota najdete na spodnjem videoposnetku. Upam, da vam je projekt všeč in ste uživali pri gradnji podobnega. Če imate težave s tem, da to deluje, jih lahko objavite v spodnjem oddelku za komentarje, če želite to rešiti, ali pa uporabite forum na forumih za razpravo o tehnični vsebini.