Sistem Auto-Orientabil de Urmărire a Sursei de Lumină (Dual-Axis Solar Tracker)

Introducere

Prezentarea pe scurt a proiectului:

  • ce face: Proiectul reprezintă un sistem mecanic inteligent (Pan/Tilt) capabil să își orienteze automat o platformă către cea mai puternică sursă de lumină din încăpere.
  • scopul lui: Optimizarea unghiului de incidență a luminii pentru a simula eficientizarea panourilor solare reale.
  • care a fost ideea de la care am pornit: Panourile solare statice pierd o cantitate masivă de energie pe parcursul zilei din cauza unghiului sub-optim față de soare. O soluție dinamică, la scară mică, demonstrează conceptul de “active tracking”.
  • de ce cred că este util: Demonstrează concepte practice de sisteme de control în buclă închisă (feedback loop) și procesare de semnale analogice.

Descriere generală

Sistemul este compus din 3 mari etaje:

  • Input: 4 senzori de lumină ambientală (TEMT6000) dispuși în cruce (Sus, Jos, Stânga, Dreapta). Aceștia citesc intensitatea luminoasă și trimit semnale analogice către microcontroler.
  • Procesare: Placa ATmega328P citește valorile prin intermediul ADC-ului. Un algoritm compară media valorilor (ex: Sus vs Jos, Stânga vs Dreapta). Dacă diferența depășește un prag de toleranță (pentru a evita “tremuratul”), microcontrolerul ajustează unghiurile țintă.
  • Acționare și Afișare (Output): Două servomotoare SG90 sunt comandate prin semnale PWM pentru a orienta mecanismul Pan/Tilt. Simultam, datele despre unghiul curent (axa X și Y) și cantitatea de lumină maximă detectată sunt trimise prin protocolul I2C către un ecran OLED de 0.96” și prin UART către un PC pentru logare.

}

Hardware Design

Lista de piese:

  • Placă de dezvoltare ATmega328P-XMINI
  • 4 x Modul senzor de lumină ambientală (TEMT6000)
  • 2 x Micro-Servomotor SG90 (unghi de lucru 180 grade)
  • 1 x Display OLED 0.96 inch (Interfață I2C, rezoluție 128×64)
  • 1 x Mini ansamblu de plastic Pan/Tilt pentru 2 axe
  • 1 x Breadboard 400 puncte și set fire conexiune (dupont mamă-tată și tată-tată)

Proiectul îndeplinește condiția de a utiliza minim 3 componente periferice externe (OLED, senzori TEMT6000, servomotoare).

Schema Electrica:

Software Design

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

Arhiva proiectului: stafi_tudor.zip

Rezultate Obţinute

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.

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

pm/prj2026/florin.stancu/tudor_vasile.stafi.txt · Last modified: 2026/05/24 03: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