- Nødvendige materialer:
- Begreber om linjefølger
- Kredsløbsdiagram og forklaring:
- Programmering af PIC Microcontroller:
- PIC Line Follower i aktion:
En Line Follower Robot er en enkel, men fascinerende robot, som de fleste studerende / hobbyister kan bygge. I denne vejledning lærer vi, hvordan en Line Follower-robot fungerer, og hvordan vi kan bygge en ved hjælp af PIC Microcontroller PIC16F877A. PIC16F877A er en 40-benet Multipurpose MCU fra Microchip, vi har brugt denne IC i vores komplette PIC-tutorial-serie. Hvis du er ny, kan du måske se på disse PIC-tutorials for at lære det grundlæggende i denne IC, og hvordan du uploader programmer til mikrocontrolleren. Da vi allerede har dækket denne information i vores tutorials, springer vi dem over i nedenstående forklaring.
Hvis du er interesseret i robotik, skal du være meget fortrolig med navnet “ Line Follower Robot ”. Denne robot er i stand til at følge en linje bare ved hjælp af et par sensorer og motorer. Denne robot giver dig plads til uendelig udvikling, og robotter som Kiva (Amazon-lagerrobot) er et eksempel på dette. Du kan også tjekke vores andre Line Follower-robotter:
- Line Follower Robot ved hjælp af 8051 Microcontroller
- Line Follower Robot ved hjælp af Arduino
- Line Follower Robot ved hjælp af Raspberry Pi
Nødvendige materialer:
- PIC16F877A
- IR-sensor (2Nos)
- DC gearmotor (2Nos)
- L293D motordriver
- Chaises (Du kan også bygge dine egne ved hjælp af pap)
- Strømbank (enhver tilgængelig strømkilde)
Begreber om linjefølger
Line Follower Robot er i stand til at spore en linje ved hjælp af en IR-sensor. Denne sensor har en IR-sender og en IR-modtager. IR-senderen (IR-LED) sender lyset, og modtageren (fotodiode) venter på, at det transmitterede lys vender tilbage. Et IR-lys vender kun tilbage, hvis det reflekteres af en overflade. Mens alle overflader ikke reflekterer et IR-lys, kan kun farveoverfladen reflektere dem helt hvidt, og sort farveoverflade vil helt observere dem som vist i nedenstående figur. Lær mere om IR-sensormodul her.
Nu bruger vi to IR-sensorer til at kontrollere, om robotten er på sporet af linjen og to motorer til at rette robotten, hvis den bevæger sig ud af sporet. Disse motorer kræver høj strøm og skal være tovejs; derfor bruger vi et motordrivermodul som L293D. Vi har også brug for en mikrocontroller som PIC til at instruere motorerne baseret på værdierne fra IR-sensoren. Et forenklet blokdiagram af det samme er vist nedenfor.
Disse to IR-sensorer placeres en på hver side af linjen. Hvis ingen af sensorerne registrerer en sort linje, instruerer de PIC-mikrocontrolleren motorerne om at bevæge sig frem som vist nedenfor
Hvis venstre sensor kommer på sort linje, instruerer mikrokontrolleren robotten til at dreje til venstre ved at dreje det højre hjul alene.
Hvis højre sensor kommer på sort linje, instruerer mikrokontrolleren robotten til at dreje til højre ved at dreje det venstre hjul alene.
Hvis begge sensorer kommer på sort linje, stopper robotten.
På denne måde vil robotten kunne følge linjen uden at komme uden for sporet. Lad os nu se, hvordan kredsløbet og koden ser ud.
Kredsløbsdiagram og forklaring:
Det komplette kredsløbsdiagram for denne PIC-baserede Line Follower Robot er vist nedenfor
Kredsløbet anvender to IR-sensorer og et par DC-gearmotorer sammen med et motordrivermodul som vist ovenfor. Motordrivermodulet, der anvendes i dette projekt, er L293D, vi har brug for en motordriver, fordi udgangsstiften på PIC Microcontroller ikke kan tilvejebringe nok strøm til, at motorerne kan køre. Dette modul får strøm direkte fra strømkilden (5V) som vist i kredsløbet. Modulet har fire ben (to til hver motor), der er forbundet til PIC for at styre motorernes retning. Vi har også to IR-sensorer, der fungerer som input til PIC-mikrocontrolleren. Disse sensorer vil gå højt (1), hvis de er over en hvid overflade og vil gå lave (0), når de er over en sort overflade. De komplette stiftforbindelser er illustreret i nedenstående tabel.
S. nr |
Forbundet fra |
Forbundet til |
1 |
IR-sensor Udeladt pin |
RD2 (pin 21) |
2 |
IR-sensor Stik ud |
RD3 (pin 22) |
4 |
Motor 1 kanal A pin |
RC4 (pin 23) |
5 |
Motor 1 kanal B pin |
RC5 (pin 25) |
6 |
Motor 2 Channel A pin |
RC6 (pin 26) |
7 |
Motor 2 kanal B pin |
RC7 (pin 27) |
I den egentlige hardware har jeg brugt en powerbank, som giver en output på + 5V direkte gennem sin USB-port; derfor har jeg omgået 7805 spændingsregulatoren og drevet PIC, sensorer og motorer ved hjælp af det samme. Du kan gøre det samme ved at bruge et 12V batteri sammen med en regulator som vist i kredsløbet.
Programmering af PIC Microcontroller:
Når du er klar med din hardware, er det tid til at starte programmeringen. Det komplette program for dette PIC Line Follower Robot-projekt findes i slutningen af denne side. Imidlertid forklares de vigtige bidder nedenfor.
Initialiser I / O-benene ved hjælp af følgende linjer. De 2 IR-sensorstifter fungerer som indgang, og de fire motorstifter fungerer som outputstifter.
TRISD2 = 1; TRISD3 = 1; // Bad IR-sensorstifter erklæres som input TRISC4 = 0; TRISC5 = 0; // Motor 1 ben erklæret som output TRISC6 = 0; TRISC7 = 0; // Motor 2 ben erklæret som output
Nu skal vi læse både IR-sensoren og styre motoren i overensstemmelse hermed. For eksempel hvis begge sensorerne er høje (kommer ikke under sort linje), bevæger vi begge motorerne fremad som vist i programmet nedenfor.
hvis (RD2 == 1 && RD3 == 1) // Begge sensorer ikke over balck linje {RC4 = 0; RC5 = 1; // Motor 1 frem RC6 = 1; RC7 = 0; // Motor 2 fremad}
Hvis den venstre sensor kommer over den sorte linje, drejer vi til højre ved at holde motor 1 stille og dreje motor 2 i fremadgående retning. Denne type drejning kaldes differentiel drejning.
ellers hvis (RD2 == 0 && RD3 == 1) // Venstre sensor er over sort linje {RC4 = 1; RC5 = 1; // Motor 1 stop RC6 = 1; RC7 = 0; // Motor 2 fremad}
Tilsvarende, hvis den højre sensor kommer over den sorte linje, får bot'en til at dreje til venstre ved at holde den anden motor stille og rotere den første motor alene i fremadgående retning som vist nedenfor.
ellers hvis (RD2 == 1 && RD3 == 0) // Højre sensor er over sort linje {RC4 = 0; RC5 = 1; // Motor 1 frem RC6 = 1; RC7 = 1; // Motor 2 stop}
Endelig hvis begge sensorer kommer under en sort linje, er det tid til at stoppe bot. Dette kan gøres ved at gøre alle stifterne på begge motorer høje. Koden til at gøre det samme vises nedenfor
ellers // Begge sensorer over sort linje {RC4 = 1; RC5 = 1; // Motor 1 stop RC6 = 1; RC7 = 1; // Motor 2 stop}
Det er det, programmet er klar og kan uploades til PIC ved hjælp af enhver programmør som PicKit.
PIC Line Follower i aktion:
Når hardware og kode er klar, er det tid til nogle handlinger. Som tidligere nævnt har jeg brugt en Power bank til at tænde for bot, så alt hvad jeg skal gøre er blot at forbinde powerbanken til bot, som har hardware opsat og kode allerede uploadet.
PIC Perf-kortet blev lavet til vores PIC-tutorial-serie, hvor vi lærte at bruge PIC-mikrocontroller. Du vil måske gå tilbage til disse PIC Microcontroller-tutorials ved hjælp af MPLABX og XC8, hvis du ikke ved, hvordan man brænder et program ved hjælp af Pickit 3, da jeg vil springe over alle disse grundlæggende oplysninger.
Start nu blot boten over en sort linje, og du skal se den følge linjen.
Du kan muligvis stå over for nogle vanskeligheder i starten i så fald læse videre. Hvis hjulene roterer modsat, skal du blot udskifte polariteten på motoren, hvis hjul roterer i modsat retning. Hvis bot afviger fra linjen, skal du udveksle IR-sensoren, og alt skal være godt.
Den komplette bearbejdning af bot kan findes i videoen nedenfor. Håber du kan lide projektet og nød at bygge noget lignende. Hvis du har problemer med at få dette til at fungere, kan du sende dem i kommentarfeltet nedenfor for at få det løst eller bruge vores fora til at diskutere teknisk indhold.