Differences

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

Link to this comparison view

pm:prj2026:vlad.radulescu2901:rares.ciociea [2026/05/05 15:34]
rares.ciociea [Hardware Design]
pm:prj2026:vlad.radulescu2901:rares.ciociea [2026/05/13 10:18] (current)
rares.ciociea [2. Scheme Electrice și Maparea Pinilor]
Line 7: Line 7:
 ====== Descriere generală ====== ====== Descriere generală ======
  
-<​note ​tip+<​note>​ 
-{{:​pm:​prj2026:​vlad.radulescu2901:​schema_bloc.png?​200|}}+{{:​pm:​prj2026:​vlad.radulescu2901:​schema_bloc.png?​700|}}
  
 **Descrierea sumara a modulelor si a modului de interactiune** **Descrierea sumara a modulelor si a modului de interactiune**
Line 56: Line 56:
 *(Notă tehnică: Alimentarea logicii de 5V a microcontrolerului se face prin pinul de +5V al modulului L298N, acesta coborând tensiunea de 6V a bateriei printr-un regulator integrat).* *(Notă tehnică: Alimentarea logicii de 5V a microcontrolerului se face prin pinul de +5V al modulului L298N, acesta coborând tensiunea de 6V a bateriei printr-un regulator integrat).*
  
-(Schema eletrica)+{{:​pm:​prj2026:​vlad.radulescu2901:​schematic_provizoriu_ciociea_rares.png?​500|}}
  
 **Tabelul Conexiunilor Hardware (Pinout Map):** **Tabelul Conexiunilor Hardware (Pinout Map):**
-Pentru interfațarea senzorilor cu perifericele interne ale ATmega328P ​(Timere, ADC, USART, Întreruperi) ​s-a utilizat următoarea mapare:+Pentru interfațarea senzorilor cu perifericele interne ale ATmega328P s-a utilizat următoarea mapare:
  
 ^ Modul Extern ^ Pin Modul ^ Conexiune ATmega328P ^ Rol / Periferic Utilizat ^ ^ Modul Extern ^ Pin Modul ^ Conexiune ATmega328P ^ Rol / Periferic Utilizat ^
 | **Modul HC-05** | TX | PD0 (RXD) | Comunicație Serială (USART) | | **Modul HC-05** | TX | PD0 (RXD) | Comunicație Serială (USART) |
 | **Modul HC-05** | RX | PD1 (TXD) | Comunicație Serială (USART) | | **Modul HC-05** | RX | PD1 (TXD) | Comunicație Serială (USART) |
-| **L298N (Driver)** | ENA | PB1 (OC1A) ​| Control Viteză Motor Stânga (PWM Hardware) | +| **L298N (Driver)** | ENA | PD5 | Control Viteză Motor Stânga (PWM Hardware) | 
-| **L298N (Driver)** | ENB | PB2 (OC1B) ​| Control Viteză Motor Dreapta (PWM Hardware) | +| **L298N (Driver)** | ENB | PD6 | Control Viteză Motor Dreapta (PWM Hardware) | 
-| **L298N (Driver)** | IN1, IN2 | PD4, PD5 | Control Direcție Motor Stânga (GPIO) | +| **L298N (Driver)** | IN1, IN2 | PD4, PD7 | Control Direcție Motor Stânga (GPIO) | 
-| **L298N (Driver)** | IN3, IN4 | PD6PD7 | Control Direcție Motor Dreapta (GPIO) | +| **L298N (Driver)** | IN3, IN4 | PB2PB3 | Control Direcție Motor Dreapta (GPIO) | 
-| **Divizor Tensiune** | Vout (Intersecție) | PC0 (ADC0) | Monitorizare nivel baterie (ADC) | +| **Divizor Tensiune** | Vout (Intersecție) | PC0 (A0) | Monitorizare nivel baterie (ADC) | 
-| **TCRT5000** | A0 | PC1 (ADC1) | Detecție analogică margine (ADC) | +| **TCRT5000** | A0 | PC1 (A1) | Detecție analogică margine ​/ podea (ADC) | 
-| **HC-SR04 (Senzori)** | Pinii Echo | PD2/PD3 (INT0/INT1) | Captură timp răspuns (Întreruperi Externe) | +| **HC-SR04 (Față)** | Trig, Echo | PD2PD3 | Măsurare distanță față ​(GPIO) | 
- +| **HC-SR04 (Stânga)** | Trig, Echo | PC2 (A2), PC3 (A3) | Măsurare distanță stânga ​(ADC folosit ca GPIO) | 
 +| **HC-SR04 (Dreapta)** | Trig, Echo | PC4 (A4), PC5 (A5) | Măsurare distanță dreapta (ADC folosit ca GPIO) |
 ===== 3. Diagrame de Semnal ===== ===== 3. Diagrame de Semnal =====
  
