This shows you the differences between two versions of the page.
|
pm:prj2025:apredescu:luca.spataru [2025/05/16 14:42] luca.spataru [Descriere generală] |
pm:prj2025:apredescu:luca.spataru [2025/11/17 19:03] (current) luca.spataru [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ===== Schema bloc ===== | ===== Schema bloc ===== | ||
| - | {{:pm:prj2025:apredescu:diagramapm.png|}} | + | {{:pm:prj2025:apredescu:diagramapm.png?720}} |
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| + | {{:pm:prj2025:apredescu:pmfinall.png?720}} | ||
| + | |||
| + | ==== Lista piese ==== | ||
| + | |||
| + | | Arduino UNO R3 | [[https://www.optimusdigital.ro/ro/placi-avr/4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?search_query=placa+arduino+uno&results=84|Optimus digital]] | | ||
| + | | Rotary Encoder Module | [[https://www.optimusdigital.ro/en/touch-sensors/7150-rotary-encoder-module.html?search_query=Rotary+Encoder+Module%09&results=9|Optimus digital]] | | ||
| + | | KCD10-101 Switch | [[https://www.optimusdigital.ro/en/buttons-and-switches/7377-kcd10-101-switch.html?search_query=KCD10-101+Switch%09&results=1|Optimus digital]] | | ||
| + | | 400p HQ Breadboard | [[https://www.optimusdigital.ro/en/breadboards/44-400p-hq-breadboard.html?search_query=400p+HQ+Breadboard%09&results=6|Optimus digital]] | | ||
| + | | 1602 LCD | [[https://www.optimusdigital.ro/en/lcds/2894-1602-lcd-with-i2c-interface-and-blue-backlight.html?search_query=1602+LCD+with+I2C+Interface+and+Blue+Backlight%09&results=2|Optimus digital]] | | ||
| + | | 2 x 18650 Battery Case | [[https://www.optimusdigital.ro/en/battery-holders/941-2x18650-battery-case.html?search_query=2+x+18650+Battery+Case%09&results=28|Optimus digital]] | | ||
| + | | 4x White Button with Round Cover | [[https://www.optimusdigital.ro/en/buttons-and-switches/1115-white-button-with-round-cover.html?search_query=White+Button+with+Round+Cover%09&results=1|Optimus digital]] | | ||
| + | | Buzzer | [[https://www.optimusdigital.ro/ro/audio-buzzere/12247-buzzer-pasiv-de-33v-sau-3v.html?search_query=0104210000081527&results=1|Optimus digital]] | | ||
| + | | TDA2822 | [[https://www.optimusdigital.ro/en/audio-amplifiers/12589-tda2822-2x1w-dc-5v-12v-stereo-audio-amplifier-module.html?search_query=TDA2822+2x1W+DC+5V+12V+Stereo+Audio+Amplifier+Module%09&results=1|Optimus digital]] | | ||
| + | | TEA5767 | [[https://ardushop.ro/en/modules/1490-tea5767-fm-stereo-radio-module-5v-for-arduino-radio-76-108mhz-i2c-communication-with-free-cable-antenna-6427854022004.html|ArduShop]] | | ||
| + | | Difuzor | [[https://tehnoelectric.ro/difuzoare/1302-12154-difuzor-40x18mm-3w-4.html|tehnoelectric]] | | ||
| + | |4xRezistenta 10k| | ||
| + | |5xLed| | ||
| + | |Rezistenta 220| | ||
| + | |Fire| | ||
| - | <note tip> | ||
| - | Aici puneţi tot ce ţine de hardware design: | ||
| - | * listă de piese | ||
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
| - | * diagrame de semnal | ||
| - | * rezultatele simulării | ||
| - | </note> | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| + | === Descrierea codului aplicatiei (firmware) === | ||
| + | Firmware-ul este dezvoltat pentru un radio digital construit in jurul platformei Arduino Uno R3. Proiectul permite utilizatorului sa asculte posturi FM, sa comute intre ele, sa caute automat frecvente, sa seteze un temporizator de oprire (sleep timer), sa activeze functia mute si sa salveze posturi preferate in memoria EEPROM. | ||
| - | <note tip> | + | Interfata cu utilizatorul se face prin intermediul unui ecran LCD 1602 (cu interfata I2C), un rotary encoder (cu switch), patru butoane, si un switch pentru comutarea modului de functionare al butoanelor. |
| - | 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> | + | |
| - | ===== Rezultate Obţinute ===== | + | === Mediu de dezvoltare === |
| + | * **Placa**: Arduino Uno R3 | ||
| + | * **Mediu de dezvoltare**: Arduino IDE | ||
| + | * **Limbaj de programare**: C++ | ||
| - | <note tip> | + | === Librarii si surse third-party === |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * **TEA5767N.h**: librarie folosita pentru controlul modulului radio FM TEA5767. |
| - | </note> | + | * **LiquidCrystal_I2C.h**: pentru afisarea informatiilor pe ecranul LCD 1602 cu interfata I2C. |
| + | * **EEPROM.h**: librarie nativa Arduino pentru citirea si scrierea datelor persistente (posturi salvate). | ||
| - | ===== Concluzii ===== | + | === Structura codului === |
| + | * **Initializare Sistem** | ||
| + | * Se initializeaza componentele: LCD, radio TEA5767, buzzer, butoane, encoder, LED de stare. | ||
| + | * Se incarca frecventa radio salvata anterior din EEPROM. | ||
| + | * Se afiseaza informatiile initiale pe LCD (frecventa, semnal, canal memorat). | ||
| + | * **Control Encoder** | ||
| + | * Encoderul incrementa sau decrementeaza frecventa curenta. | ||
| + | * Se detecteaza directia de rotatie (stanga/dreapta) si se actualizeaza frecventa. | ||
| + | * Dupa un interval (default 1 secunda), se face actualizarea efectiva a semnalului radio si LCD-ului. | ||
| + | * **Butonare - Functionalitati Multiple** | ||
| + | * Fiecare dintre cele 4 butoane are 2 functii, in functie de starea comutatorului fnSw (Function Switch): | ||
| + | * Salvare/Accesare posturi memorate (FM1–FM4): cu fnSw activat, fiecare buton incarca un canal memorat si actualizeaza frecventa. | ||
| + | * Functii speciale (cu fnSw dezactivat): | ||
| + | * Buton 1/2: cautare automata a postului anterior/urmator (search()). | ||
| + | * Buton 3: Mute/Unmute. | ||
| + | * Buton 4: Timer pentru oprire automata sau reactivare din standby. | ||
| + | * **Timer de Oprire Automata** | ||
| + | * La apasarea butonului 4 in mod normal, se poate activa un cronometru de oprire (sleepTimer). | ||
| + | * Utilizatorul poate selecta durata in minute (de la 1 la 10 minute). | ||
| + | * Dupa expirare, sistemul intra in standby: radio se opreste, LED-ul si afisajul sunt dezactivate. | ||
| + | * **EEPROM - Salvare si Incarcare Date ** | ||
| + | * Se salveaza frecventa curenta intr-o adresa EEPROM corespunzatoare (FM1–FM4). | ||
| + | * La repornirea sistemului, frecventa si butonul utilizat anterior sunt incarcate automat din EEPROM (LAST). | ||
| - | ===== Download ===== | + | ===== Rezultate Obţinute ===== |
| - | <note warning> | + | {{:pm:prj2025:apredescu:front.png?720}} |
| - | 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:prj2025:apredescu:side.png?720}} |
| - | </note> | + | |
| - | ===== Jurnal ===== | + | {{:pm:prj2025:apredescu:back.png?720}} |
| - | <note tip> | + | {{:pm:prj2025:apredescu:func.png?720}} |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
| - | </note> | + | |
| - | ===== Bibliografie/Resurse ===== | ||
| - | <note> | ||
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
| - | </note> | ||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||