Differences

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

Link to this comparison view

pm:prj2026:florin.stancu:mihnea.popescu1811 [2026/05/07 22:18]
mihnea.popescu1811 [Descriere generală]
pm:prj2026:florin.stancu:mihnea.popescu1811 [2026/05/15 02:51] (current)
mihnea.popescu1811 [Schematic]
Line 37: Line 37:
   * Fire de conexiune Dupont (Tata-Tata pentru breadboard, Mama-Tata pentru senzori si driver)   * Fire de conexiune Dupont (Tata-Tata pentru breadboard, Mama-Tata pentru senzori si driver)
  
 +^ Board Pin ^ Function ^ Component ^ Direction ^ Description ^
 +| Pin 4 | Digital Out | Driver L298N (IN1) | Output | Directie motor stang |
 +| Pin 5 | Digital Out | Driver L298N (IN2) | Output | Directie motor stang |
 +| Pin 6 | Digital Out | Driver L298N (IN3) | Output | Directie motor drept |
 +| Pin 7 | Digital Out | Driver L298N (IN4) | Output | Directie motor drept |
 +| Pin 10 | PWM Out | Driver L298N (ENA) | Output | Viteza motor stang |
 +| Pin 11 | PWM Out | Driver L298N (ENB) | Output | Viteza motor drept |
 +| Pin 2 | Digital Out | Senzor Fata (Trig) | Output | Trigger ultrasunete |
 +| Pin 3 | Digital In | Senzor Fata (Echo) | Input | Receptie ecou |
 +| Pin 8 | Digital Out | Senzor Stanga (Trig) | Output | Trigger ultrasunete |
 +| Pin 9 | Digital In | Senzor Stanga (Echo) | Input | Receptie ecou |
 +| Pin 12 | Digital Out | Senzor Dreapta (Trig) | Output | Trigger ultrasunete |
 +| Pin 13 | Digital In | Senzor Dreapta (Echo) | Input | Receptie ecou |
 +
 +
 +===== Schematic =====
 +
 +{{:​pm:​prj2026:​florin.stancu:​schematicbun.png?​800|}}
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip> +Dezvoltarea software-ului se realizeaza la nivel bare-metal, avand la baza o arhitectura orientata pe evenimente ​(intreruperisi o bucla de control principala. 
-Descrierea codului aplicaţiei ​(firmware): + 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR+  * **Mediu ​de dezvoltare:** Codul este scris in C, folosind un mediu precum Visual Studio Code cu avr-gcc si Makefile ​(sau Atmel/​Microchip ​Studio). 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib+  * **Librarii si surse 3rd-party:** Se vor folosi exclusiv bibliotecile standard AVR (`<avr/io.h>`, `<​avr/​interrupt.h>`, `<​util/​delay.h>​`). Nu se folosesc biblioteci externe (cum ar fi cele de Arduino), tot codul interactionand direct cu registrii. 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * **Algoritmi si structuri ​de date:** 
-  * (etapa 3surse şi funcţii ​implementate +    **Algoritm PID:** Calcul matematic folosit pentru a mentine distanta constanta fata de perete si a elimina oscilatiile ​(mersul in zig-zag)
-</​note>​+    * **Finite State Machine (FSM):** Masina de stari pentru controlul logicii de navigare (ex. stari: `FOLLOW_WALL`,​ `CORNER_TURN`,​ `AVOID_FRONT_OBSTACLE`). 
 +    * Structuri de tip `struct` pentru a grupa datele senzorilor si coeficientii PID (Kp, Ki, Kd, eroarea_anterioara). 
 +  * **Surse si functii ​implementate:** 
 +    * `init_timers_and_pwm()`:​ Configureaza registrele pentru generarea PWM-ului motoarelor si timerele pentru senzori. 
 +    * `read_ultrasonic(sensor_pin)`:​ Declanseaza senzorul si masoara durata semnalului Echo prin intreruperi pentru a calcula distanta. 
 +    * `compute_PID(current_dist,​ setpoint)`: Calculeaza eroarea si aplica formula Proportional-Integral-Derivativ. 
 +    * `drive_motors(speed_left,​ speed_right)`:​ Aplica rezultatul PID pe pinii de comanda ai driverului L298N.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
pm/prj2026/florin.stancu/mihnea.popescu1811.1778181495.txt.gz · Last modified: 2026/05/07 22:18 by mihnea.popescu1811
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