Line 80: Line 80:
 Microcontrolerul emite un impuls logic HIGH de 10µs pe pinul Trigger. Senzorul răspunde cu un semnal HIGH pe pinul Echo, a cărui durată este proporțională cu distanța. Această durată este măsurată hardware folosind întreruperile externe și un Timer. Microcontrolerul emite un impuls logic HIGH de 10µs pe pinul Trigger. Senzorul răspunde cu un semnal HIGH pe pinul Echo, a cărui durată este proporțională cu distanța. Această durată este măsurată hardware folosind întreruperile externe și un Timer.
  
-{{ :diagrama_semnal_ultrasonic.png?600 Diagrama de semnal HC-SR04 ​}}+{{:pm:​prj2026:​vlad.radulescu2901:​hc-sr04.png?800|}}
  
 **B. Diagrama semnalului PWM pentru L298N** **B. Diagrama semnalului PWM pentru L298N**
 Controlul locomoției și aplicarea metodei de "Soft Start" se realizează prin modularea lățimii impulsurilor (PWM) aplicate pe pinii ENA și ENB ai driverului, dictând astfel cuplul și viteza motoarelor. Controlul locomoției și aplicarea metodei de "Soft Start" se realizează prin modularea lățimii impulsurilor (PWM) aplicate pe pinii ENA și ENB ai driverului, dictând astfel cuplul și viteza motoarelor.
  
-{{ :diagrama_pwm.png?500 Diagrama de semnal PWM }} + {{:pm:​prj2026:​vlad.radulescu2901:​l298n.png?800|}}
-===== Software Design =====+
  
 +====== Software Design ======
  
-<note tip> +*(NotaAceasta sectiune prezinta o arhitectura ​de nivel inaltdetaliile urmand sa fie rafinate in etapa finala de implementare).*
-Descrierea codului aplicaţiei ​(firmware): +
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * 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 +
-</​note>​+
  
 +===== 1. Mediu de dezvoltare =====
 +Pentru scrierea, compilarea si incarcarea firmware-ului,​ mediul de dezvoltare ales este **Arduino IDE**. Desi platforma hardware este un ATmega328P Xplained Mini, ecosistemul Arduino ofera un flux de lucru mult mai rapid (Rapid Prototyping) si o sintaxa mai accesibila pentru gestionarea pinilor (GPIO) si a functiilor de timp, comparativ cu programarea stricta pe registri in Microchip Studio.
 +
 +===== 2. Librarii si surse 3rd-party =====
 +Pentru a mentine un control strict asupra executiei si a minimiza overhead-ul,​ utilizarea librariilor externe va fi limitata la minimum necesar:
 +  * Se va folosi exclusiv biblioteca standard **Arduino Core** (pentru functii de baza precum millis(), analogRead(),​ analogWrite(),​ digitalWrite()).
 +  * Interfatarea cu senzorii ultrasonici si citirea nivelului bateriei se vor face prin metode standard, fara a importa librarii masive din surse terte.
 +  * Optional, pentru modulul Bluetooth, se poate folosi libraria SoftwareSerial.h inclusa in pachetul standard Arduino.
 +
 +===== 3. Algoritmi si structuri de date planificate =====
 +Aplicatia va fi proiectata pe o arhitectura **non-blocanta** (fara utilizarea instructiunii delay()), esentiala pentru reactia in timp real a robotului la datele primite de la senzori.
 +  * **Multitasking cooperativ:​** Se va utiliza functia millis() pentru a implementa "​software timere"​. Acest algoritm permite procesorului sa citeasca senzorii, sa raporteze date prin Bluetooth si sa ajusteze PWM-ul motoarelor (aproape) simultan.
 +  * **Masina de Stari Finita (FSM):** Structura principala de control va fi un bloc switch-case ce defineste comportamentul robotului. Starile planificate includ: MERGE_FATA, DETECTARE_PERETE,​ INTOARCERE_90_GRADE_ST/​DR,​ ALINIERE_ZIG_ZAG,​ OPRIRE_URGENTA_MARGINI si LOW_BATTERY.
 +  * **Algoritm de acoperire:​** Logica FSM va dicta un traseu de tip zig-zag. La detectarea unui obstacol frontal, robotul va verifica senzorii laterali pentru a alege directia corecta de viraj, alternand intoarcerile stanga-dreapta.
 +
 +===== 4. Surse si functii implementate (Etapa 3) =====
 +*(Sectiunea va fi completata cu fragmente de cod in momentul finalizarii dezvoltarii. Principalele functii planificate sunt:)*
 +  * void setup() si void loop() - structura de baza Arduino.
 +  * void readSensors() - responsabila de declansarea impulsurilor Trig si citirea duratei Echo, precum si citirea ADC pentru TCRT5000 si baterie.
 +  * void motorControl(int vitezaStanga,​ int vitezaDreapta) - o functie de abstractizare ce transpune cerintele de miscare in semnale PWM si stari logice pentru driverul L298N.
 +  * void updateFSM() - functia care proceseaza datele de la senzori si decide comutarea dintr-o stare in alta.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+To be determined.
 </​note>​ </​note>​
  
