This is an old revision of the document!


Robot care evită obstacolele

Introducere

Un robot care va evita obstacolele, folosindu-se de informațiile primite de la 3 senzori de distanță, ce vor măsura distanțele pe 3 direcții (stânga, față, dreapta). Viteza robotului se va putea regla prin intermediul unui potențiometru.

Descriere generală

Schemă bloc:

Robotul va merge înainte până când va întâlni un obstacol. Cei 3 senzori vor transmite către robot distanțele până la primul obstacol pe direcțiile stânga, dreapta și înainte. Astfel, robotul se va orienta către direcția cu distanța cea mai mare până la obstacol și își va continua mișcarea. Prin intermediul potențiometrului se va putea regla viteza robotului.

Hardware Design

Listă componente:

  • Arduino
  • 2 motoare
  • 2 roți
  • 3 senzori de distanță - HC-SR04
  • potențiometru
  • driver motoare - L298N
  • 2 carcase baterie 9V
  • șasiu
  • fire

Data Sheets:

Schema electrica

Software Design

Mediu de dezvoltare folosit: Arduino IDE 1.8.19

Biblioteca folosita: L298N - pentru controlul celor 2 motoare

Functii implementate

In setup se seteaza modul de utilizare a pinilor si se seteaza viteza initiala, citind valoarea potentiometrului.

In functia getDist se calculeaza distanta de la robot pana la obstacol, folosind unul din senzorii de distanta. Distanta maxima pe care o poate citi senzorul este 4.5m.

Functiile turnRight si turnLeft intorc robotul (cu aprox. 90°, depinde de suprafata pe care se afla).

Functia changeSpeed citeste valoarea potentiometrului, calculeaza noua viteza si apoi schimba viteza robotului.

In loop:

  • se citeste valoarea potentiometrului; daca aceasta este diferita fata de cea anterioara, se va apela changeSpeed
  • se calculeaza distanta pana la obstacolul din fata; daca este mai mica de 25 cm, se vor citi distantele pana la obstacolele din stanga si din dreapta, iar robotul isi va schimba directia cu distana mai mare.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/ncaroi/robot-care-evita-obstacolele.1652995630.txt.gz · Last modified: 2022/05/20 00:27 by octavian.torcea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0