- Nødvendige materialer
- Begreber om linjefølger
- Forklaring af kredsløb
- Arbejde med Line Follower Robot ved hjælp af MSP430
- Kredsløbsdiagram
- Programmering Forklaring
Line follower robot er et af de populære robotikprojekter blandt studerende og begyndere på grund af dets enkelhed. Det følger en linje, enten sort eller hvid, afhængigt af hvordan du programmerer din mikrocontroller. Her laver vi en line follower-robot ved hjælp af MSP430 launchpad fra Texas Instruments, som følger den sorte linje. Hvis du er ny på MSP430-startpladen, skal du læse vores Kom med et blik på MSP430-vejledningen.
Nødvendige materialer
- MSP430G2 LaunchPad fra Texas Instruments
- L298D-motordrivermodulet
- Tilslutning af ledninger
- IR-sensormoduler
- Chasis, hjul, rutsjebane
- Energia IDE
- Strømforsyning (3,3V) og 5V-12V
Begreber om linjefølger
Begrebet linjefølger er relateret til lys. Vi har brugt lysets opførsel ved sort og hvid overflade. Når lys falder på en hvid overflade, reflekteres det næsten fuldt ud, og i tilfælde af sort overflade absorberes lys af sort overflade. Denne forklarede opførsel af lys bruges i denne line-follower-robot.
I denne MSP430-baserede line follower-robot har vi brugt IR-sendere og IR-modtagere, også kaldet fotodioder. De bruges til at sende og modtage lys. IR sender infrarøde lys. Når infrarøde stråler falder på en hvid overflade, reflekteres den tilbage og fanges af fotodioder, hvilket genererer nogle spændingsændringer. Når IR-lys falder på en sort overflade, absorberes lys af den sorte overflade, og ingen stråler reflekteres tilbage, så fotodioden modtager ikke noget lys eller stråler. For at lære mere om IR-sensorer, følg linket.
Her i denne MSP430-baserede linjefølger-robot, når sensoren registrerer en hvid overflade, får MSP 1 som input, og når den registrerer den sorte linje, får MSP 0 som input.
Forklaring af kredsløb
Vi kan opdele hele linjefølgerrobotten i forskellige sektioner som sensorsektion, kontrolsektion og førersektion.
Sensorsektion: Dette afsnit indeholder IR-dioder, potentiometer, Comparator (Op-Amp) og LED'er. Potentiometer bruges til at indstille referencespænding ved komparatorens ene terminal, og IR-sensorer registrerer linjen og giver en ændring i spændingen ved komparatorens anden terminal. Derefter sammenligner komparator begge spændinger og genererer et digitalt signal ved output. Her i dette kredsløb brugte vi to komparatorer til to sensorer. LM358 bruges som komparator. LM358 har indbygget to Op-forstærker med lav støj.
Kontrolafsnit: MSP430 Launchpad bruges til at kontrollere hele processen med line follower-robot. Udgangene fra komparatorer er forbundet til den digitale pin P1_3 og P1_4 på MPS430 Launchpad. MSP430 Launchpad læser disse signaler og sender kommandoer til driver kredsløb til drivlinjefølgeren.
Førersektion: Førersektion består af motordriver og to jævnstrømsmotorer. Motordriveren bruges til at køre motorer, fordi MSP430 Launchpad ikke leverer tilstrækkelig spænding og strøm til motoren. Så vi tilføjede et motordriverkredsløb for at få nok spænding og strøm til motoren. Her har vi brugt L298d-driveren til kørsel af DC-motorer. MSP430 Launchpad sender kommandoer til denne motordriver, og derefter kører den motorer.
Vi har udviklet Line Follower Robots ved hjælp af forskellige Micrcontroller:
- 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
- Line Follower Robot ved hjælp af PIC Microcontroller
Arbejde med Line Follower Robot ved hjælp af MSP430
Arbejdet med linjefølger er meget interessant. Linjefølgerrobot registrerer sort linje ved hjælp af sensoren og sender derefter signalet til MSP430 Launchpad. Derefter driver MSP430 Launchpad motoren i henhold til sensorernes output.
Her i dette projekt bruger vi to IR-sensormoduler, nemlig venstre sensor og højre sensor. Når både venstre og højre sensor registrerer hvid, bevæger robotten sig fremad.
Hvis venstre sensor kommer på sort linje, drejer robotten til venstre side.
Hvis højre sensor fornemmer sort linje, drejer robotten til højre, indtil begge sensorer kommer på den hvide overflade. Når den hvide overflade kommer, begynder robotten at bevæge sig fremad igen.
Hvis begge sensorer kommer på sort linje, stopper robotten.
Kredsløbsdiagram
Kredsløb til denne MSP430 Line Follower Robot er meget enkel. Outputtet fra komparatorer er direkte forbundet til MSP430 Launchpad's digitale pin nummer p1_3 og P1_4. Og motordriverens indgangsstift IN1, IN2, IN3 og IN4 er forbundet med henholdsvis MSP430 Launchpad's digitale pin P1_5, P2_0, P2_1, P2_2. En motor er tilsluttet ved udgangsstiften på motordriveren OUT1 og OUT2, og en anden motor er tilsluttet ved OUT3 og OUT4. Her har vi brugt 3,3 v forsyning til strøm hele kredsløbet undtagen motor driver modul. Vi har leveret 8V til motor driver modul. Brugeren kan bruge 5v-12v.
Du kan også bygge dit eget IR-modul, som jeg byggede på Perf Board. Nedenfor er kredsløbet for IR-modul:
Programmering Forklaring
Komplet program og video kan findes i slutningen af denne artikel.
I et program definerer vi først og fremmest input- og output-pin til sensor og motorer. Definer derefter nogle makroer til retning af linjefølgeren, og skriv derefter et direktiv for at vælge sensoroutput
Bemærk: Sensoren kan være aktiv lav eller aktiv høj, så kontroller først, hvad output fra sensoren er, vælg derefter direktivet ved at kommentere eller fjerne kommentar til activeLowMode . For aktiv HIGH skal du kommentere den aktiveLowMode- makro.
#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 = {frem, venstre, højre, stop}; #else int res = {stop, højre, venstre, fremad}; #Afslut Hvis
Derefter giver vi i installationsfunktionen retning til sensor og motorstift. Og så i loop- funktionen kontrollerer vi indgange og sender output til motordrivermodulet for at køre motorerne.
ugyldig opsætning () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } ugyldig sløjfe () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); til (int i = 0; i <4; i ++) digitalWrite (pins, (res >> i) & 0x01); }
Der er fire betingelser i denne linjefølger, som vi læser ved hjælp af MSP430 Launchpad. Vi har brugt to sensorer, nemlig venstre sensor og højre sensor.
Betingelser: Aktiv HIGH output
Indgang |
Produktion |
Bevægelse Af robot |
||||
Venstre sensor |
Højre sensor |
Venstre motor |
Højre motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Hold op |
0 |
1 |
1 |
0 |
0 |
0 |
Drej til højre |
1 |
0 |
0 |
0 |
1 |
0 |
Drej til venstre |
1 |
1 |
1 |
0 |
1 |
0 |
Frem |
Programmet er skrevet i henhold til ovenstående tabelbetingelser. Tjek den komplette kode og demonstrationsvideo nedenfor.