- Nepieciešamie materiāli:
- Līnijas sekotāja jēdzieni
- Shēmas shēma un skaidrojums:
- PIC mikrokontrollera programmēšana:
- PIC līnijas sekotājs darbībā:
Līnijas sekotāja robots ir vienkāršs, tomēr aizraujošs robots, ko veidot vairumam studentu / vaļasprieku. Šajā apmācībā mēs uzzināsim, kā darbojas līnijas sekotāja robots un kā mēs to varam izveidot, izmantojot PIC mikrokontrolleru PIC16F877A. PIC16F877A ir 40 kontaktu daudzfunkcionāls MCU no Microchip, šo IC esam izmantojuši pilnā PIC apmācību sērijā. Ja esat jauns, šeit, iespējams, vēlēsities apskatīt šīs PIC apmācības, lai uzzinātu šīs IC pamatus un to, kā augšupielādēt programmas mikrokontrollerī. Tā kā mēs jau esam iekļāvuši šo informāciju savās apmācībās, mēs tos izlaidīsim tālāk sniegtajā skaidrojumā.
Ja jūs interesē robotika, jums ļoti labi jāpārzina nosaukums “ Line Follower Robot ”. Šis robots spēj sekot līnijai, vienkārši izmantojot sensoru un motoru pāri. Šis robots dod jums vietu bezgalīgai attīstībai, un roboti, piemēram, Kiva (Amazon noliktavas robots), ir piemērs tam. Varat arī pārbaudīt mūsu citus līnijas sekotāju robotus:
- Līnijas sekotāja robots, izmantojot mikrokontrolleru 8051
- Līnijas sekotāja robots, izmantojot Arduino
- Līnijas sekotāja robots, izmantojot Raspberry Pi
Nepieciešamie materiāli:
- PIC16F877A
- IR sensors (2Nos)
- DC zobrata motors (2Nos)
- L293D motora draiveris
- Cheeses (Jūs varat arī izveidot pats, izmantojot kartonus)
- Barošanas banka (jebkurš pieejamais enerģijas avots)
Līnijas sekotāja jēdzieni
Līnijas sekotāja robots spēj izsekot līniju ar IR sensora palīdzību. Šim sensoram ir IR raidītājs un IR uztvērējs. IR raidītājs (IR LED) pārraida gaismu, un uztvērējs (fotodiods) gaida, kamēr raidītā gaisma atgriezīsies. IR gaisma atgriezīsies tikai tad, ja to atstaro virsma. Tā kā visas virsmas neatspoguļo infrasarkano gaismu, tikai baltā krāsaina virsma tos var pilnībā atspoguļot, un melnā krāsa to pilnībā novēros, kā parādīts attēlā zemāk. Uzziniet vairāk par IR sensoru moduli šeit.
Tagad mēs izmantosim divus IR sensorus, lai pārbaudītu, vai robots ir ceļā ar līniju, un divus motorus, lai labotu robotu, ja tas pārvietojas ārpus ceļa. Šiem motoriem nepieciešama liela strāva, un tiem jābūt divvirzienu; tāpēc mēs izmantojam motora draivera moduli, piemēram, L293D. Mums būs nepieciešams arī mikrokontrolleris, piemēram, PIC, lai instruētu motorus, pamatojoties uz vērtībām no IR sensora. Vienkāršota tā paša diagramma ir parādīta zemāk.
Šie divi IR sensori tiks izvietoti pa vienam abās līnijas pusēs. Ja neviens no sensoriem nenosaka melnu līniju, PIC mikrokontrolieris uzdod motoriem virzīties uz priekšu, kā parādīts zemāk
Ja kreisais sensors nāk uz melnās līnijas, mikrokontrolleris uzdod robotam pagriezties pa kreisi, vien pagriežot labo riteni.
Ja labais sensors nāk uz melnās līnijas, mikrokontrolleris uzdod robotam pagriezties pa labi, vien pagriežot kreiso riteni.
Ja abi sensori nonāk melnā līnijā, robots apstājas.
Tādā veidā Robots varēs sekot līnijai, nenokļūstot ārpus trases. Tagad ļaujiet mums redzēt, kā izskatās ķēde un kods.
Shēmas shēma un skaidrojums:
Pilna šī PIC balstītā līnijas sekotāja robota shēma ir parādīta zemāk
Kontūrā tiek izmantoti divi infrasarkanie sensori un pāris līdzstrāvas zobratu motori kopā ar motora vadītāja moduli, kā parādīts iepriekš. Šajā projektā izmantotais motora draivera modulis ir L293D, mums būs nepieciešams motora draiveris, jo PIC mikrokontrollera izejas tapa nevar iegūt pietiekamu strāvu, lai motori varētu darboties. Šis modulis tiks darbināts tieši no barošanas avota (5V), kā parādīts ķēdē. Modulim ir četras tapas (divas katram motoram), kas savienotas ar PIC, lai kontrolētu motoru virzienu. Mums ir arī divi IR sensori, kas darbojas kā ievads PIC mikrokontrollerī. Šie sensori paaugstināsies (1), ja tie atrodas virs baltas virsmas, un zemiem (0), kad tie atrodas virs melnas virsmas. Pilni tapu savienojumi ir parādīti zemāk esošajā tabulā.
S.No |
Savienojums izveidots no |
Savienots ar |
1 |
Infrasarkanais sensors Atstāts tapas |
RD2 (21. tapa) |
2 |
Infrasarkanais sensors |
RD3 (22. tapa) |
4 |
1. motora kanāls A tapa |
RC4 (23. tapa) |
5 |
1. motora B kanāla tapa |
RC5 (25. tapa) |
6 |
2. motora A kanāla tapa |
RC6 (26. tapa) |
7 |
2. motora kanāla B tapa |
RC7 (27. tapa) |
Patiesajā aparatūrā esmu izmantojis strāvas banku, kas izvadīs + 5V tieši caur USB portu; līdz ar to es esmu apiets 7805 sprieguma regulatoru un darbinājis PIC, sensorus un motorus, izmantojot to pašu. Jūs varat darīt to pašu, izmantojot 12V akumulatoru kopā ar regulatoru, kā parādīts ķēdē.
PIC mikrokontrollera programmēšana:
Kad esat gatavs aparatūrai, ir pienācis laiks sākt programmēšanu. Pilnīga programma šī PIC Line sekotājs robots Projekts tiek dota beigās šo lapu. Tomēr tālāk ir paskaidroti svarīgi gabali.
Inicializējiet I / O tapas, izmantojot šādas rindas. 2 IR sensora tapas darbojas kā ieeja, un četras motora tapas darbojas kā izejas tapas.
TRISD2 = 1; TRISD3 = 1; IR vannā IR sensora tapas tiek deklarētas kā ieeja TRISC4 = 0; TRISC5 = 0; // Motora 1 tapas deklarētas kā izeja TRISC6 = 0; TRISC7 = 0; // Motora 2 tapas deklarētas kā izeja
Tagad mums ir jāizlasa gan IR sensora statuss, gan attiecīgi jākontrolē motors. Piemēram, ja abi sensori ir augsti (nenokļūst zem melnas līnijas), tad mēs abus motorus virzām uz priekšu, kā parādīts zemāk esošajā programmā.
if (RD2 == 1 && RD3 == 1) // Abi sensori nav pār balck līniju {RC4 = 0; RC5 = 1; // Motors 1 uz priekšu RC6 = 1; RC7 = 0; // 2. motors uz priekšu}
Ja kreisais sensors nāk pāri melnajai līnijai, mēs veicam labo pagriezienu, nekustīgi turot motoru 1 un pagriežot motoru 2 uz priekšu. Šo pagrieziena veidu sauc par diferenciālo pagriezienu.
cits, ja (RD2 == 0 && RD3 == 1) // Kreisais sensors ir virs melnās līnijas {RC4 = 1; RC5 = 1; // Motora 1 pietura RC6 = 1; RC7 = 0; // 2. motors uz priekšu}
Līdzīgi, ja labais sensors nāk pāri melnajai līnijai, tad botu liek veikt kreiso pagriezienu, nekustīgi turot otro motoru un pagriežot pirmo motoru atsevišķi uz priekšu, kā parādīts zemāk.
cits, ja (RD2 == 1 && RD3 == 0) // Labais sensors ir virs melnās līnijas {RC4 = 0; RC5 = 1; // Motors 1 uz priekšu RC6 = 1; RC7 = 1; // 2. motora apturēšana}
Visbeidzot, ja abi sensori atrodas zem melnas līnijas, ir pienācis laiks apturēt robotu. To var izdarīt, padarot visus abu motoru tapas augstus. Kods, lai izdarītu to pašu, ir parādīts zemāk
else // Abi sensori virs melnās līnijas {RC4 = 1; RC5 = 1; // Motora 1 pietura RC6 = 1; RC7 = 1; // 2. motora apturēšana}
Tas ir tas, ka programma ir gatava un to var augšupielādēt PIC, izmantojot jebkuru programmētāju, piemēram, PicKit.
PIC līnijas sekotājs darbībā:
Kad aparatūra un kods ir gatavs, ir laiks veikt dažas darbības. Kā jau minēts iepriekš, robota darbināšanai esmu izmantojis Power banku, tāpēc viss, kas man jādara, ir vienkārši savienot enerģijas banku ar robotu, kurā ir iestatīta aparatūra un kods jau ir augšupielādēts.
PIC Perf dēlis tika izveidots mūsu PIC apmācību sērijai, kurā mēs iemācījāmies izmantot PIC mikrokontrolleru. Iespējams, vēlēsities atgriezties pie šīm PIC mikrokontrolleru apmācībām, izmantojot MPLABX un XC8, ja nezināt, kā ierakstīt programmu, izmantojot Pickit 3, jo es izlaidīšu visu šo pamatinformāciju.
Tagad vienkārši palaidiet robotu pa melnu līniju, un jums tas jānoskatās, sekojot līnijai.
Sākumā jūs varat saskarties ar dažām grūtībām, tādā gadījumā lasiet tālāk. Ja riteņi griežas pretēji, vienkārši nomainiet pretējā virzienā braucošā motora polaritāti. Ja robots novirzās no līnijas, apmainiet infrasarkano sensoru, un tam visam vajadzētu būt labi.
Pilnīgu robota darbību var atrast zemāk redzamajā video. Ceru, ka jums patiks projekts un jums patika veidot kaut ko līdzīgu. Ja jums ir problēmas ar šī darba panākšanu, varat tos ievietot zemāk esošajā komentāru sadaļā, lai to atrisinātu, vai izmantot mūsu forumus, lai apspriestu tehnisko saturu.