This is an old revision of the document!


Arduino Obstacle Avoidance + Voice Control

Student: Săpunaru Andrei-Iliuță
Grupă: 334CC

Introducere

Proiectul acesta urmăreste implementarea unui robot care se deplasează într-o anumita direcție până in momentul în care în fața lui apare un obstacol de orice natură. Scopul său este să evite coliziunea cu obiectele sau persoanele din jurul său. Aceasta poate fi o caracteristică importantă în diverse aplicații robotice, cum ar fi roboții utilizați în cadrul fabricilor, în domeniul medical sau în transportul autonom. Spre exemplu , un astfel de robot poate fi utilizat într-o fabrică pentru a se deplasa de la o stație de lucru la alta, fără a intra în coliziune cu echipamentele sau muncitorii de pe traseu.

Prin implementarea acestei caracteristici de oprire la obstacole, robotul poate detecta obiectele și poate lua decizii rapide pentru a evita coliziunea cu acestea, asigurând astfel o deplasare sigură și fără probleme în mediul înconjurător.Ideea mi-a venit vizionând câteva filme în care prezența acestor roboți era tot mai numeroasă , dar și mai benefică. Mi s-a părut destul de interesant tot procesul de asamblare al robotului, cât și rezultatul așteptat.

Descriere generală

Robotul pornește prin activarea butonului și din acest moment asteaptă de la utilizator să îi adreseze o comandă de deplasare. Comenzile sunt de 4 tipuri , fiecare tip fiind caracteristic pentru câte o direcție de deplasare: înainte , înapoi , stânga si dreapta. În cazul în care comanda este nerecunoscută de robot , în mod firesc robotul stă pe loc , neacționând. Deplasarea sa se realizează prin intermediul celor 4 roți acționate de tot atâtea motoare. Motoarele sunt acționate prin intermediul unui motor driver , astfel controlând atât direcția , cât și viteza de deplasare a robotului.

Partea frontală a proiectului este reprezentată în principiu de senzorul ultrasonic , așezat așa încât se poate spune că reprezintă ochii robotului . Prin intermediul său , se detectează obiectele din jurul robotului și se determina distanța dintre robot și obstacol. În funcție de timpul măsurat , dar și a vitezei sunetului în aer, senzorul poate obține distanța dintre robot și un potențial obstacol.

În partea din spate , se regăsește un senzor IR util in detectarea și evitarea coliziunilor ce se pot produce cu alte obiecte aflate în urma robotului. Mecanismul de funcționare este clasic acestui tip de senzor și se bazează pe reflexia razelor infraroșii , obținută datorită razei infraroșii emisă de senzor. Astfel , robotul este capabil să se oprească la detecția obstacolului.

Servomotorul practic dă direcția de deplasare , dat fiind faptul că senzorul ultrasonic este poziționat pe un suport ce are directă legătura cu servomotorul. Astfel , la o comandă de tipul “stânga” sau “dreapta” , suportul se va roti și va analiza situația de deplasare , adresată de utilizator. Modulul bluetooth realizează conexiunea cu telefonul și implicit cu programatorul, capabil din acest moment să adreseze comenzile de deplasare robotului.

Schema bloc

Hardware Design

Lista componente:

  • ARDUINO UNO R3 ATMEGA328P
  • PLACĂ DE CONTROL MOTOARE L293D
  • MODUL BLUETOOTH HC-05
  • SENZOR ULTRASONIC
  • MOTOR SERVO SG90 9G
  • BATERII 18650 Battery
  • SENZOR OBSTACOL IR 3.3-5V
  • KIT MOTOR REDUCTOR + ROATA
  • BUTON
  • FIRE
  • SUPORT SENZOR ULTRASUNETE
  • SUPORT BATERII 18650

Schema electrica

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

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

  1. 06.04.2023 - Alegere temă proiect
  2. 14.04.2023 - Alegere componente
  3. 18.04.2023 - Revendicarea pieselor
  4. 05.05.2023 - Completare milestone 1

Bibliografie/Resurse

pm/prj2023/ndrogeanu/obstacle-avoidance-control-robot.1684244645.txt.gz · Last modified: 2023/05/16 16:44 by andrei.sapunaru2007
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