- Potrebné materiály
- Koncepty sledovača čiary
- Vysvetlenie obvodu
- Práca robota sledovača liniek pomocou MSP430
- Schéma zapojenia
- Vysvetlenie programovania
Line line robot je jedným z populárnych robotických projektov medzi študentmi a začiatočníkmi kvôli svojej jednoduchosti. Nasleduje čiaru, čiernu alebo bielu, v závislosti od toho, ako programujete svoj mikrokontrolér. Tu vyrábame robota na sledovanie línie pomocou launchpadu MSP430 od spoločnosti Texas Instruments, ktorý sleduje čiernu čiaru. Ak ste v Launchpade MSP430 nováčikom, prečítajte si náš výukový program Začíname pozerať na MSP430.
Potrebné materiály
- MSP430G2 LaunchPad od spoločnosti Texas Instruments
- Modul ovládača motora L298D
- Pripojovacie vodiče
- Moduly infračerveného snímača
- Chasis, koleso, horská dráha
- Energia IDE
- Napájanie (3,3v) a 5v-12v
Koncepty sledovača čiary
Koncept sledovača čiary súvisí so svetlom. Použili sme správanie svetla na čiernobielom povrchu. Keď svetlo dopadne na biely povrch, bude sa takmer úplne odrážať a v prípade čierneho povrchu bude svetlo absorbované čiernym povrchom. Toto vysvetlené správanie svetla sa používa v tomto robotovi na sledovanie línie.
V tomto robotovi na sledovanie liniek založenom na MSP430 sme použili IR vysielače a IR prijímače, ktoré sa tiež nazývajú fotodiódy. Používajú sa na vysielanie a príjem svetla. IR prenáša infračervené svetlá. Keď infračervené lúče dopadnú na biely povrch, odrazí sa to späť a zachytia ich fotodiódy, ktoré generujú určité zmeny napätia. Keď infračervené svetlo dopadá na čierny povrch, svetlo je absorbované čiernym povrchom a žiadne lúče sa neodrážajú späť, takže fotodióda neprijíma žiadne svetlo alebo lúče. Ak sa chcete dozvedieť viac informácií o infračervených senzoroch, kliknite na odkaz.
Tu v tomto robotovi na sledovanie riadkov založenom na MSP430, keď senzor sníma biely povrch, potom MSP dostane 1 ako vstup a keď sníma čierna čiara MSP dostane 0 ako vstup.
Vysvetlenie obvodu
Celý robot sledovača čiary môžeme rozdeliť na rôzne sekcie, ako sú sekcia senzorov, kontrolná sekcia a sekcia ovládačov.
Sekcia senzora: Táto sekcia obsahuje IR diódy, potenciometer, komparátor (Op-Amp) a LED diódy. Potenciometer sa používa na nastavenie referenčného napätia na jednej svorke komparátora a infračervené snímače snímajú vedenie a poskytujú zmenu napätia na druhej svorke komparátora. Potom komparátor porovnáva obe napätia a na výstupe generuje digitálny signál. Tu v tomto obvode sme použili dva komparátory pre dva snímače. LM358 sa používa ako komparátor. LM358 má zabudované dva operačné zosilňovače s nízkym šumom.
Ovládacia časť: MSP430 Launchpad sa používa na riadenie celého procesu robota sledovača linky. Výstupy komparátorov sú pripojené k digitálnym pinom P1_3 a P1_4 Launchpadu MPS430. Launchpad MSP430 číta tieto signály a odosiela príkazy do obvodu vodiča po sledovači pohonu.
Sekcia budiča : Sekcia budiča pozostáva z budiča motora a dvoch jednosmerných motorov. Ovládač motora sa používa na poháňanie motorov, pretože MSP430 Launchpad nedodáva motoru dostatočné napätie a prúd. Pridali sme teda obvod vodiča motora, aby sme dostali dostatok napätia a prúdu pre motor. Tu sme použili ovládač L298d na pohon jednosmerných motorov. MSP430 Launchpad odosiela príkazy tomuto ovládaču motora a ten potom poháňa motory.
Vyvinuli sme roboty sledovača čiary pomocou rôznych mikrokontrolérov:
- Robot sledovača liniek pomocou mikrokontroléra 8051
- Line Follower Robot pomocou Arduina
- Robot sledovača liniek pomocou Raspberry Pi
- Robot sledovača liniek pomocou mikrokontroléra PIC
Práca robota sledovača liniek pomocou MSP430
Práca sledovača liniek je veľmi zaujímavá. Robot sledujúci čiaru sníma čiernu čiaru pomocou snímača a potom odošle signál na spúšťaciu plochu MSP430. Potom MSP430 Launchpad poháňa motor podľa výstupu snímačov.
V tomto projekte používame dva moduly IR snímača, a to ľavý snímač a pravý snímač. Keď ľavý aj pravý senzor zaznamená bielu farbu, robot sa pohne dopredu.
Ak sa ľavý senzor dostane na čiernu čiaru, robot sa otočí na ľavú stranu.
Ak pravý senzor zaznamená čiernu čiaru, robot sa otočí doprava, kým sa obidva snímače nedostanú na biely povrch. Keď sa objaví biely povrch, robot sa začne pohybovať znova vpred.
Ak sa oba snímače dostanú na čiernu čiaru, robot sa zastaví.
Schéma zapojenia
Obvod tohto robota MSP430 Line Follower Robot je veľmi jednoduchý. Výstup komparátorov je priamo spojený s digitálnym pinom p4_3 a P1_4 MSP430 Launchpadu. A vstupné kolíky ovládača motora IN1, IN2, IN3 a IN4 sú pripojené k digitálnemu kolíku P4_4, Launch_MP430 Launchpadu P1_5, P2_0, P2_1, P2_2. Jeden motor je pripojený na výstupný kolík budiča motora OUT1 a OUT2 a ďalší motor je pripojený na výstupy OUT3 a OUT4. Tu sme použili napájanie 3,3 V na napájanie celého obvodu okrem modulu Driver Driver. Dodali sme 8v do modulu ovládača motora. Užívateľ môže používať 5v-12v.
Môžete si tiež postaviť svoj vlastný IR modul, ako som postavil ja na Perf Board. Nižšie je uvedený obvod pre IR modul:
Vysvetlenie programovania
Kompletný program a video nájdete na konci tohto článku.
V programe predovšetkým definujeme vstupný a výstupný pin snímača a motorov. Potom definujte niekoľko makier pre smer sledovača čiary a potom napíšte smernicu na výber výstupu snímača
Poznámka: Senzor môže byť aktívny nízky alebo aktívny vysoký, takže najskôr skontrolujte, aký je výstup senzora, a potom vyberte direktívu komentovaním alebo odkomentovaním activeLowMode . Pri aktívnej hodnote HIGH komentujtemakro 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 = {forward, left, right, stop}; #else int res = {stop, right, left, forward}; #koniec Ak
Potom vo funkcii nastavenia dáme smer senzoru a kolíku motora. A potom vo funkcii slučky skontrolujeme vstupy a pošleme výstup do modulu ovládača motora, aby sa motory spustili.
void setup () { for (int i = 0; i <4; i ++) pinMode (piny, VÝSTUP); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); pre (int i = 0; i <4; i ++) digitalWrite (piny, (res >> i) & 0x01); }
V tomto sledovači riadkov sú štyri podmienky, ktoré sme si prečítali pomocou nástroja MSP430 Launchpad. Použili sme dva snímače, a to ľavý snímač a pravý snímač.
Podmienky: Aktívny VYSOKÝ výstup
Vstup |
Výkon |
Pohyb Robota |
||||
Ľavý senzor |
Pravý snímač |
Ľavý motor |
Pravý motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Prestaň |
0 |
1 |
1 |
0 |
0 |
0 |
Odbočiť doprava |
1 |
0 |
0 |
0 |
1 |
0 |
Odbočiť vľavo |
1 |
1 |
1 |
0 |
1 |
0 |
Vpred |
Program je písaný podľa vyššie uvedených podmienok tabuľky. Skontrolujte kompletné video s kódom a ukážkou nižšie.