This shows you the differences between two versions of the page.
pm:prj2023:adarmaz:rama-foto [2023/05/16 16:58] raluca.popescu1403 [Hardware Design] |
pm:prj2023:adarmaz:rama-foto [2023/05/29 22:45] (current) raluca.popescu1403 [Download] |
||
---|---|---|---|
Line 14: | Line 14: | ||
Schema bloc a modulelor hardwere folosite: | Schema bloc a modulelor hardwere folosite: | ||
- | {{:pm:prj2023:adarmaz:pmRalucaPopescu.png?700|}} | + | {{:pm:prj2023:adarmaz:prpm.jpg?700|}} |
Line 54: | Line 54: | ||
|SDA|A4| | |SDA|A4| | ||
- | ^ Configuratie SDCard^ Pin^ | + | ^ Configuratie SDCard^ Arduino Pin^ |
|CS |4 | | |CS |4 | | ||
|GND |13| | |GND |13| | ||
Line 61: | Line 61: | ||
|VCC|5V| | |VCC|5V| | ||
|GND|GND| | |GND|GND| | ||
+ | |||
+ | Butoanele sunt legate la pinii | ||
+ | *Buton 1 - Pin 3 | ||
+ | *Buton 2 - Pin 5 | ||
+ | *Buton 3 - Pin 6 | ||
+ | *Buton 4 - Pin 7 | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | <note tip> | + | Partea Software a acestui proiect a fost dezvoltată în Arduino IDE. O parte consistentă a implemtării software a cuprins utilizarea corectă a bibliotecilor și funcțiilor specifice fiecărei componente. |
- | 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 | + | |
- | </note> | + | |
+ | Astfel bibliotecile folosite sunt: | ||
+ | *SD.h ( pentru lucrul cu un SD-card) | ||
+ | *SPI.h | ||
+ | *Adafruit_GFX.h | ||
+ | *Adafruit_ST7735.h ( impreună cu cele 2 de mai sus, au fost utilizare în interacționarea cu ecranul) | ||
+ | *Wire.h | ||
+ | *AHTxx.h ( acesta a fost preluată dintr-o resursa Github [1] și, impreună cu biblioteca anterioară, a fost folosită pentru interacționarea cu senzorul de temperatură și umiditate) | ||
+ | |||
+ | Încărcarea imaginilor de pe SD card pe ecran se realizează folosind o funție specială, bmpDraw [2]. Funcția primește numele fisirului imagine care trebuie converit, cât și un atribut de tip Integer, filtru, ce are ca scop identificarea filtrului ce trebuie folosit în cadrul imaginii curente. Daca nici un filtru nu este selectat, imaginea va fi afișată cum apare pe SD card. Funcția efectuază o verificare a imaginii în prealabil operațiunii de încărcare, verificând formatul, dimensiunile și Bit depth. Ulterior aceasta efectuază operații de convertire a pixelilor într-un formt acceptat de ecranul LCD și afișează fiecare pixel pe ecran. Încarăcarea unui imaginiri durează aproximativ o secundă în funție de complexitatea acesteia. | ||
+ | |||
+ | La un moment dat, funcția extrage pixelii imaginii curente în formatul RGB, pe 3 canale de culoare. În acest punct am implementat filtrele de culoare, condiționate de atributul filtru. Acestea sunt implementate prin interactiunea cu canalele de culoare. | ||
+ | |||
+ | În funcția loop se fac verificările pentru stările fiecărui buton. O instrucțiune if este cea care imparte în 2 ramuri programul, o ramură pentru citirea și afisarea temperaturii și o ramură pentru derularea imaginilor. În ambele ramuri se face verficarea butonului 1 ( acest lucru fiind insoțit și de partea de LED explicată la Interfața Utilizator). Filtrere pot fi accesate doar în cadrul derulării de imagine, prin urmarea verificarea butoanelor de filtre se face doar pe ramura corespunzătoare derulării de imagini. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Partea de Hardwere a programului a fost obtinuta dupa ce am schimbat mai multe piese. In special ecranul a trebui sa fie schimbat deoarece primul ecran cu care am lucrat a nu avea un pin de CS, acesta fiind incorporat prin pin-ul de GND. Astfel am utilizat in final un ecranul ST7735, cu care am realizat montajul in mai putin de o ora ( dupa ce ma straduisem mai mult de 2 saptamani cu ecranul initial). |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | La partea de Softwere partea cea mai grea a fost implementarea comutatiei dintre slideshow-ul de imagini si afisarea temperaturii. Obiectivul a fost ca slideshow-ul sa poata sa fie intrerupt oricand pentru a afisa temperatura, iar apoi prin reapasarea aceluiasi buton sa pot comuta inapoi in slideshow de imagini. Acest lucru s-a implementat cu o rata de succes din 9/10 incercari. (in sensul ca uneori mai apar intarzieri sau nu se mai comuta inapoi in slideshow de imagini si aplicatia trebuie repornita. |
- | ===== Download ===== | ||
- | <note warning> | + | ===== Concluzii ===== |
- | 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ă ;-). | + | Consider ca acest proiect folosește la o capacitate semnificativă resurse plăcuței Arduino UNO, dovedind cât de multe se pot face cu aceasta. Pe tematica acesta se pot, însă, implementa o multitudide de alte imbunătățiri care să ducă proiectul la un cu totul alt nivel. O plăcuță de dezvoltare care să aibă posibilitatea conectării la o rețea Wifi ar putea deschide noi orizonturi pentru un rama foto digitală, precum încărcarea pozelor de pe Cloud sau schimbarea în timp real a oridinii slideshow-ului. |
- | 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**. | + | Cu toate acestea, scopul meu în acest proiect a fost dezvoltarea atât hardware cât și software a unei aplicații, cât și întelegerea din punct de verede practic al conceptelor legate de Arduino UNO. |
- | </note> | + | |
+ | ===== Download ===== | ||
+ | {{:pm:prj2023:adarmaz:pm_soft.rar|}} | ||
+ | Link youtube: | ||
+ | [[https://www.youtube.com/watch?v=P_eFfc2KWsg]] | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 94: | Line 108: | ||
*10 Mai - Verificare individuala a pieselor | *10 Mai - Verificare individuala a pieselor | ||
*16 Mai - Realizare montaj si soft initial | *16 Mai - Realizare montaj si soft initial | ||
+ | *20 Mai - Realizare soft intermediar | ||
+ | *22 Mai - Realizare soft final | ||
+ | *23 Mai - Prezentare in cadrul Laboratorului | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | [1] Available: https://github.com/enjoyneering/AHTxx. |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | [2] Available: https://www.electronics-lab.com/project/arduino-diy-photo-frame/. |
+ | |||
+ | [3] Available: https://www.youtube.com/watch?v=C8Nm3d-Xe6E. | ||
<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> | ||