- Nødvendig materiale
- Begreper for linjefølger
- Kretsforklaring
- Arbeid med Line Follower Robot ved hjelp av MSP430
- Kretsdiagram
- Programmering Forklaring
Line follower robot er et av de populære robotikkprosjektene blant studenter og nybegynnere på grunn av sin enkelhet. Den følger en linje, enten svart eller hvit, avhengig av hvordan du programmerer mikrokontrolleren din. Her lager vi en linjefølgerrobot ved hjelp av MSP430 launchpad fra Texas Instruments, som følger den svarte linjen. Hvis du ikke har brukt MSP430-lanseringsplaten, kan du lese veiledningen Bli stirret med MSP430.
Nødvendig materiale
- MSP430G2 LaunchPad fra Texas Instruments
- L298D-motordrivermodulen
- Koble ledninger
- IR-sensormoduler
- Chasis, hjul, berg og dalbane
- Energia IDE
- Strømforsyning (3,3v) og 5v-12v
Begreper for linjefølger
Begrepet linjefølger er relatert til lys. Vi har brukt lysets oppførsel ved svart og hvitt underlag. Når lys faller på en hvit overflate reflekteres det nesten fullt ut, og i tilfelle svart overflate absorberes lys av svart overflate. Denne forklarte lysets oppførsel brukes i denne linjefølgerroboten.
I denne MSP430-baserte linjefølgerroboten har vi brukt IR-sendere og IR-mottakere, også kalt fotodioder. De brukes til å sende og motta lys. IR overfører infrarøde lys. Når infrarøde stråler faller på en hvit overflate, reflekteres den tilbake og fanges opp av fotodioder som genererer noen spenningsendringer. Når IR-lys faller på en svart overflate, absorberes lys av den svarte overflaten, og ingen stråler reflekteres tilbake, slik at fotodioden ikke mottar noe lys eller stråler. For å lære mer om IR-sensorer, følg lenken.
Her i denne MSP430-baserte linjefølgerroboten når sensoren registrerer en hvit overflate, får MSP 1 som inngang, og når den registrerer svart linje, får MSP 0 som inngang.
Kretsforklaring
Vi kan dele hele linjefølgerroboten i forskjellige seksjoner som sensorseksjon, kontrollseksjon og førerseksjon.
Sensorseksjon: Denne seksjonen inneholder IR-dioder, potensiometer, Comparator (Op-Amp) og LED. Potensiometer brukes til å stille inn referansespenning ved komparatorens ene terminal og IR-sensorer registrerer linjen og gir en endring i spenning ved komparatorens andre terminal. Deretter sammenligner komparator begge spenningene og genererer et digitalt signal ved utgangen. Her i denne kretsen brukte vi to komparatorer for to sensorer. LM358 brukes som komparator. LM358 har innebygd to lav-støy Op-amp.
Kontrollseksjon: MSP430 Launchpad brukes til å kontrollere hele prosessen med linjefølgerrobot. Utgangene til komparatorene er koblet til den digitale pin P1_3 og P1_4 på MPS430 Launchpad. MSP430 Launchpad leser disse signalene og sender kommandoer til førerkretsen til drivlinjefølgeren.
Førerseksjon: Førerseksjonen består av motorfører og to likestrømsmotorer. Motordriveren brukes til å kjøre motorer fordi MSP430 Launchpad ikke leverer nok spenning og strøm til motoren. Så vi la til en motorførerkrets for å få nok spenning og strøm til motoren. Her har vi brukt L298d-driveren til å kjøre DC Motors. MSP430 Launchpad sender kommandoer til denne motordriveren, og deretter kjører den motorer.
Vi har utviklet Line Follower Robots ved hjelp av forskjellige Micrcontroller:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot ved hjelp av Arduino
- Line Follower Robot ved hjelp av Raspberry Pi
- Line Follower Robot ved hjelp av PIC Microcontroller
Arbeid med Line Follower Robot ved hjelp av MSP430
Å jobbe med linjefølger er veldig interessant. Linjefølgerrobot registrerer svart linje ved å bruke sensor og sender deretter signalet til MSP430 Launchpad. Deretter driver MSP430 Launchpad motoren i henhold til sensorens utgang.
Her i dette prosjektet bruker vi to IR-sensormoduler, nemlig venstre sensor og høyre sensor. Når både venstre og høyre sensor registrerer hvitt, beveger roboten seg fremover.
Hvis venstre sensor kommer på svart linje, svinger roboten til venstre.
Hvis høyre sensor fornemmer svart linje, svinger roboten til høyre til begge sensoren kommer på hvitt underlag. Når den hvite overflaten kommer, begynner roboten å bevege seg fremover igjen.
Hvis begge sensorene kommer på svart linje, stopper roboten.
Kretsdiagram
Krets for denne MSP430 Line Follower Robot er veldig enkel. Utgangen fra komparatorer er direkte koblet til MSP430 Launchpad's digitale pin-nummer p1_3 og P1_4. Og motordriverens inngangspinne IN1, IN2, IN3 og IN4 er koblet til henholdsvis MSP430 Launchpad's digitale pinne P1_5, P2_0, P2_1, P2_2. En motor er koblet til utgangsstiften til motoren driver OUT1 og OUT2, og en annen motor er koblet til OUT3 og OUT4. Her har vi brukt 3,3 v forsyning for strøm hele kretsen bortsett fra motordrivermodulen. Vi har levert 8v til motordrivermodulen. Brukeren kan bruke 5v-12v.
Du kan også bygge din egen IR-modul, som jeg bygde på Perf Board. Nedenfor er kretsen for IR-modul:
Programmering Forklaring
Komplett program og video finner du på slutten av denne artikkelen.
I et program definerer vi først og fremst inngangs- og utgangspinnen for sensor og motorer. Definer deretter noen makroer for retningen til linjefølgeren, og skriv deretter et direktiv for å velge sensorutgang
Merk: Sensoren kan være aktiv lav eller aktiv høy, så sjekk først hva som er utgangen til sensoren, og velg deretter direktivet ved å kommentere eller fjerne kommentar til activeLowMode . For aktiv HIGH, kommenter den activeLowMode- makroen.
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {fremover, venstre, høyre, stopp}; #else int res = {stopp, høyre, venstre, fremover}; #slutt om
Etter det, i oppsettfunksjon , gir vi retning til sensor og motorstift. Og så i sløyfefunksjonen sjekker vi innganger og sender utdata til motordrivermodulen for å kjøre motorene.
ugyldig oppsett () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } ugyldig sløyfe () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); for (int i = 0; i <4; i ++) digitalWrite (pins, (res >> i) & 0x01); }
Det er fire forhold i denne linjefølgeren som vi leser ved å bruke MSP430 Launchpad. Vi har brukt to sensorer, nemlig venstre sensor og høyre sensor.
Forhold: Aktiv HØY utgang
Inngang |
Produksjon |
Bevegelse Av robot |
||||
Venstre sensor |
Høyre sensor |
Venstre motor |
Høyre motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Stoppe |
0 |
1 |
1 |
0 |
0 |
0 |
Ta til høyre |
1 |
0 |
0 |
0 |
1 |
0 |
Ta til venstre |
1 |
1 |
1 |
0 |
1 |
0 |
Framover |
Programmet er skrevet i henhold til tabellforholdene ovenfor. Sjekk den komplette koden og demonstrasjonsvideoen nedenfor.