- Potrebne komponente:
- Modul ultrazvučnog senzora:
- Objašnjenje sklopa:
- Kako radi:
- Objašnjenje programiranja:
Roboti su strojevi koji smanjuju ljudske napore u teškim radovima automatiziranjem zadataka u industriji, tvornicama, bolnicama itd. Većinom se roboti upravljaju pomoću neke upravljačke jedinice ili komponenata poput tipke, daljinskog upravljača, džojstika, računala, gesta i pomoću izvršavanje neke naredbe pomoću kontrolera ili procesora. Ali danas smo ovdje s automatskim robotom koji se kreće autonomno, bez ikakvih vanjskih događaja, izbjegavajući sve prepreke na svom putu, da, govorimo o robotu koji izbjegava prepreke. U ovom smo projektu koristili Raspberry Pi i Motor driver za pogon robota i ultrazvučni senzor za otkrivanje predmeta na putu Robota.
Prije smo obrađivali mnoge korisne robote, možete ih pronaći u našem odjeljku Robotički projekti.
Potrebne komponente:
- Raspberry Pi
- Modul ultrazvučnog senzora HC-SR04
- ROBOT Šasija u kompletu s vijkom
- Istosmjerni motori
- L293D IC
- Kotačići
- Daska za kruh
- Otpornik (1k)
- Kondenzator (100nF)
- Spajanje žica
- Napajanje ili banka napajanja
Modul ultrazvučnog senzora:
Prepreka Avoider robot je automatizirani robot i to ne treba biti pod kontrolom pomoću bilo kojeg daljinskog upravljača. Ove vrste automatiziranih robota imaju neke senzore 'šestog čula' poput detektora prepreka, detektora zvuka, detektora topline ili metala. Ovdje smo napravili otkrivanje prepreka pomoću ultrazvučnih signala. U tu svrhu koristili smo ultrazvučni senzorski modul.
Ultrazvučni senzori obično se koriste za otkrivanje predmeta i određivanje udaljenosti prepreke od senzora. Ovo je izvrstan alat za mjerenje udaljenosti bez ikakvog fizičkog kontakta, poput mjerenja razine vode u spremniku, mjerenja udaljenosti, robota za izbjegavanje prepreka itd. Dakle, ovdje smo otkrili objekt i izmjerili udaljenost pomoću ultrazvučnog senzora i Raspberry Pi.

Ultrazvučni senzor HC-SR04 koristi se za mjerenje udaljenosti u rasponu od 2 cm do 400 cm s točnošću od 3 mm. Modul senzora sastoji se od ultrazvučnog odašiljača, prijamnika i upravljačkog kruga. Ultrazvučni senzor sastoji se od dva kružna oka od kojih se jedno koristi za prijenos ultrazvučnog vala, a drugo za njegovo primanje.
Možemo izračunati udaljenost objekta na temelju vremena koje je ultrazvučnom valu trebalo za povratak na senzor. Budući da su vrijeme i brzina zvuka poznati, udaljenost možemo izračunati prema sljedećim formulama.
- Udaljenost = (Vrijeme x Brzina zvuka u zraku (343 m / s)) / 2.
Vrijednost se dijeli s dva jer val putuje naprijed i natrag pokrivajući istu udaljenost. Tako je vrijeme za dosezanje prepreke tek polovica ukupnog vremena potrebnoga.
Tako smo izračunali udaljenost (u centimetrima) od prepreke kao dolje:
pulse_start = time.time () dok je GPIO.input (ECHO) == 1: # Provjerite je li ECHO VISOK GPIO. izlaz (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 udaljenost = okrugla (udaljenost, 2) avgDistance = avgDistance + distance
Gdje je trajanje impulsa vrijeme između slanja i primanja ultrazvučnog signala.
Objašnjenje sklopa:
Krug je vrlo jednostavan za ovog robota koji izbjegava prepreke koristeći Raspberry Pi. Modul ultrazvučnog senzora, koji se koristi za otkrivanje predmeta, povezan je na GPIO pin 17 i 27 Raspberry Pi. Motor Vozač IK L293D spojen na malina Pi 3 za vožnju robota motora. Ulazne iglice 2, 7, 10 i 15 vozača motora povezane su s Raspberry Pi GPIO pinovima 12, 16, 20 i 21. Ovdje smo koristili dva istosmjerna motora za pogon robota u kojem je jedan motor spojen na izlazni pin 3 i 6 IC upravljačkog programa motora, a drugi motor spojen je na pin 11 i 14 IC upravljačkog programa motora.

Kako radi:
Rad s ovim autonomnim robotom vrlo je jednostavan. Kad se robot uključi i počne raditi, Raspberry Pi mjeri udaljenosti objekata ispred sebe, koristeći ultrazvučni senzorski modul i pohranjuje u varijablu. Tada RPi uspoređuje ovu vrijednost s unaprijed definiranim vrijednostima i u skladu s tim donosi odluke o pomicanju robota ulijevo, udesno, naprijed ili unatrag.

Ovdje smo u ovom projektu odabrali udaljenost od 15 cm za donošenje bilo kakve odluke tvrtke Raspberry Pi. Sad kad Raspberry Pi postane na udaljenosti manjoj od 15 cm od bilo kojeg objekta, Raspberry Pi zaustavlja robota i pomiče ga natrag, a zatim okreće lijevo ili desno. Prije ponovnog pomicanja prema naprijed, Raspberry Pi ponovno provjerava je li prisutna neka prepreka unutar dometa od 15 cm, ako je odgovor da, onda opet ponavlja prethodni postupak, inače pomaknite robota prema naprijed dok ponovno ne otkrije bilo kakvu prepreku ili objekt.

Objašnjenje programiranja:
Za Program ovdje koristimo jezik Python. Prije kodiranja, korisnik mora konfigurirati Raspberry Pi. Možete provjeriti naše prethodne vodiče za početne korake s Raspberry Pi i instaliranje i konfiguriranje Raspbian Jessie OS u Pi.
Programski dio ovog projekta igra vrlo važnu ulogu za izvođenje svih operacija. Prije svega, uključujemo potrebne knjižnice, inicijaliziramo varijable i definiramo igle za ultrazvučni senzor, motor i komponente.
uvoz RPi.GPIO kao GPIO vrijeme uvoza #Uvoz knjižnice vremena GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Nakon njega stvorili smo neke funkcije def naprijed (), def natrag (), def nalijevo (), def udesno () za pomicanje robota prema naprijed, unatrag, ulijevo ili udesno i def stop () za zaustavljanje robota, provjerite funkcije u dolje navedenom kodu.
Zatim smo u glavnom programu pokrenuli ultrazvučni senzor i očitali vrijeme između prijenosa i prijema signala i izračunali udaljenost. Ovdje smo ovaj postupak ponovili 5 puta radi veće preciznosti. Već smo objasnili postupak izračuna udaljenosti pomoću ultrazvučnog senzora.
i = 0 avgDistance = 0 za i u rasponu (5): GPIO.izlaz (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) dok je GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () dok je GPIO.input (ECHO) == 1: # Provjerite je li ECHO VISOK GPIO.output (led, False) impuls_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 distance = round (distance, 2) avgDistance = avgDistance + distance
Napokon, ako Robot pronađe bilo kakvu prepreku ispred sebe, nakon što se udaljimo od prepreke, programirali smo Robota da krene drugačijom rutom.
ako je avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 else: lijeva () zastava = 0 time.sleep (1.5) stop () time.sleep (1) else: forward () flag = 0
Kompletni kôd ovog robota za izbjegavanje prepreka Raspberry Pi dan je u nastavku s demonstracijskim videom.
