- Nepieciešamie materiāli:
- Līnijas sekotāja jēdzieni
- Aveņu Pi līnijas sekotāja robotu shēmas shēma un skaidrojums:
- Raspberry PI programmēšana:
- Aveņu Pi līnijas sekotājs darbībā:
Kā mēs visi zinām, Raspberry Pi ir brīnišķīga izstrādes platforma, kuras pamatā ir ARM mikroprocesors. Ar savu lielo skaitļošanas jaudu un attīstības iespējām tas var radīt brīnumus elektronikas hobiju vai studentu rokās. Lai uzzinātu vairāk par Raspberry Pi un kā tas darbojas, mēģināsim izveidot līnijas sekotāja robotu, izmantojot Raspberry Pi.
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. Varbūt neizklausās efektīvi, izmantojot vienkāršu robotu, izmantojot jaudīgu mikroprocesoru, piemēram, Raspberry Pi. Bet š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
Nepieciešamie materiāli:
- Aveņu Pi 3 (jādarbojas jebkuram modelim)
- 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šama arī tāda skaitļošanas ierīce kā Raspberry Pi, lai instruētu motorus, pamatojoties uz IR sensora vērtībām. 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, tas PI uzdod motoriem virzīties uz priekšu, kā parādīts zemāk
Ja kreisais sensors nāk uz melnās līnijas, PI uzdod robotam pagriezties pa kreisi, vien pagriežot labo riteni.
Ja labais sensors nāk uz melnas līnijas, PI 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.
Aveņu Pi līnijas sekotāja robotu shēmas shēma un skaidrojums:
Pilna šī Raspberry Pi līnijas sekotāja robota shēma ir parādīta zemāk
Kā redzat, ķēde ietver divus infrasarkanos sensorus un motoru pāri, kas savienoti ar Aveņu pi. Visu ķēdi darbina mobilā strāvas banka (iepriekš minētajā ķēdē to attēlo AAA akumulators).
Tā kā tapas detaļas nav minētas Raspberry Pi, mums ir jāpārbauda tapas, izmantojot zemāk redzamo attēlu
Kā parādīts attēlā, PI augšējā kreisā stūra tapa ir + 5 V tapa, mēs izmantojam šo + 5 V tapu, lai darbinātu infrasarkanos sensorus, kā parādīts ķēdes shēmā (sarkanā vadā). Tad mēs savienojam iezemējuma tapas ar infrasarkanā sensora un motora draivera moduļa zemējumu, izmantojot melno vadu. Dzeltenais vads tiek izmantots, lai savienotu izvades pin no sensora 1. un 2. līdz GPIO pins un 3. attiecīgi.
Lai vadītu Motors, mums ir nepieciešamas četras tapas (A, B, A, B). Šīs četras tapas ir savienotas attiecīgi no GPIO14,4,17 un 18. Oranžā un baltā stieple kopā veido savienojumu vienam motoram. Tātad mums ir divi šādi pāri diviem motoriem.
Motori ir savienoti ar L293D Motor Driver moduli, kā parādīts attēlā, un vadītāja moduli darbina strāvas banka. Pārliecinieties, vai strāvas bankas zeme ir savienota ar Raspberry Pi zemi, tikai tad jūsu savienojums darbosies.
Raspberry PI programmēšana:
Kad esat pabeidzis montāžu un savienojumus, robotam vajadzētu izskatīties apmēram šādi.
Ir pienācis laiks ieprogrammēt mūsu robotu un to palaist. Pilns šī robota kods ir atrodams šīs apmācības apakšdaļā. Uzziniet vairāk par programmu un palaist kodu Raspberry Pi šeit. Svarīgās līnijas ir paskaidrotas turpmāk
Mēs importēsim GPIO failu no bibliotēkas, zemāk esošā funkcija ļauj mums ieprogrammēt PI GPIO tapas. Mēs arī pārdēvējam “GPIO” par “IO”, tāpēc programmā, kad vien mēs vēlamies atsaukties uz GPIO tapām, mēs izmantosim vārdu “IO”.
importēt RPi.GPIO kā IO
Dažreiz, kad GPIO tapas, kuras mēs cenšamies izmantot, iespējams, veic citas funkcijas. Tādā gadījumā mēs saņemsim brīdinājumus, izpildot programmu. Zemāk komanda liek PI ignorēt brīdinājumus un turpināt programmu.
IO.setwarnings (False)
Mēs varam atsaukties uz PI GPIO tapām vai nu pēc tapas numura uz kuģa, vai pēc to funkcijas numura. Tāpat kā “PIN 29” uz tāfeles ir “GPIO5”. Tātad mēs šeit sakām, vai nu mēs šeit parādīsim tapu ar “29” vai “5”.
IO.setmode (IO.BCM)
Mēs iestatām 6 tapas kā ievades / izvades tapas. Pirmie divi tapas ir ieejas tapas, lai nolasītu IR sensoru. Nākamie četri ir izejas tapas, no kurām pirmos divus izmanto labā motora vadīšanai, bet nākamos divus - kreisajam motoram.
IO.setup (2, IO.IN) #GPIO 2 -> Left IR out IO.setup (3, IO.IN) #GPIO 3 -> Right IR out IO.setup (4, IO.OUT) #GPIO 4 - > 1. motora spaile A IO. Iestatīšana (14, IO.OUT) # GPIO 14 -> 1. motora spaile B IO. Iestatīšana (17, IO.OUT) # GPIO 17 -> motora kreisā spaile A IO. Iestatīšana (18, IO.OUT) #GPIO 18 -> Motora kreisā spaile B
IR sensors izdod “True”, ja tas atrodas virs baltas virsmas. Tātad, kamēr abi sensori saka True, mēs varam virzīties uz priekšu.
ja (IO.input (2) == True un IO.input (3) == True): #baltais virzās uz priekšu IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Mums ir jāveic labais pagrieziens, ja pirmais IR sensors nonāk melnā līnijā. Tas tiek darīts, nolasot IR sensoru, un, ja stāvoklis ir izpildīts, mēs apturam labo motoru un rotējam kreiso motoru atsevišķi, kā parādīts zemāk esošajā kodā
elif (IO.input (2) == False un IO.input (3) == True): # pagrieziet pa labi IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO. Izeja (18, False) # 2B-
Mums ir jāveic kreisais pagrieziens, ja otrais IR sensors nonāk melnā līnijā. Tas tiek darīts, nolasot IR sensoru, un, ja stāvoklis ir apmierināts, mēs apstādinām kreiso motoru un pagriežam tikai pa labi, kā parādīts zemāk esošajā kodā
elif (IO.input (2) == True un IO.input (3) == False): # pagriezt pa kreisi IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO. Izeja (18, True) # 2B-
Ja abi sensori atrodas melnā līnijā, tas nozīmē, ka robotam ir jāapstājas. To var izdarīt, padarot abus motora spailes patiesus, kā parādīts zemāk esošajā kodā
cits: # palieciet joprojām IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Aveņu Pi līnijas sekotājs darbībā:
Augšupielādējiet līnijas sekotāja pitona kodu savā Raspberry Pi un palaidiet to. Mums ir nepieciešams pārnēsājams barošanas avots, šajā gadījumā barošanas banka kļūst ērta, tāpēc es to izmantoju. Lietotajam ir divi USB porti, tāpēc es esmu izmantojis PI un citu strāvas padevi motora draiverim, kā parādīts zemāk redzamajā attēlā.
Tagad viss, kas jums jādara, ir izveidot savu melnās krāsas celiņu un atbrīvot bot virs tā. Esmu izmantojis melnas krāsas izolācijas lenti, lai izveidotu sliežu ceļu, kurā var izmantot jebkuru melnu krāsu materiālu, taču pārliecinieties, ka jūsu pamatkrāsa nav tumša.
Pilnīgu robota darbību var atrast zemāk redzamajā video. Ceru, ka sapratāt projektu un patika to uzcelt. Ja jums ir kādi jautājumi, ievietojiet tos komentāru sadaļā zemāk.