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/09 20:13]
tudor_vasile.stafi [Descriere generală]
pm:prj2026:florin.stancu:tudor_vasile.stafi [2026/05/24 03:51] (current)
tudor_vasile.stafi [Software Design]
Line 3: Line 3:
  
 <note tip> <note tip>
-Prezentarea pe scurt a proiectului ​vostru:+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.   * 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.   * scopul lui: Optimizarea unghiului de incidență a luminii pentru a simula eficientizarea panourilor solare reale.
Line 15: Line 15:
   * **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.   * **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.
  
-{{:​pm:​prj2026:​florin.stancu:​schema_bloc-stafi.png?​500|}} +{{:​pm:​prj2026:​florin.stancu:​schema_bloc-stafi.png?​600|}} 
- +}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 31: Line 30:
 Proiectul îndeplinește condiția de a utiliza minim 3 componente periferice externe (OLED, senzori TEMT6000, servomotoare). Proiectul îndeplinește condiția de a utiliza minim 3 componente periferice externe (OLED, senzori TEMT6000, servomotoare).
 </​note>​ </​note>​
 +**Schema Electrica:​** 
 +{{ :​pm:​prj2026:​florin.stancu:​schema-electrica.png?​500 |}}
 ===== Software Design ===== ===== Software Design =====
  
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +1. Mediu de dezvoltare: Aplicația a fost dezvoltată șcompilată folosind ​(VSCodeîmpreună cu extensia PlatformIO.
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării ş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 +
-</​note>​+
  
 +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 tip>
 +Arhiva proiectului:​
 +{{:​pm:​prj2026:​florin.stancu:​stafi_tudor.zip|}}
 +</​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 =====
  
-===== 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 Alin, 331CC -> **:​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>​+
  
-===== Jurnal =====+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ă.
  
-<note tip> +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).
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 +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 =====
  
 <​note>​ <​note>​
-Listă cu documentedatasheet-uriresurse Internet folositeeventual grupate pe **Resurse Software** şi **Resurse Hardware**.+<​html><​a href="​https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf">​Datasheet Atmega328P</​a></​html>​, 
 +<​html><​a href="​https://​www.emag.ro/​modul-senzor-lumina-ambientala-temt6000-compatibil-arduino-ai079-s89/​pd/​DYK568BBM/?​ref=history-shopping_486864304_38837_3">​Senzori</​a></​html>​<​html><​a href="​https://​www.emag.ro/​display-oled-0-96-inch-128x64-lcd-arduino-cu-interfata-iic-i2c-alb-dis408/​pd/​DZLGWM3BM/?​ref=history-shopping_486864304_253757_1">​Ecran</​a></​html>​<​html><​a href="​https://​www.emag.ro/​set-servomotor-sg90-unghi-de-lucru-180-grade-23-mm-9-g-3874783591829/​pd/​DXVZ3MYBM/?​ref=history-shopping_486864304_255937_1">​Servomotor</​a></​html>​
 </​note>​ </​note>​
- 
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2026/florin.stancu/tudor_vasile.stafi.1778346793.txt.gz · Last modified: 2026/05/09 20:13 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