- Potrebni materiali
- Koncepti sledilca vrstic
- Pojasnilo vezja
- Delo linijskega sledilnega robota z uporabo MSP430
- Shema vezja
- Pojasnilo programiranja
Robot s sledilcem je zaradi svoje preprostosti eden izmed priljubljenih projektov robotike med študenti in začetniki. Sledi črti, črni ali beli, odvisno od tega, kako programirate mikrokrmilnik. Tu naredimo robotskega sledilca z uporabo lansirne ploščice MSP430 podjetja Texas Instruments, ki sledi črni črti. Če ste nov uporabnik lansirne plošče MSP430, preberite našo Vadnico za začetek gledanja z MSP430.
Potrebni materiali
- MSP430G2 LaunchPad podjetja Texas Instruments
- Modul gonilnika motorja L298D
- Priključne žice
- Moduli IR senzorja
- Šasija, kolo, tobogan
- Energia IDE
- Napajanje (3.3v) in 5v-12v
Koncepti sledilca vrstic
Koncept sledilca črte je povezan s svetlobo. Uporabili smo vedenje svetlobe na črno-beli površini. Ko svetloba pade na belo površino, se skoraj popolnoma odbije in v primeru črne površine črna površina absorbira svetlobo. Tako razloženo vedenje svetlobe je uporabljeno v tem robotskem sledilnem robotu.
V tem robotskem sledilnem robotu, ki temelji na MSP430, smo uporabili IR oddajnike in IR sprejemnike, imenovane tudi foto diode. Uporabljajo se za pošiljanje in sprejemanje svetlobe. IR oddaja infrardeče luči. Ko infrardeči žarki padejo na belo površino, se odbijejo nazaj in jih ujamejo fotodiode, kar povzroči nekaj sprememb napetosti. Ko IR svetloba pade na črno površino, jo črna površina absorbira in nobeni žarki se ne odbijejo nazaj, zato foto dioda ne sprejme nobene svetlobe ali žarkov. Če želite izvedeti več o IR senzorjih, sledite povezavi.
Tu v tem robotu za sledenje črte na osnovi MSP430, ko senzor zazna belo površino, potem MSP dobi 1 kot vhod in ko zazna črno črto MSP dobi 0 kot vhod.
Pojasnilo vezja
Robota sledilca celotne črte lahko razdelimo na različne odseke, kot so odsek senzorja, odsek nadzora in odsek voznika.
Odsek senzorja: Ta odsek vsebuje IR diode, potenciometer, primerjalnik (Op-Amp) in LED diode. Potenciometer se uporablja za nastavitev referenčne napetosti na enem terminalu primerjalnika, IR senzorji pa zaznajo črto in zagotavljajo spremembo napetosti na drugem terminalu primerjalnika. Nato primerjalnik primerja obe napetosti in na izhodu ustvari digitalni signal. Tu v tem vezju smo uporabili dva primerjalnika za dva senzorja. LM358 se uporablja kot primerjalnik. LM358 ima vgrajena dva optična ojačevalnika z nizkim šumom.
Nadzorni odsek: MSP430 Launchpad se uporablja za nadzor celotnega procesa robotskega sledilca. Izhodi primerjalnikov so priključeni na digitalni pin P1_3 in P1_4 na MPS430 Launchpad. MSP430 Launchpad bere te signale in pošilja ukaze voznikovemu vezju za sledilca pogonske linije.
Vozniški odsek: Vozniški odsek je sestavljen iz gonilnika motorja in dveh enosmernih motorjev. Motorni voznik se uporablja za pogon motorjev, ker MSP430 Launchpad ne dobavlja dovolj napetosti in toka motorju. Tako smo dodali vezje motornega pogona, da dobimo dovolj napetosti in toka za motor. Tu smo uporabili gonilnik L298d za pogon enosmernih motorjev. MSP430 Launchpad pošlje ukaze temu gonilniku motorja in nato poganja motorje.
Z uporabo različnih mikrokrmilnikov smo razvili robote Line Follower Robots:
- Robot za sledenje linij z mikrokrmilnikom 8051
- Robot sledilca linije, ki uporablja Arduino
- Line Follower Robot z uporabo Raspberry Pi
- Robot za sledenje linij z uporabo mikrokrmilnika PIC
Delo linijskega sledilnega robota z uporabo MSP430
Delo sledilcev vrstic je zelo zanimivo. Robot sledilca linije zazna črno črto s pomočjo senzorja in nato signal pošlje na lansirno ploščico MSP430. Nato MSP430 Launchpad poganja motor glede na izhod senzorjev.
V tem projektu uporabljamo dva modula IR senzorja, in sicer levi senzor in desni senzor. Ko tako levi kot desni senzor zaznata belo, se robot premakne naprej.
Če je levi senzor na črni črti, potem robot zavije v levo stran.
Če desni senzor zazna črno črto, potem robot zavijte desno, dokler oba senzorja ne prideta na belo površino. Ko pride bela površina, se robot spet začne premikati naprej.
Če sta oba senzorja na črni črti, se robot ustavi.
Shema vezja
Vezje za tega sledilnega robota MSP430 je zelo preprosto. Izhod primerjalnikov je neposredno povezan z digitalnima pin številkama p1_3 in P1_4 MSP430 Launchpad. In vhodni zatiči gonilnika motorja IN1, IN2, IN3 in IN4 so priključeni na digitalni zatič P1_5, P2_0, P2_1, P2_2 MSP430 Launchpad. En motor je priključen na izhodni zatič gonilnika motorja OUT1 in OUT2, drugi motor pa na OUT3 in OUT4. Tu smo uporabili napajalnik 3.3v za napajanje celotnega vezja, razen modula Motor Driver. V gonilni modul motorja smo dobavili 8v. Uporabnik lahko uporablja 5v-12v.
Lahko ustvarite tudi svoj IR modul, kot sem ga zgradil na Perf Board. Spodaj je vezje za IR modul:
Pojasnilo programiranja
Celoten program in video lahko najdete na koncu tega članka.
V programu najprej določimo vhodni in izhodni zatič za senzor in motorje. Nato določite nekaj makrov za smer sledilca črte in nato napišite direktivo za izbiro izhoda senzorja
Opomba: Senzor je lahko aktiven nizek ali aktiven visok, zato najprej preverite, kakšen je izhod senzorja, nato izberite direktivo, tako da komentirate ali prekinete komentar ActiveLowMode . Za aktivni HIGH komentirajtemakro 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 = {naprej, levo, desno, stop}; #else int res = {stop, desno, levo, naprej}; #endif
Po tem v nastavitveni funkciji usmerimo senzor in zatič motorja. Nato v funkciji zanke preverimo vhode in pošljemo izhod modulu gonilnika motorja za zagon motorjev.
void setup () { for (int i = 0; i <4; i ++) pinMode (zatiči, IZHOD); pinMode (l_senzor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); za (int i = 0; i <4; i ++) digitalWrite (nožice, (res >> i) & 0x01); }
V tej vrstici sledimo štiri pogoje, ki jih beremo z uporabo lansirne ploščice MSP430. Uporabili smo dva senzorja, in sicer levi in desni senzor.
Pogoji: aktivni HIGH izhod
Vhod |
Izhod |
Premikanje Robota |
||||
Levi senzor |
Desni senzor |
Levi motor |
Desni motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Nehaj |
0 |
1. |
1. |
0 |
0 |
0 |
Zavij desno |
1. |
0 |
0 |
0 |
1. |
0 |
Zavijemo levo |
1. |
1. |
1. |
0 |
1. |
0 |
Naprej |
Program je napisan v skladu z zgornjimi pogoji tabele. Spodaj preverite celotno kodo in predstavitveni video.