Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:farhad_ali.gul:anghelescu.albert [2026/05/18 02:13]
albert.anghelescu [Hardware Design]
pm:prj2026:farhad_ali.gul:anghelescu.albert [2026/05/19 17:35] (current)
albert.anghelescu [Descriere generală]
Line 3: Line 3:
 ===== Introducere ===== ===== Introducere =====
  
-Obstacle Avoiding Car reprezintă o platformă mobilă autonomă proiectată pentru detectarea și evitarea obstacolelor din mediul înconjurător. Sistemul utilizează ​un microcontroler ESP32 pentru procesarea datelor și coordonarea componentelor hardware, împreună cu un senzor ultrasonic montat pe un servomotor pentru scanarea mediului.+Obstacle Avoiding Car reprezintă o platformă mobilă autonomă proiectată pentru detectarea și evitarea obstacolelor din mediul înconjurător. Sistemul utilizează ​Arduino Nano pentru procesarea datelor și coordonarea componentelor hardware, împreună cu un senzor ultrasonic montat pe un servomotor pentru scanarea mediului.
  
-Scopul proiectului este implementarea unui sistem embedded capabil să realizeze deplasare autonomă și reacție în timp real la apariția obstacolelor. Ideea proiectului a pornit de la pasiunea pentru masini si din dorinta de a recrea experientele copilariei asociate cu masinutele cu telecomanda+Scopul proiectului este implementarea unui sistem embedded capabil să realizeze deplasare autonomă și reacție în timp real la apariția obstacolelor.
  
 Acest proiect este util atât din perspectivă educațională,​ deoarece implică lucrul cu microcontrolere,​ actuatori și senzori, cât și din perspectivă practică, reprezentând o bază pentru sisteme autonome mai complexe. Acest proiect este util atât din perspectivă educațională,​ deoarece implică lucrul cu microcontrolere,​ actuatori și senzori, cât și din perspectivă practică, reprezentând o bază pentru sisteme autonome mai complexe.
Line 11: Line 11:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Sistemul este alcătuit dintr-o platformă cu 4 roți, controlată de un microcontroler ESP32. Controlul motoarelor este realizat prin intermediul unui driver L298N, care permite comandarea direcției și vitezei motoarelor utilizând semnale PWM generate de microcontroler.+Sistemul este alcătuit dintr-o platformă cu 4 roți, controlată de un Arduino Nano. Controlul motoarelor este realizat prin intermediul unui driver L298N, care permite comandarea direcției și vitezei motoarelor utilizând semnale PWM generate de microcontroler.
  
 Detectarea obstacolelor se realizează cu ajutorul unui senzor ultrasonic HC-SR04 montat pe un servomotor SG90. Servomotorul permite rotirea senzorului pe diferite unghiuri, oferind posibilitatea scanării mediului în direcțiile stânga, centru și dreapta. Detectarea obstacolelor se realizează cu ajutorul unui senzor ultrasonic HC-SR04 montat pe un servomotor SG90. Servomotorul permite rotirea senzorului pe diferite unghiuri, oferind posibilitatea scanării mediului în direcțiile stânga, centru și dreapta.
Line 22: Line 22:
  
 Interacțiunea modulelor: Interacțiunea modulelor:
-  * ESP32 controlează întregul sistem+  * Arduino ​controlează întregul sistem
   * L298N controlează alimentarea și direcția motoarelor   * L298N controlează alimentarea și direcția motoarelor
   * SG90 rotește senzorul ultrasonic   * SG90 rotește senzorul ultrasonic
   * HC-SR04 furnizează date despre distanța până la obstacole   * HC-SR04 furnizează date despre distanța până la obstacole
-  * LM2596 stabilizează tensiunea pentru alimentarea microcontrolerului 
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 45: Line 44:
   * SG90 rotește senzorul pentru scanarea mediului   * SG90 rotește senzorul pentru scanarea mediului
  
-{{pm:​prj2026:​farhad_ali.gulschelectricaalbert.png?600}}+Schema electrica:​ 
 + 
 +{{pm:​prj2026:​farhad_ali.gul:​schelectricaalbert.png?600}}
 ===== Software Design ===== ===== Software Design =====
 +Mediu de dezvoltare: PlatformIO
 +Biblioteci: doar biblioteci standard AVR (''​avr/​io.h'',​ ''​avr/​interrupt.h'',​ ''​util/​delay.h''​).
  
 +=== Implementare ===
 +''​hcsr04.c''​ — driver pentru senzorul ultrasonic folosind Timer2 (prescaler 64, 4us/tick). ''​HCSR04_measure()''​ trimite pulsul de trig de 10us, asteapta frontul crescator al echo-ului, numara tick-urile cat echo-ul e HIGH (cu tracking manual de overflow), si converteste in centimetri prin formula ''​ticks * 4us / 58''​.
  
-===== Rezultate Obţinute =====+''​l298n.c''​ — driver pentru motoare cu functii de directie (''​forward'',​ ''​backward'',​ ''​turn_left'',​ ''​turn_right'',​ ''​stop''​) si control viteza prin ''​set_speed(left,​ right)''​. Viteza e controlata prin PWM pe Timer0 in Fast PWM mode (OC0A ENB, OC0B ENA, ~980Hz). Virajele sunt de tip pivot — rotile din partea opusa merg invers pentru rotatie pe loc.
  
 +''​servo.c''​ — semnal PWM 50Hz generat cu Timer1 in Fast PWM mode cu TOP = ICR1 = 40000 (prescaler 8, 16MHz). ''​servo_write(us)''​ primeste o valoare in microsecunde si seteaza ''​OCR1A = us * 2''​.
  
-===== Concluzii =====+''​main.c''​ — automat de stari cu 3 stari:
  
 +   * ''​FORWARD'':​ robotul merge inainte si masoara distanta la fiecare 50ms. La detectia unui obstacol sub 45cm, face o a doua masurare dupa 20ms pentru confirmare (eliminare fals-pozitive),​ dupa care opreste motoarele si trece in SCAN.
 +   * ''​SCAN'':​ servo-ul se roteste la stanga si se masoara distanta, apoi la dreapta si se masoara din nou, dupa care revine la centru. Intre fiecare pozitie exista o pauza de 400ms pentru stabilizarea servo-ului.
 +   * ''​TURN'':​ robotul vireaza pivot spre directia cu distanta mai mare masurata in SCAN, timp de 300-400ms, dupa care trece inapoi in FORWARD.
 +===== Rezultate Obţinute =====
 +<note tip>
 +Video: https://​youtube.com/​shorts/​PWHoilhkw_k?​feature=share
 +</​note>​
 +===== Concluzii =====
 +<note tip>
 +Github: https://​github.com/​AnghelescuAlbert/​Object_Avoiding_Car/​tree/​master
 +</​note>​
 ===== Download ===== ===== Download =====
  
pm/prj2026/farhad_ali.gul/anghelescu.albert.1779059598.txt.gz · Last modified: 2026/05/18 02:13 by albert.anghelescu
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