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:09]
tudor_vasile.stafi [Software Design]
pm:prj2026:florin.stancu:tudor_vasile.stafi [2026/05/24 03:51] (current)
tudor_vasile.stafi [Software 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 tip> 
 +Arhiva proiectului:​ 
 +{{:​pm:​prj2026:​florin.stancu:​stafi_tudor.zip|}}
 </​note>​ </​note>​
-{{:​pm:​prj2026:​florin.stancu:​proiectpm.zip|}} 
 ===== 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 =====
  
-===== Download =====+Realizarea acestui „Tracker Solar” a fost o experiență practică buna, prima de acest gen.
  
-<note warning>​ +Principalele concluzii:
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?** sau **:pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Importanța calibrării: Am învățat că valorile pur matematice din cod trebuie mereu ajustate la realitatea fizică. 
-</​note>​+ 
 +Zgomotul senzorilorIntroducerea unei variabile de „toleranță” a fost esențială. Fără easistemul 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.1779574162.txt.gz · Last modified: 2026/05/24 01:09 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