This shows you the differences between two versions of the page.
|
pm:prj2026:florin.stancu:tudor_vasile.stafi [2026/05/24 03:29] 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> | ||
| - | Aplicația a fost dezvoltată și compilată folosind (VSCode) împreună cu extensia PlatformIO. | + | 1. Mediu de dezvoltare: Aplicația a fost dezvoltată și compilată folosind (VSCode) împreună cu extensia PlatformIO. |
| + | |||
| + | 2. Librarii | ||
| + | |||
| + | - <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 vs. dreapta). Sistemul compară aceste medii și, dacă 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 și OCR0B. | ||
| + | |||
| + | - Implementarea protocolului TWI (Two-Wire Interface) direct pe regiștri pentru a trimite comenzi și date către display-ul OLED SSD1306. | ||
| + | |||
| + | 4. Laboratoare 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ă (ADC) pentru 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 și 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 ===== | ||