This shows you the differences between two versions of the page.
pm:prj2023:vstoica:maria_ana.draghici [2023/05/27 14:54] maria_ana.draghici [Software Design] |
pm:prj2023:vstoica:maria_ana.draghici [2023/05/28 15:12] (current) maria_ana.draghici [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Lampă Inteligentă ====== | + | ====== Lampă Inteligentă - Maria-Ana Drăghici====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 9: | Line 9: | ||
* jos = creativ, fericit - lumină galbenă | * jos = creativ, fericit - lumină galbenă | ||
* sus = optimist - lumină mov | * sus = optimist - lumină mov | ||
- | Lampa se va opri automat după o perioadă de 60 de secunde. Apăsând pe buton, utilizatorul va putea opri/porni lampa. | + | Lampa se va opri automat după o perioadă de 40 de secunde de la ultima schimbare a culorii luminii. Apăsând pe buton, utilizatorul va putea opri/porni lampa. |
De asemenea, utilizatorul va putea seta și intensitatea luminii cu ajutorul unui potențiometru. | De asemenea, utilizatorul va putea seta și intensitatea luminii cu ajutorul unui potențiometru. | ||
Line 28: | Line 28: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | Mediul de dezvoltare pentru acest proiect a fost Arduino IDE. | + | Mediul de dezvoltare pentru acest proiect a fost Arduino IDE. |
Biblioteci utilizate: | Biblioteci utilizate: | ||
- | * SparkFun_APDS9960 - pentru sezorul de gesturi. | + | * SparkFun_APDS9960 - pentru senzorul de gesturi. |
Implementare: | Implementare: | ||
- | * Întreruperile, citirea valoarii potentiometrului și timerul au fost implementate cu ajutorul regiștrilor. | + | * Întreruperile, citirea valorii potentiometrului și timerul au fost implementate cu ajutorul regiștrilor. |
- | * Variabila counter este folosită pentru a ști când lampa este pornită și când este oprită. Această variabilă contorizează numărul de apăsări de buton. Counter inițial este 0, deci: când counter este număr par, lampa va fi oprită (toate LED-urile sunt oprite), iar când counter este număr impar, înseamnă că lampa este pronită. | + | * Variabila counter este folosită pentru a ști când lampa este pornită și când este oprită. Această variabilă contorizează numărul de apăsări de buton. Counter este inițial 0, deci: când counter este număr par, lampa va fi oprită (toate LED-urile sunt oprite), iar când counter este număr impar, înseamnă că lampa este pronită. |
- | * După verificarea de pornire/oprire a lămpii, se va mai verifica si variabila timer, care ține evidența secundelor trecute de la setarea luminii. Dacă culoarea luminii lămpii a fost schimbată acum mai mult de 40 de secunde, lampa se va stinge. | + | * După verificarea de pornire/oprire a lămpii, se va mai verifica si variabila timer, care ține evidența secundelor trecute de la ultima setare a culorii. Dacă au trecut 40 de secunde de la ultima schimbare a culorii luminii lămpii, aceasta se va stinge. |
+ | * Pentru o funcțonare corectă există următoarele cazuri: | ||
+ | - Dacă lampa se oprește din apăsarea butonului, atunci counter va fi incrementat și seconds va fi setat pe 0 | ||
+ | - Dacă lampa se stinge automat (au trecut 40 de secunde), atunci counter va fi setat pe valoare pară (pentru a ști ca lampa este închisă). | ||
+ | - Când lampa este pornită, atunci când este înregistrat un gest (deci se schimbă culoarea luminii), seconds va fi resetat la 0. | ||
<code> | <code> | ||
#define BUTTON PD4 | #define BUTTON PD4 | ||
Line 135: | Line 140: | ||
// ...... | // ...... | ||
} | } | ||
+ | </code> | ||
* Pentru senzorul de gesturi a fost folosită biblioteca SparkFun_APDS9960. Acest senzor folosește I2C-ul. Pinul de întrerupere este conectat la pinul digital 2, deci se va folosi întreruperea externă INT0. | * Pentru senzorul de gesturi a fost folosită biblioteca SparkFun_APDS9960. Acest senzor folosește I2C-ul. Pinul de întrerupere este conectat la pinul digital 2, deci se va folosi întreruperea externă INT0. | ||
Line 234: | Line 240: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | <html> |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | <iframe width="760" height="515" src="https://www.youtube.com/embed/Hz6R-aXUxV0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
- | </note> | + | </html> |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Prin intermediul acestei lămpi inteligente, utilizatorul poate beneficia de un control mai mare asupra mediului înconjurător și poate experimenta beneficiile unei iluminări personalizate în funcție de starea sa. Căutarea informatiilor despre cum trebuie conectate componentele și crearea circuitului au fost interesante. De asemenea, a fost foarte util datasheet-ul unde am găsit regiștrii ce trebuie modificați pentru fiecare componentă. Macheta pentru proiect a avut o dificultate nu așa de ridicată ca și software-ul și hardware-ul. Mi-a plăcut să lucrez la acest proiect întrucât m-a interesat foarte mult tema aleasă. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | ||
- | 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**. | + | {{:pm:prj2023:vstoica:draghici_maria_proiect-pm.zip|}} |
- | </note> | + | |
- | ===== Jurnal ===== | + | ===== Bibliografie/Resurse ===== |
- | <note tip> | + | Surse Hardware: |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab0-2022 |
- | </note> | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022 |
- | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023 | |
- | ===== Bibliografie/Resurse ===== | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023 |
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab4-2022 | ||
+ | * https://how2electronics.com/interfacing-apds9960-gesture-rgb-color-sensor-with-arduino/ | ||
- | <note> | + | Surse Software: |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab0-2022 |
- | </note> | + | * https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022 |
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab4-2022 | ||
+ | * https://how2electronics.com/interfacing-apds9960-gesture-rgb-color-sensor-with-arduino/ | ||
+ | * https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf | ||
<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> | ||