This shows you the differences between two versions of the page.
|
pm:prj2026:vlad.radulescu2901:rares.ciociea [2026/05/05 15:10] rares.ciociea [Descriere generală] |
pm:prj2026:vlad.radulescu2901:rares.ciociea [2026/05/13 10:18] (current) rares.ciociea [2. Scheme Electrice și Maparea Pinilor] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Proiectul consta in crearea unui robot "autonom" care urmareste un algoritm de tip zig-zag. Acesta poate fi oprit, pornit sau resetat prin intermediul modulului Bluetooth. Pe viitor se poate adapta la a se conecta la un server ML pentru a invata camera autonom, iar Swiffer-ul poate fi schimbat cu un modul de aspirator. | Proiectul consta in crearea unui robot "autonom" care urmareste un algoritm de tip zig-zag. Acesta poate fi oprit, pornit sau resetat prin intermediul modulului Bluetooth. Pe viitor se poate adapta la a se conecta la un server ML pentru a invata camera autonom, iar Swiffer-ul poate fi schimbat cu un modul de aspirator. | ||
| </note> | </note> | ||
| - | ===== Descriere generală ===== | + | ====== Descriere generală ====== |
| - | <note tip> | + | <note> |
| + | {{:pm:prj2026:vlad.radulescu2901:schema_bloc.png?700|}} | ||
| - | {{:pm:prj2026:vlad.radulescu2901:schema_bloc.png?200|}} | + | **Descrierea sumara a modulelor si a modului de interactiune** |
| - | Descrierea sumara a modulelor si a modului de interactiune | + | **1. Descrierea modulelor hardware:** |
| - | 1. Descrierea modulelor hardware: | + | * **Unitatea de procesare (ATmega328P):** Reprezinta "creierul" sistemului, fiind responsabil cu rularea algoritmului principal si coordonarea tuturor perifericelor. |
| + | * **Modulul de alimentare si putere (L298N & Divizor):** Gestioneaza energia. Regulatorul integrat asigura 5V stabili pentru logica sistemului, puntea H controleaza curentii mari pentru locomotie, iar divizorul de tensiune permite citirea nivelului bateriei in conditii de siguranta. | ||
| + | * **Modulul de perceptie (Senzori HC-SR04 si TCRT5000):** Culeg date din mediul fizic, masurand distanta pana la pereti/obstacole si detectand prezenta suprafetei de rulare. | ||
| + | * **Sistemul de locomotie (Motoare DC):** Executa miscarea fizica (directie si viteza) a sasiului. | ||
| + | * **Modulul de comunicatie (Bluetooth HC-05):** Asigura o legatura seriala wireless bidirectionala cu un terminal extern pentru monitorizare si debugging. | ||
| - | * Unitatea de procesare (ATmega328P): Reprezinta "creierul" sistemului, fiind responsabil cu rularea algoritmului principal si coordonarea tuturor perifericelor. | + | **2. Modul de interactiune (Fluxul de functionare):** |
| - | * Modulul de alimentare si putere (L298N & Divizor): Gestioneaza energia. Regulatorul integrat asigura 5V stabili pentru logica sistemului, puntea H controleaza curentii mari pentru locomotie, iar divizorul de tensiune permite citirea nivelului bateriei in conditii de siguranta. | + | Sistemul interactioneaza printr-o bucla continua de tip **Achizitie date -> Procesare -> Actiune**. |
| + | Pachetul de baterii alimenteaza intregul ansamblu. In timpul rularii, senzorii colecteaza date din mediu si le transmit catre microcontroler sub forma de impulsuri sau niveluri de tensiune. ATmega328P analizeaza aceste intrari si, pe baza algoritmului de decizie, trimite semnale de control (PWM si directie logica) catre driverul L298N. Driverul actioneaza ca un amplificator, cupland motoarele la curentul bateriei pentru a executa deplasarea. In paralel, microcontrolerul raporteaza constant starea sistemului (baterie, distante, decizii de viraj) prin intermediul modulului Bluetooth. | ||
| + | </note> | ||
| + | ====== Hardware Design ====== | ||
| - | * Modulul de perceptie (Senzori HC-SR04 si TCRT5000): Culeg date din mediul fizic, masurand distanta pana la pereti/obstacole si detectand prezenta suprafetei de rulare. | + | ===== 1. Listă de piese (BOM - Bill of Materials) ===== |
| - | * Sistemul de locomotie (Motoare DC): Executa miscarea fizica (directie si viteza) a sasiului. | + | Pentru realizarea acestui proiect, a fost utilizată următoarea configurație hardware, axată pe un echilibru între eficiența energetică și acuratețea senzorilor: |
| - | * Modulul de comunicatie (Bluetooth HC-05): Asigura o legatura seriala wireless bidirectionala cu un terminal extern pentru monitorizare si debugging. | + | * **Unitate de Control:** 1x Placă de dezvoltare ATmega328P Xplained Mini. |
| + | * **Sistem de Locomoție:** | ||
| + | * 1x Șasiu robot 2WD (din plexiglas). | ||
| + | * 2x Motoreductoare de curent continuu (Motoare TT, raport 1:48). | ||
| + | * 2x Roți cauciucate + 1x Roată pivotantă (Caster wheel). | ||
| + | * 1x Modul Driver Motoare L298N (cu regulator de tensiune LM7805 integrat). | ||
| + | * **Sistem de Percepție (Senzori):** | ||
| + | * 3x Module ultrasonice HC-SR04 (amplasate frontal, stânga, dreapta). | ||
| + | * 1x Senzor optic reflexiv infraroșu TCRT5000 (pentru detecția marginilor / "Swiffer"). | ||
| + | * **Sistem de Comunicație:** 1x Modul Bluetooth HC-05. | ||
| + | * **Sistem de Alimentare:** | ||
| + | * 1x Suport pentru 4 baterii tip AA. | ||
| + | * 4x Baterii Alcaline AA 1.5V (Tensiune totală nominală: 6V). | ||
| + | * **Componente Pasive & Conectică:** | ||
| + | * 1x Rezistor 4.7kΩ (Albastru-precizie: Galben-Violet-Negru-Maro). | ||
| + | * 1x Rezistor 2.2kΩ (Albastru-precizie: Roșu-Roșu-Negru-Maro). | ||
| + | * 1x Breadboard mini (170 puncte). | ||
| + | * Set fire conexiune Dupont (Tată-Tată, Mamă-Tată). | ||
| - | 2. Modul de interactiune (Fluxul de functionare): | ||
| - | Sistemul interactioneaza printr-o bucla continua de tip Achizitie date -> Procesare -> Actiune. | + | ===== 2. Scheme Electrice și Maparea Pinilor ===== |
| - | Pachetul de baterii alimenteaza intregul ansamblu. In timpul rularii, senzorii colecteaza date din mediu si le transmit catre microcontroler sub forma de impulsuri sau niveluri de tensiune. ATmega328P analizeaza aceste intrari si, pe baza algoritmului de decizie, trimite semnale de control (PWM si directie logica) catre driverul L298N. Driverul actioneaza ca un amplificator, cupland motoarele la curentul bateriei pentru a executa deplasarea. In paralel, microcontrolerul raporteaza constant starea sistemului (baterie, distante, decizii de viraj) prin intermediul modulului Bluetooth. | + | |
| - | </note> | + | |
| - | ===== Hardware Design ===== | + | Pentru a vizualiza interconectarea componentelor, se va consulta schema electrică de ansamblu de mai jos. |
| + | *(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).* | ||
| - | <note tip> | + | {{:pm:prj2026:vlad.radulescu2901:schematic_provizoriu_ciociea_rares.png?500|}} |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
| - | * diagrame de semnal | + | |
| - | * rezultatele simulării | + | |
| - | </note> | + | |
| - | ===== Software Design ===== | + | **Tabelul Conexiunilor Hardware (Pinout Map):** |
| + | 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 HC-05** | TX | PD0 (RXD) | Comunicație Serială (USART) | | ||
| + | | **Modul HC-05** | RX | PD1 (TXD) | Comunicație Serială (USART) | | ||
| + | | **L298N (Driver)** | ENA | PD5 | Control Viteză Motor Stânga (PWM Hardware) | | ||
| + | | **L298N (Driver)** | ENB | PD6 | Control Viteză Motor Dreapta (PWM Hardware) | | ||
| + | | **L298N (Driver)** | IN1, IN2 | PD4, PD7 | Control Direcție Motor Stânga (GPIO) | | ||
| + | | **L298N (Driver)** | IN3, IN4 | PB2, PB3 | Control Direcție Motor Dreapta (GPIO) | | ||
| + | | **Divizor Tensiune** | Vout (Intersecție) | PC0 (A0) | Monitorizare nivel baterie (ADC) | | ||
| + | | **TCRT5000** | A0 | PC1 (A1) | Detecție analogică margine / podea (ADC) | | ||
| + | | **HC-SR04 (Față)** | Trig, Echo | PD2, PD3 | 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 ===== | ||
| - | <note tip> | + | Pentru interfațarea corectă a perifericelor s-au analizat următoarele semnale cheie: |
| - | Descrierea codului aplicaţiei (firmware): | + | |
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | **A. Diagrama de semnal pentru senzorii HC-SR04 (Time-of-Flight)** |
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | 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. |
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
| - | * (etapa 3) surse şi funcţii implementate | + | {{:pm:prj2026:vlad.radulescu2901:hc-sr04.png?800|}} |
| - | </note> | + | |
| + | **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. | ||
| + | |||
| + | {{:pm:prj2026:vlad.radulescu2901:l298n.png?800|}} | ||
| + | |||
| + | ====== Software Design ====== | ||
| + | |||
| + | *(Nota: Aceasta sectiune prezinta o arhitectura de nivel inalt, detaliile urmand sa fie rafinate in etapa finala de implementare).* | ||
| + | |||
| + | ===== 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 77: | Line 137: | ||
| <note> | <note> | ||
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual 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 arhitecturii, registrilor 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 curent, caderea 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> | ||