- Potrebni materijali
- Koncepti linijskog sljedbenika
- Objašnjenje sklopa
- Rad linijskog sljedbenika pomoću MSP430
- Kružni dijagram
- Objašnjenje programiranja
Robot sljedbenik crte jedan je od popularnih projekata robotike među studentima i početnicima zbog svoje jednostavnosti. Slijedi crta, bilo crna ili bijela, ovisno o načinu programiranja mikrokontrolera. Ovdje izrađujemo robota za sljedbenike linija pomoću lansirne ploče MSP430 tvrtke Texas Instruments, koja slijedi crnu liniju. Ako ste novi u MSP430 lansirnoj ploči, pročitajte naš vodič za uparivanje u buljenje u MSP430.
Potrebni materijali
- MSP430G2 LaunchPad tvrtke Texas Instruments
- Modul pogonskog sklopa motora L298D
- Spajanje žica
- Moduli IR senzora
- Šasija, kotač, tobogan
- Energia IDE
- Napajanje (3.3v) i 5v-12v

Koncepti linijskog sljedbenika
Koncept sljedbenika crte povezan je sa svjetlošću. Koristili smo ponašanje svjetla na crno-bijeloj površini. Kad svjetlost padne na bijelu površinu, gotovo će se u potpunosti odraziti, a u slučaju crne površine, crna površina apsorbira svjetlost. Ovo objašnjeno ponašanje svjetla koristi se u ovom robotu sljedbenika linija.


U ovom robotu sljedbeniku koji se temelji na MSP430 koristili smo IR odašiljače i IC prijemnike koji se nazivaju i foto diodama. Koriste se za slanje i primanje svjetlosti. IC prenosi infracrveno svjetlo. Kad infracrvena zraka padne na bijelu površinu, ona se reflektira natrag i hvata fotodiodama što generira neke promjene napona. Kad IR svjetlost padne na crnu površinu, crna površina apsorbira svjetlost i zrake se ne reflektiraju natrag, pa foto dioda ne prima svjetlost ni zrake. Da biste saznali više o IR senzorima, slijedite vezu.
Ovdje u ovom robotu sljedbeniku crte zasnovanom na MSP430 kada senzor osjeti bijelu površinu, tada MSP dobiva 1 kao ulaz, a kada crnu liniju MSP dobije 0 kao ulaz.
Objašnjenje sklopa
Robota sljedbenika cijele linije možemo podijeliti na različite odjeljke poput odjeljka senzora, upravljačkog odjeljka i odjeljka vozača.

Odjeljak senzora: Ovaj odjeljak sadrži IR diode, potenciometar, komparator (Op-pojačalo) i LED diode. Potenciometar se koristi za podešavanje referentnog napona na jednom terminalu komparatora, a IR senzori osjećaju liniju i pružaju promjenu napona na drugom terminalu komparatora. Tada usporednik uspoređuje oba napona i generira digitalni signal na izlazu. Ovdje u ovom krugu koristili smo dva komparatora za dva senzora. LM358 se koristi kao komparator. LM358 ima ugrađena dva optička pojačala s malo šuma.
Upravljački odjeljak: MSP430 Launchpad koristi se za upravljanje cijelim postupkom robota sljedbenika linija. Izlazi komparatora spojeni su na digitalni pin P1_3 i P1_4 MPS430 Launchpad. MSP430 Launchpad čita ove signale i šalje naredbe u upravljački krug sljednika pogonskog voda.
Odjeljak za pogon : Odjeljak za vozača sastoji se od motora i dva istosmjerna motora. Motorni pogon koristi se za pogon motora jer MSP430 Launchpad ne isporučuje dovoljno napona i struje na motor. Tako smo dodali krug pokretača motora kako bismo dobili dovoljno napona i struje za motor. Ovdje smo koristili upravljački program L298d za pogon istosmjernih motora. MSP430 Launchpad šalje naredbe ovom pokretaču motora, a zatim pokreće motore.
Razvili smo Line Follower Robots koristeći različite Micrcontroller:
- Robot za sljedbenike linija pomoću mikrokontrolera 8051
- Robot sljedbenik crte koji koristi Arduino
- Robot sljedbenik linija koji koristi Raspberry Pi
- Robot sljedbenik crte pomoću PIC mikrokontrolera
Rad linijskog sljedbenika pomoću MSP430
Rad sljedbenika linija je vrlo zanimljiv. Robot sljedbenik linije prepoznaje crnu liniju pomoću senzora, a zatim šalje signal na MSP430 Launchpad. Tada MSP430 Launchpad pokreće motor prema izlazu senzora.
Ovdje u ovom projektu koristimo dva modula IR senzora, naime lijevi senzor i desni senzor. Kad i lijevi i desni senzor osjete bijelo, robot se pomiče naprijed.