Line 122: Line 137:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folositeeventual grupate ​pe **Resurse Software** ​şi **Resurse Hardware**.+===== Resurse Hardware (Datasheet-uri) ===== 
 +  * **ATmega328P Xplained Mini** - User Guide-ul oficial Microchip (utilizat pentru maparea pinilor fizici ai placii si schemele de alimentare):​ [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​ATmega328P-Xplained-Mini-User-Guide-DS50002659B.pdf|ATmega328P Xplained Mini User Guide (PDF)]] 
 +  * **Microcontroler ATmega328P** - Datasheet complet (utilizat pentru intelegerea arhitecturiiregistrilor interni, Timere, ADC, USART si intreruperi):​ [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|ATmega328P Datasheet (PDF)]] 
 +  * **Driver Motoare L298N** - STMicroelectronics Datasheet (consultat pentru limitele de curentcaderea de tensiune ​pe puntea H si logica de control): [[https://​www.st.com/​resource/​en/​datasheet/​l298.pdf|L298N Datasheet (PDF)]] 
 +  ​* **Senzor Ultrasonic HC-SR04** - Specificatii tehnice (utilizat pentru extragerea diagramelor de semnal si a formulei de calcul a distantei bazate pe viteza sunetului): [[https://​cdn.sparkfun.com/​datasheets/​Sensors/​Proximity/​HCSR04.pdf|HC-SR04 Datasheet (PDF)]] 
 +  * **Modul Bluetooth HC-05** - Manual de utilizare (consultat pentru tensiunile de operare si pinii de comunicatie RX/TX): [[https://​components101.com/​sites/​default/​files/​component_datasheet/​HC-05%20Datasheet.pdf|HC-05 Datasheet (PDF)]] 
 +  * **Senzor Infrarosu TCRT5000** - Vishay Datasheet (utilizat pentru curbele de reflectie si intelegerea circuitului emitator-receptor):​ [[https://​www.vishay.com/​docs/​83760/​tcrt5000.pdf|TCRT5000 Datasheet (PDF)]] 
 +  * **Motoare DC cu Reductor (TT Motors 1:48)** - Specificatii generice pentru motoarele galbene de sasiu (utilizate pentru a calcula curentul de stall necesar a fi suportat de L298N): [[https://​cdn.sparkfun.com/​datasheets/​Robotics/​DG01D.pdf|TT Motor Datasheet (PDF)]] 
 + 
 +===== Resurse Software ​===== 
 +  ​* **OCW UPB - Proiectare cu Microprocesoare:​** Suportul teoretic de laborator pentru configurarea perifericelor hardware si notiuni de electronica:​ [[https://​ocw.cs.pub.ro/​courses/​pm|ocw.cs.pub.ro/​courses/​pm]] 
 +  ​**Arduino Reference:​** Documentatia oficiala pentru arhitectura de cod si functiile standard (millis, pini I/O) utilizate in sistemul non-blocant:​ [[https://​www.arduino.cc/​reference/​en/​|Arduino Language Reference]] 
 +  * **WaveDrom:​** Unealta utilizata pentru generarea diagramelor de semnal (timing diagrams) din sectiunea de Hardware Design: [[https://​wavedrom.com/​|wavedrom.com]]
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2026/vlad.radulescu2901/rares.ciociea.1777984485.txt.gz · Last modified: 2026/05/05 15:34 by rares.ciociea
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