- Nødvendige materialer:
- Begreper for linjefølger
- Kretsdiagram og forklaring:
- Programmering av PIC Microcontroller:
- PIC Line Follower i aksjon:
En Line Follower Robot er en enkel, men fascinerende robot for de fleste studenter / hobbyister å bygge. I denne opplæringen lærer vi hvordan en linjefølgerrobot fungerer og hvordan vi kan bygge en ved hjelp av PIC Microcontroller PIC16F877A. PIC16F877A er en 40-pins multifunksjons MCU fra Microchip, vi har brukt denne ICen i vår komplette PIC-opplæringsserie. Hvis du er ny, kan det være lurt å se på disse PIC-opplæringene for å lære det grunnleggende om denne IC og hvordan du laster opp programmer til mikrokontrolleren. Siden vi allerede har dekket denne informasjonen i opplæringen, hopper vi over dem i forklaringen nedenfor.
Hvis du er interessert i robotikk, bør du være veldig kjent med navnet “ Line Follower Robot ”. Denne roboten er i stand til å følge en linje, bare ved å bruke par sensor og motorer. Denne roboten gir deg rom for uendelig utvikling, og roboter som Kiva (Amazon-lagerrobot) er et eksempel på dette. Du kan også sjekke våre andre Line Follower-roboter:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot ved hjelp av Arduino
- Line Follower Robot ved hjelp av Raspberry Pi
Nødvendige materialer:
- PIC16F877A
- IR-sensor (2Nos)
- DC-girmotor (2Nos)
- L293D Motordriver
- Chaises (Du kan også lage dine egne ved hjelp av papp)
- Kraftbank (hvilken som helst tilgjengelig strømkilde)
Begreper for linjefølger
Line Follower Robot er i stand til å spore en linje ved hjelp av en IR-sensor. Denne sensoren har en IR-sender og IR-mottaker. IR-senderen (IR-LED) sender lyset og mottakeren (fotodiode) venter på at det sendte lyset kommer tilbake. Et IR-lys vil bare komme tilbake hvis det reflekteres av en overflate. Mens alle overflater ikke reflekterer et IR-lys, kan bare fargeoverflaten reflektere dem helt, og den svarte overflaten vil fullstendig observere dem som vist i figuren nedenfor. Lær mer om IR-sensormodul her.
Nå skal vi bruke to IR-sensorer for å sjekke om roboten er i sporet med linjen og to motorer for å korrigere roboten hvis den beveger seg ut av sporet. Disse motorene krever høy strøm og skal være toveis; derfor bruker vi en motordrivermodul som L293D. Vi trenger også en mikrokontroller som PIC for å instruere motorene basert på verdiene fra IR-sensoren. Et forenklet blokkdiagram av det samme er vist nedenfor.
Disse to IR-sensorene blir plassert en på hver side av linjen. Hvis ingen av sensorene oppdager en svart linje, instruerer de PIC-mikrokontrolleren motorene å bevege seg fremover som vist nedenfor
Hvis venstre sensor kommer på svart linje, instruerer mikrokontrolleren roboten å svinge til venstre ved å dreie på høyre hjul alene.
Hvis høyre sensor kommer på svart linje, instruerer mikrokontrolleren roboten å svinge til høyre ved å dreie venstre hjul alene.
Hvis begge sensorene kommer på svart linje, stopper roboten.
På denne måten vil roboten kunne følge linjen uten å komme utenfor sporet. La oss nå se hvordan kretsen og koden ser ut.
Kretsdiagram og forklaring:
Det komplette kretsskjemaet for denne PIC-baserte Line Follower Robot er vist nedenfor
Kretsen bruker to IR-sensorer og et par DC-girmotorer sammen med en motordrivermodul som vist ovenfor. Motordrivermodulen som brukes i dette prosjektet er L293D, vi trenger en motordriver fordi utgangsstiften til PIC Microcontroller ikke kan skaffe nok strøm til at motorene kan kjøre. Denne modulen får strøm direkte fra strømkilden (5V) som vist i kretsen. Modulen har fire pinner (to for hver motor) som er koblet til PIC for å kontrollere retningen på motorene. Vi har også to IR-sensorer som fungerer som en inngang til PIC-mikrokontrolleren. Disse sensorene vil gå høyt (1) hvis de er over en hvit overflate og vil gå lave (0) når de er over en svart overflate. De komplette pin-tilkoblingene er illustrert i tabellen nedenfor.
S. nr |
Koblet fra |
Koblet til |
1 |
IR-sensor Utelatt pin |
RD2 (pin 21) |
2 |
IR-sensor Rett ut pin |
RD3 (pin 22) |
4 |
Motor 1 kanal A pin |
RC4 (pin 23) |
5 |
Motor 1 kanal B pin |
RC5 (pin 25) |
6 |
Motor 2-kanals A-pinne |
RC6 (pin 26) |
7 |
Motor 2-kanals B-pinne |
RC7 (pin 27) |
I selve maskinvaren har jeg brukt en strømbank som gir en utgang på + 5V direkte gjennom USB-porten; Derfor har jeg gått utenom 7805 spenningsregulator og drevet PIC, sensorer og motorer med det samme. Du kan gjøre det samme ved å bruke et 12V batteri sammen med en regulator som vist i kretsen.
Programmering av PIC Microcontroller:
Når du er klar med maskinvaren din, er det på tide å begynne å programmere. Det komplette programmet til dette PIC Line Follower Robot Project er gitt på slutten av denne siden. Imidlertid er de viktige bitene forklart nedenfor.
Initialiser I / O-pinnene med følgende linjer. De 2 IR-pinnene fungerer som inngang, og de fire motorpinnene fungerer som utgangspinnene.
TRISD2 = 1; TRISD3 = 1; // Bad IR-sensorpinnene er erklært som inngang TRISC4 = 0; TRISC5 = 0; // Motor 1 pinner erklært som utgang TRISC6 = 0; TRISC7 = 0; // Motor 2 pinner erklært som utgang
Nå må vi lese statusen til både IR-sensoren og kontrollere motoren deretter. For eksempel hvis begge sensorene er høye (kommer ikke under svart linje), så beveger vi begge motorene fremover som vist i programmet nedenfor.
hvis (RD2 == 1 && RD3 == 1) // Begge sensoren ikke over balken linje {RC4 = 0; RC5 = 1; // Motor 1 frem RC6 = 1; RC7 = 0; // Motor 2 fremover}
Hvis den venstre sensoren kommer over den svarte linjen , tar vi en høyresving ved å holde motoren 1 stille og rotere motoren 2 i fremoverretningen. Denne typen sving kalles differensialdreining.
annet hvis (RD2 == 0 && RD3 == 1) // Venstre sensor er over svart linje {RC4 = 1; RC5 = 1; // Motor 1 stopp RC6 = 1; RC7 = 0; // Motor 2 fremover}
Tilsvarende, hvis den høyre sensoren kommer over den svarte linjen , blir boten gjort til å ta en venstresving ved å holde den andre motoren stille og rotere den første motoren alene i fremoverretning som vist nedenfor.
annet hvis (RD2 == 1 && RD3 == 0) // Høyre sensor er over svart linje {RC4 = 0; RC5 = 1; // Motor 1 frem RC6 = 1; RC7 = 1; // Motor 2 stopp}
Endelig hvis begge sensorene kommer under en svart linje, er det på tide å stoppe boten. Dette kan gjøres ved å gjøre alle tappene på begge motorene høye. Koden for å gjøre det samme er vist nedenfor
annet // Begge sensoren over svart linje {RC4 = 1; RC5 = 1; // Motor 1 stopp RC6 = 1; RC7 = 1; // Motor 2 stopp}
Det er det programmet er klart og kan lastes opp til PIC ved hjelp av hvilken som helst programmerer som PicKit.
PIC Line Follower i aksjon:
Når maskinvaren og koden er klar, er det tid for litt handling. Som sagt tidligere har jeg brukt en Power bank for å drive bot, så alt jeg trenger å gjøre er å bare koble powerbanken til bot som har maskinvaren satt opp og koden allerede er lastet opp.
PIC Perf-kortet ble laget for vår PIC-opplæringsserie, der vi lærte å bruke PIC-mikrokontroller. Det kan være lurt å gå tilbake til disse PIC Microcontroller-opplæringene ved hjelp av MPLABX og XC8 hvis du ikke vet hvordan du skal brenne et program ved hjelp av Pickit 3, siden jeg vil hoppe over all den grunnleggende informasjonen.
Nå er det bare å starte boten over en svart linje, og du bør se den følge linjen.
Du kan møte noen vanskeligheter i begynnelsen, i så fall kan du lese videre. Hvis hjulene roterer motsatt, bytter du bare polariteten til motoren som hjulet roterer i motsatt retning. Hvis boten avviker fra linjen, bytter du IR-sensoren, og alt skal være bra.
Fullstendig bearbeiding av bot finner du i videoen nedenfor. Håper du liker prosjektet og likte å bygge noe lignende. Hvis du har problemer med å få dette til å fungere, kan du legge dem ut i kommentarseksjonen nedenfor for å få det løst eller bruke vårt forum for å diskutere teknisk innhold.