Ako lijevi senzor dolazi na crnu crtu, tada robot okreće lijevu stranu.

Ako desni senzor osjeti crnu liniju, tada robot skrenite udesno dok oba senzora ne dođu na bijelu površinu. Kad dođe bijela površina, robot se ponovno kreće naprijed.

Ako oba senzora dođu na crnu liniju, robot se zaustavlja.

Kružni dijagram
Krug za ovog robota sljedbenika MSP430 vrlo je jednostavan. Izlaz komparatora izravno je povezan s digitalnim pin brojevima p1_3 i P1_4 MSP430 Launchpad. A ulazni pin IN1, IN2, IN3 i IN4 vozača motora povezani su na digitalni pin P1_5, P2_0, P2_1, P2_2 MSP430 Launchpad. Jedan motor povezan je na izlazni zatik motornog pogona OUT1 i OUT2, a drugi motor spojen na OUT3 i OUT4. Ovdje smo koristili napajanje od 3.3v za napajanje cijelog kruga, osim modula pogonskog motora. Opskrbili smo 8v modula pogonskog motora. Korisnik može koristiti 5v-12v.


Također možete izraditi svoj vlastiti IR modul, kakav sam izgradio na Perf Boardu. Ispod je sklop za IR modul:

Objašnjenje programiranja
Kompletni program i videozapis nalaze se na kraju ovog članka.
U programu, prije svega, definiramo ulazni i izlazni pin za senzor i motore. Zatim definirajte neke makronaredbe za smjer sljedbenika crte, a zatim napišite direktivu za odabir izlaza senzora
Napomena: Osjetnik je možda aktivan nizak ili aktivan visok, pa prvo provjerite koliki je izlaz senzora, a zatim odaberite direktivu komentirajući ili komentirajući activeLowMode . Za aktivni HIGH komentirajtemakronaredbu 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 = {naprijed, lijevo, desno, zaustavi}; #else int res = {zaustavljanje, desno, lijevo, naprijed}; #završi ako
Nakon toga, u funkciji postavljanja , dajemo smjer senzoru i zatiču motora. A zatim u funkciji petlje provjeravamo ulaze i šaljemo izlaz modulu pogonskog motora za pokretanje motora.
void setup () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_senzor, INPUT); pinMode (r_senzor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); za (int i = 0; i <4; i ++) digitalWrite (igle, (res >> i) & 0x01); }
Postoje četiri uvjeta u ovom sljedbeniku koji čitamo pomoću MSP430 Launchpad. Koristili smo dva senzora, naime lijevi i desni senzor.
Uvjeti: Aktivni HIGH izlaz
|
Ulazni |
Izlaz |
Pokret Robota |
||||
|
Lijevi senzor |
Desni senzor |
Lijevi motor |
Desni motor |
|||
|
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
Stop |
|
0 |
1 |
1 |
0 |
0 |
0 |
Skrenuti desno |
|
1 |
0 |
0 |
0 |
1 |
0 |
Skrenite lijevo |
|
1 |
1 |
1 |
0 |
1 |
0 |
Naprijed |
Program je napisan prema gornjim uvjetima tablice. U nastavku provjerite cjeloviti kod i demonstracijski video.
