Differences

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

Link to this comparison view

pm:prj2026:florin.stancu:tudor_vasile.stafi [2026/05/24 01:51]
tudor_vasile.stafi [Software Design]
pm:prj2026:florin.stancu:tudor_vasile.stafi [2026/05/24 16:47] (current)
tudor_vasile.stafi [Descriere generală]
Line 16: Line 16:
  
 {{:​pm:​prj2026:​florin.stancu:​schema_bloc-stafi.png?​600|}} {{:​pm:​prj2026:​florin.stancu:​schema_bloc-stafi.png?​600|}}
-}+
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 36: Line 36:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei ​(firmware): +1. Mediu de dezvoltare: Aplicația a fost dezvoltată și compilată folosind ​(VSCodeîmpreună cu extensia PlatformIO. 
-  * mediu de dezvoltare ​(if any) (e.gAVR StudioCodeVisionAVR+ 
-  * librării şsurse 3rd-party (e.gProcyon AVRlib) +2. Librarii 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi + 
-  * (etapa ​3) surse şfuncţii implementate+ - <​avr/​io.h>​ 
 + 
 + - <​util/​delay.h>​ 
 + 
 + - <​avr/​pgmspace.h>​Pentru stocarea fontului OLED-ului direct în memoria Flash, economisind astfel memoria RAM limitata 
 + 
 + 
 +3. Algoritmi şi structuri implementate:​ 
 + 
 + - Algoritmul ​de Tracking Solar: Logica principală se bazează pe citirea celor 4 senzori ​(TEMT6000și calcularea mediilor pe axe: axa verticală ​(media de sus vs media de jos) și axa orizontală (stânga vsdreapta)Sistemul compară aceste medii șidacă diferența depășește o toleranță ​ definită (pentru a preveni oscilațiile), ajustează poziția panoului. 
 + 
 + - Controlul Actuatoarelor (PWM): S-a implementat generarea de semnale Fast PWM folosind Timer0. Pozițiile servomotoarelor sunt controlate prin   ​modificarea directă a regiștrilor de comparare OCR0A șOCR0B. 
 + 
 + Implementarea protocolului TWI (Two-Wire Interface) direct pe regiștri pentru a trimite comenzi și date către display-ul OLED SSD1306. 
 + 
 +4Laboratoare folosite: 
 + 
 +Laboratorul 0: GPIO 
 +Controlul pinilor fizici ai plăcii. L-am folosit pentru a seta pinii ca intrări sau ieșiri 
 + 
 +Laboratorul ​3: Timere. PWM 
 +Am folosit generarea de semnale PWM pentru a controla cele două servomotoare 
 + 
 +Laboratorul 4: ADC 
 +Am folosit conversia analog-digitală (ADCpentru a citi semnalele de la cei 4 senzori de lumină 
 + 
 +Laboratorul 6: I2C 
 +Am folosit protocolul I2C ca să pot comunica cu display-ul folosind doar două fire (SDA șSCL), trimițând datele și valorile senzorilor pentru a fi afișate în timp real
 </​note>​ </​note>​
 <note tip> <note tip>
 Arhiva proiectului:​ Arhiva proiectului:​
-{{:​pm:​prj2026:​florin.stancu:​proiectpm.zip|}}+{{:​pm:​prj2026:​florin.stancu:​stafi_tudor.zip|}}
 </​note>​ </​note>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele ​obţinute ​în urma realizării proiectului vostru.+Proiectul a fost finalizat cu succes, ​obținând următoarele rezultate:​ 
 + 
 +Funcționarea algoritmului de tracking: Proiectul reușește să urmărească precis o sursă de lumină (ex. o lanternă) pe ambele axe (sus-jos și stânga-dreapta). Sistemul se oprește atunci când toți cei 4 senzori primesc o cantitate egală de lumină. 
 + 
 +Protecția mecanică: Datorită limitelor impuse din soft, brațele servomotoarelor nu depășesc cursa fizică permisă de asamblare, prevenind astfel blocarea sau arderea motoarelor. 
 + 
 +Interfața cu utilizatorul:​ Ecranul OLED afișează ​în timp real și fără întârzieri valorile brute citite de la senzori și unghiul actual al motoarelor, fiind un instrument excelent pentru debug și demonstrație. 
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Realizarea acestui „Tracker Solar” a fost o experiență practică buna, prima de acest gen.
 +
 +Principalele concluzii:
 +
 +Importanța calibrării:​ Am învățat că valorile pur matematice din cod trebuie mereu ajustate la realitatea fizică.
 +
 +Zgomotul senzorilor: Introducerea unei variabile de „toleranță” a fost esențială. Fără ea, sistemul ar fi oscilat continuu la cele mai mici schimbări de umbră.
 +
 +Avantajul lucrului la nivel de regiștri: Deși programarea directă a regiștrilor în mediul PlatformIO/​AVR-GCC este mai complexă decât utilizarea librăriilor predefinite Arduino, aceasta oferă un control mult mai fin și stabil asupra funcțiilor critice (precum generarea semnalului PWM).
  
 +Dezvoltări viitoare: Ca direcții de îmbunătățire pe viitor, sistemul ar putea beneficia de atașarea unui panou solar real care să încarce un acumulator în timp ce urmărește soarele.
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2026/florin.stancu/tudor_vasile.stafi.1779576694.txt.gz · Last modified: 2026/05/24 01:51 by tudor_vasile.stafi
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