This is an old revision of the document!
Articulație panou solar "Sunflower"
Introducere
Tranziția lumii către energie verde este un subiect de mare actualitate în ultima vreme, pentru a susține eforturile de a încetini și opri încălzirea globală. Modul în care doresc să contribui la acest efort este crearea unei metode de a îmbunătăți eficiența panourilor solare.
Fabricarea panourilor solare este un proces deosebit de scump, din cauza complexității mari și a nivelului ridicat de puritate al materialelor necesare obținerii unui panou solar de calitate.
Din cauza costurilor mari ale unui panou solar (aproape 10.000 lei pentru a alimenta o gospodărie), un bun complementar care poate maximiza eficiența investiției este binevenit. Articulația propusă în cadrul acestui proiect va orienta automat panoul solar către soare, pentru a optimiza unghiul sub care razele soarelui cad pe acesta și pentru a maximiza producția de energie electrică. Modul de funcționare este inspirat de planta floarea soarelui și comportamentul articulației va fi aproape identic cu aceasta.
Pe lângă beneficiile ecologice ale unui asemenea sistem, articulația poate aduce și beneficii financiare cumpărătorului: creșterea producției de energie electrică a panoului fotovoltaic reduce semnificativ și costul facturilor la energie electrică. Astfel, dacă articulația are un cost de producție suficient de mic, ea poate deveni un bun indispensabil sistemelor fotoelectrice.
Descriere generală
Mai jos prezint schema bloc a sistemului propus pentru articulația solară:
Nucleul sistemului este un microcontroller Arduino Uno, care se va ocupa de orientarea panoului solar către soare. Voi explica mai jos cum realizează această operație.
În partea stângă, în chenare roșii, se află cele două elemente care oferă microcontroller-ului date despre locația panoului solar: locația (coordonatele geografice) și direcția punctelor cardinale. Folosindu-se de aceste două informații, precum și de ora curentă (stocată intern) microcontroller-ul poate calcula exact direcția către care trebuie orientat panoul solar.
Orientarea panoului solar către direcția calculată se face prin intermediul a două servomoatoare comandate separat, unul pentru a controla azimutul (planul paralel cu orizontul) și celălalt pentru a controla altitudinea (distanța deasupra orizontului).
În cadrul acestui prototip, panoul solar va fi conectat la convertorul analog-digital al microcontller-ului, pentru a putea calcula și afișa puterea generată de panou. Firește, trebuie introdus și un circuit de protecție, în cazul în care puterea generată de panou este suficient de mare pentru a deteriora pinii microcontroller-ului.
Sistemul va avea atașat și un display LCD, pe care vor fi afișate diverse date despre starea sistemului, precum:
Hardware Design
Listă de piese necesare:
1x Microcontroller Arduino Uno
1x Modul Accelerometru 9 axe MPU9250
1x Modul Accelerometru 6 axe MPU6500
1x Modul GPS NEO-6MV2
1x Display LCD
1x Motor pas cu pas 28BYJ-48
Schema electrică
După cum se poate observa, am conectat perifericele astfel:
LCD-ul și accelerometrul MPU-6500 comunică prin I2C, astfel că i-am conectat la pinii SCL și SDA corespunzători de pe Arduino (A4, respectiv A5)
Modulul GPS comunică prin serială (UART), astfel că l-am conectat la pinii TX și RX de pe plăcuță D3, respectiv D4
Motorul pas cu pas are 4 pini IN1-4 pe care i-am conectat la pinii D8-11 de pe Arduino
Toate componentele sunt alimentate de la pinii de 5V și GND ai plăcuței Arduino
“Panoul solar” este conectat la unul dintre pinii analogici ai plăcuței (A0) pentru a putea folosi Convertorul Analog-Digital
Aspect fizic
În poza de mai jos se poate observa cum arată proiectul și fiecare componentă:
Software Design
Pentru dezvoltarea aplicației am folosit modulul PlatformIO integrat în aplicația Visual Studio Code.
Librăriile externe folosite sunt următoarele:
-
-
-
TinyGpsPlus - pentru parsarea datelor de la modulul GPS, in format NMEA
Unistep2 - pentru controlul
asincron al motorului pas cu pas
Time - pentru un ceas facil pe Arduino
Modul de funcționare
Înainte de a prezenta codul, este necesar să explic cum funcționează proiectul.
La pornire, acesta trece printr-o fază de inițializare în care modulul GPS caută semnal de la satelit. Conform datasheet, modulul GPS are nevoie de aproximativ 27s pentru a se conecta la sateliți, presupunând vedere clară a cerului.
Căutarea semnalului durează maxim 90s, după care microcontroller-ul trece în faza următoare, știind locația și ora UTC.
În cazul în care GPS-ul nu se poate conecta la satelit în cele 90s, este afișat un mesaj de eroare și se va folosi locația default a holului EC din Facultatea de Automatică și Calculatoare.
După ce se termină inițializarea, proiectul începe treaba efectivă de a stabiliza direcția panoului solar montat deasupra servomotorului. Pentru a face asta, se folosește de datele primite de la accelerometru, mai precis viteza unghiulară în jurul axei Oz (rotația stânga-dreapta a panoului). Având în vedere relația matematică dintre viteză și distanță, pot calcula unghiul cu care trebuie rotit panoul prin integrarea pulsației față de timp. La final, microcontroller-ul va comanda motorul pentru a roti panoul.
În timp ce microcontroller-ul efectuează aceste operații, pe LCD vor fi afișate date despre tensiunea generată de panoul solar și ora locală.
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, 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 Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Bibliografie/Resurse