- Material som krävs
- Begrepp för linjeföljare
- Kretsförklaring
- Arbeta med Line Follower-robot med MSP430
- Kretsschema
- Programmeringsförklaring
Line follower-robot är ett av de populära robotprojekten bland studenter och nybörjare på grund av dess enkelhet. Den följer en linje, antingen svart eller vit, beroende på hur du programmerar din mikrokontroller. Här gör vi en linjeföljande robot med MSP430-startplatta från Texas Instruments, som följer den svarta linjen. Om du inte har börjat med MSP430-startplattan, vänligen läs vår Bli stirrad med MSP430-handledning.
Material som krävs
- MSP430G2 LaunchPad från Texas Instruments
- L298D-motorförare-modulen
- Anslutande ledningar
- IR-sensormoduler
- Chasis, hjul, berg-och dalbana
- Energia IDE
- Strömförsörjning (3,3V) och 5V-12V
Begrepp för linjeföljare
Begreppet linjeföljare är relaterat till ljus. Vi har använt ljusets beteende vid svartvita ytor. När ljus faller på en vit yta reflekteras det nästan helt och i fall av svart yta absorberas ljus av svart yta. Detta förklarade ljusbeteende används i denna linjeföljrobot.
I den här MSP430-baserade linjeföljroboten har vi använt IR-sändare och IR-mottagare, även kallade fotodioder. De används för att skicka och ta emot ljus. IR sänder infraröda lampor. När infraröda strålar faller på vit yta reflekteras den tillbaka och fångas upp av fotodioder vilket genererar vissa spänningsförändringar. När IR-ljus faller på en svart yta absorberas ljus av den svarta ytan och inga strålar reflekteras tillbaka, så fotodioden får inte något ljus eller strålar. För att lära dig mer om IR-sensorer, följ länken.
Här i den här MSP430-baserade linjeföljarroboten när sensorn känner av vit yta får MSP 1 som ingång och när avkänningar får svart linje MSP 0 som ingång.
Kretsförklaring
Vi kan dela upp hela linjeföljarroboten i olika sektioner som sensorsektion, styrsektion och förarsektion.
Sensorsektion: Detta avsnitt innehåller IR-dioder, potentiometer, komparator (Op-Amp) och lysdioder. Potentiometer används för att ställa in referensspänning vid komparatorns ena terminal och IR-sensorer känner av linjen och ger en förändring i spänningen vid komparatorns andra terminal. Sedan jämför komparatorn båda spänningarna och genererar en digital signal vid utgången. Här i denna krets använde vi två komparatorer för två sensorer. LM358 används som jämförare. LM358 har inbyggd två Op-amp med låg ljudnivå.
Kontrollavsnitt: MSP430 Launchpad används för att styra hela processen med linjeföljande robot. Utgångarna från komparatorer är anslutna till den digitala stift P1_3 och P1_4 på MPS430 Launchpad. MSP430 Launchpad läser dessa signaler och skickar kommandon till förarkretsen till drivlinjeföljaren.
Förarsektion: Förarsektion består av motorförare och två likströmsmotorer. Motordrivrutin används för att köra motorer eftersom MSP430 Launchpad inte levererar tillräckligt med spänning och ström till motorn. Så vi lade till en motorförarkrets för att få tillräckligt med spänning och ström för motorn. Här har vi använt L298d-drivrutinen för att köra DC-motorer. MSP430 Launchpad skickar kommandon till denna motorförare och sedan driver den motorer.
Vi har utvecklat Line Follower-robotar med olika Micrcontroller:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot med Arduino
- Line Follower Robot med Raspberry Pi
- Line Follower Robot med PIC Microcontroller
Arbeta med Line Follower-robot med MSP430
Att arbeta med linjeföljare är väldigt intressant. Linjeföljrobot känner av svart linje med hjälp av sensorn och skickar sedan signalen till MSP430 Launchpad. Sedan driver MSP430 Launchpad motorn enligt sensorns utgång.
Här i detta projekt använder vi två IR-sensormoduler, nämligen vänster sensor och höger sensor. När både vänster och höger sensor känner vitt rör sig roboten framåt.
Om vänster sensor kommer på svart linje vänder roboten vänster sida.
Om höger sensor känner av den svarta linjen svänger roboten till höger tills båda sensorerna kommer vid den vita ytan. När den vita ytan kommer, börjar roboten gå framåt igen.
Om båda sensorerna kommer på svart linje stannar roboten.
Kretsschema
Kretsen för den här MSP430 Line Follower-roboten är väldigt enkel. Utgången från komparatorer är direkt ansluten till MSP430 Launchpads digitala stiftnummer p1_3 och P1_4. Och motorförarens ingångsstift IN1, IN2, IN3 och IN4 är anslutna till MSP430 Launchpads digitala stift P1_5, P2_0, P2_1, P2_2. En motor är ansluten vid utgången på motorns drivrutin OUT1 och OUT2, och en annan motor är ansluten vid OUT3 och OUT4. Här har vi använt 3,3 v-matning för att driva hela kretsen utom Motor Driver-modulen. Vi har levererat 8v till motordrivrutinmodulen. Användaren kan använda 5v-12v.
Du kan också bygga din egen IR-modul, som jag byggde på Perf Board. Nedan är kretsen för IR-modul:
Programmeringsförklaring
Komplett program och video finns i slutet av denna artikel.
I ett program definierar vi först ingångs- och utgångsstiftet för sensor och motorer. Definiera sedan några makron för linjeföljarens riktning och skriv sedan ett direktiv för att välja sensorutgång
Obs! Sensorn kan vara aktiv låg eller aktiv hög så kontrollera först vad som är resultatet av sensorn och välj sedan direktiv genom att kommentera eller avmarkera activeLowMode . För aktiv HÖG, kommentera makrot activeLowMode .
#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 = {framåt, vänster, höger, stopp}; #else int res = {stopp, höger, vänster, framåt}; #endif
Efter det, i installationsfunktionen , ger vi riktning till sensorn och motorstiftet. Och sedan i loopfunktionen kontrollerar vi ingångar och skickar utdata till motordrivmodulen för att köra motorerna.
ogiltig installation () { för (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); för (int i = 0; i <4; i ++) digitalWrite (pins, (res >> i) & 0x01); }
Det finns fyra villkor i denna radföljare som vi läser genom att använda MSP430 Launchpad. Vi har använt två sensorer, nämligen den vänstra sensorn och den högra sensorn.
Villkor: Aktiv HÖG uteffekt
Inmatning |
Produktion |
Rörelse Av robot |
||||
Vänster sensor |
Höger sensor |
Vänster motor |
Rätt motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Sluta |
0 |
1 |
1 |
0 |
0 |
0 |
Sväng höger |
1 |
0 |
0 |
0 |
1 |
0 |
Sväng vänster |
1 |
1 |
1 |
0 |
1 |
0 |
Fram |
Programmet skrivs enligt ovanstående tabellvillkor. Kolla hela koden och demonstrationsvideoen nedan.