- Nepieciešamās sastāvdaļas:
- Ultraskaņas sensora modulis:
- Ķēdes skaidrojums:
- Kā tas strādā:
- Programmēšanas skaidrojums:
Roboti ir mašīnas, kas samazina cilvēku piepūli smagos darbos, automatizējot uzdevumus nozarēs, rūpnīcās, slimnīcās utt. Lielāko daļu robotu vada, izmantojot kādu vadības bloku vai komponentus, piemēram, spiedpogu, tālvadības pulti, kursorsviru, datoru, žestus un izpildot kādu komandu, izmantojot kontrolieri vai procesoru. Bet šodien mēs esam šeit ar automātisko robotu, kas pārvietojas autonomi bez jebkādiem ārējiem notikumiem, izvairoties no visiem šķēršļiem savā ceļā, jā, mēs runājam par robotu, kas traucē izvairīties no šķēršļiem. Šajā projektā mēs esam izmantojuši Raspberry Pi un Motora draiveri, lai vadītu robotu un Ultraskaņas sensoru objektu noteikšanai robota ceļā.
Iepriekš mēs esam apskatījuši daudzus noderīgus robotus, tos varat atrast mūsu robotikas projektu sadaļā.
Nepieciešamās sastāvdaļas:
- Aveņu Pi
- Ultraskaņas sensora modulis HC-SR04
- ROBOT Šasija komplektā ar skrūvi
- DC motori
- L293D IC
- Riteņi
- Maizes dēlis
- Rezistors (1k)
- Kondensators (100 nF)
- Savienojošie vadi
- Barošanas avots vai barošanas banka
Ultraskaņas sensora modulis:
Šķērslis avoider robots ir automatizēta Robot, un tas nav nepieciešams kontrolēt, izmantojot jebkuru tālvadības pulti. Šāda veida automatizētajiem robotiem ir daži “sestās sajūtas” sensori, piemēram, šķēršļu detektori, skaņas detektors, siltuma detektors vai metāla detektori. Šeit mēs esam veikuši šķēršļu noteikšanu, izmantojot ultraskaņas signālus. Šim nolūkam mēs esam izmantojuši ultraskaņas sensoru moduli.
Ultraskaņas sensorus parasti izmanto objektu noteikšanai un šķēršļa attāluma noteikšanai no sensora. Tas ir lielisks rīks, lai izmērītu attālumu bez jebkāda fiziska kontakta, piemēram, ūdens līmeņa mērīšana tvertnē, attāluma mērīšana, šķēršļu novēršanas robots utt. Tātad šeit mēs esam atklājuši objektu un izmērījuši attālumu, izmantojot ultraskaņas sensoru un aveņu Pi.
Ultraskaņas sensoru HC-SR04 izmanto, lai izmērītu attālumu diapazonā no 2 cm līdz 400 cm ar precizitāti 3 mm. Sensora modulis sastāv no ultraskaņas raidītāja, uztvērēja un vadības ķēdes. Ultraskaņas sensors sastāv no divām apļveida acīm, no kurām vienu izmanto ultraskaņas viļņa pārraidīšanai, bet otru - tā saņemšanai.
Mēs varam aprēķināt objekta attālumu, pamatojoties uz laiku, kas nepieciešams ultraskaņas viļņiem, lai atgrieztos atpakaļ pie sensora. Tā kā ir zināms skaņas laiks un ātrums, attālumu varam aprēķināt pēc šādām formulām.
- Attālums = (laiks x skaņas ātrums gaisā (343 m / s)) / 2.
Vērtība tiek dalīta ar divām, jo vilnis pārvietojas uz priekšu un atpakaļ, aptverot to pašu attālumu. Tādējādi laiks, lai sasniegtu šķērsli, ir tikai puse no kopējā patērētā laika.
Tātad mēs esam aprēķinājuši attālumu (centimetros) no šķēršļa, kā norādīts zemāk:
pulse_start = time.time (), kamēr GPIO.input (ECHO) == 1: #Pārbaudiet, vai ECHO ir HIGH GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 attālums = apaļš (attālums, 2) vid. attālums = vid. attālums + attālums
Kur impulsa ilgums ir laiks starp ultraskaņas signāla nosūtīšanu un saņemšanu.
Ķēdes skaidrojums:
Ķēde ir ļoti vienkārša šim robotam, kas ļauj izvairīties no robota, izmantojot Aveņu Pi. Ultraskaņas Sensor modulis, ko izmanto, lai atklātu objektiem, ir pieslēgts pie GPIO pin 17. un 27. aveņu Pi. Motor Driver IC L293D ir savienots ar aveņu Pi 3, lai vadītu robota motors. Motora vadītāja ieejas tapas 2, 7, 10 un 15 ir savienotas ar Raspberry Pi GPIO tapām attiecīgi 12, 16, 20 un 21. Šeit mēs izmantojām divus līdzstrāvas motorus, lai vadītu robotu, kurā viens motors ir savienots ar motora draivera IC izejas tapām 3 un 6, bet cits motors ir pievienots motora draivera IC tapās 11 un 14.
Kā tas strādā:
Darbs ar šo autonomo robotu ir ļoti vienkāršs. Kad robots ir ieslēgts un sāk darboties, Raspberry Pi mēra objektu attālumus priekšā, izmantojot Ultraskaņas sensoru moduli un uzglabā mainīgajā. Tad RPi salīdzina šo vērtību ar iepriekš definētām vērtībām un attiecīgi pieņem lēmumus, lai pārvietotu robotu pa kreisi, pa labi, uz priekšu vai atpakaļ.
Šajā projektā mēs esam izvēlējušies 15 cm attālumu jebkura Raspberry Pi lēmuma pieņemšanai. Tagad, kad Raspberry Pi nokļūst mazāk nekā 15 cm attālumā no jebkura objekta, Raspberry Pi aptur robotu un pārvieto to atpakaļ, un pēc tam pagriež pa kreisi vai pa labi. Tagad, pirms to atkal pārvietojat uz priekšu, Raspberry Pi vēlreiz pārbauda, vai 15 cm attālumā nav šķēršļu, ja jā, tad atkārtojiet iepriekšējo procesu, pretējā gadījumā pārvietojiet robotu uz priekšu, līdz tas atkal atklāj jebkuru šķērsli vai priekšmetu.
Programmēšanas skaidrojums:
Mēs šeit Programmai izmantojam Python valodu. Pirms kodēšanas lietotājam jākonfigurē Raspberry Pi. Jūs varat pārbaudīt mūsu iepriekšējās apmācības par darba sākšanu ar Raspberry Pi un Raspbian Jessie OS instalēšanu un konfigurēšanu Pi.
Šī projekta programmēšanas daļai ir ļoti svarīga loma visu darbību veikšanā. Pirmkārt, mēs iekļaujam nepieciešamās bibliotēkas, inicializējam mainīgos un definējam tapas ultraskaņas sensoram, motoram un komponentiem.
importēt RPi.GPIO kā GPIO importēšanas laiku # Importēt laika bibliotēku GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Pēc tam mēs esam izveidojuši dažas funkcijas def uz priekšu (), def atpakaļ (), pa kreisi (), labo labo (), lai pārvietotu robotu attiecīgi uz priekšu, atpakaļ, pa kreisi vai pa labi, un def stop (), lai apturētu robotu, pārbaudiet zemāk norādītā koda funkcijas.
Tad galvenajā programmā mēs esam uzsākuši ultraskaņas sensoru un nolasījuši laiku starp signāla pārraidi un saņemšanu un aprēķinājuši attālumu. Šeit mēs esam atkārtojuši šo procesu 5 reizes, lai iegūtu labāku precizitāti. Mēs jau esam izskaidrojuši attāluma aprēķināšanas procesu, izmantojot ultraskaņas sensoru.
i = 0 vid. attālums = 0 i diapazonā (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) kamēr GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time (), savukārt GPIO.input (ECHO) == 1: #Pārbaudiet, vai ECHO ir HIGH GPIO.output (vadīts, Nepatiesa) pulsa_ beigas = laiks. Laiks () impulsa ilgums = impulsa beigas - impulsa sākuma attālums = impulsa ilgums * 17150 attālums = apaļš (attālums, 2) vid. Attālums = vid. Attālums + attālums
Visbeidzot, ja robots atrod kādu šķērsli priekšā, tad pēc attāluma no šķēršļa esam ieprogrammējuši robotu izvēlēties citu maršrutu.
ja vidējais attālums <15: skaits = skaits + 1 pieturas () laiks. gulēt (1) atpakaļ () laiks. gulēt (1,5), ja (skaitīt% 3 == 1) & (karogs == 0): labais () karogs = 1 cits: kreisais () karogs = 0 laiks. Gulēt (1,5) apstāties () laiks. Gulēt (1) cits: uz priekšu () karogs = 0
Pilns šī Raspberry Pi šķēršļu novēršanas robota kods ir norādīts zemāk ar demonstrācijas video.