Radio Alarm

Introducere

NUME: Matache David-Nicolae

GRUPA: 331CD

Proiectul va fi compus dintr-un radio dotat cu o antena, doua butoane de schimbat frecventa, un potentiometru pentru schimbarea volumului, un ecran LCD pentru afisarea frecventei/orei, doua butoane de setat alarma si schimbat timpul alarmei, un difuzor si un buton de on/off.

Descriere generală

Hardware Design

Acestea sunt piesele pe care va trebui să le utilizez:

  • 1 x Arduino Uno

Arduino Uno este un microcontroler, rolul acestuia este de a primi datele senzorilor ( transmise prin impulsuri electrice ), procesarea acestor date si controlul sistemului electronic.

Sunt utilizatii urmatorii pini:

GND - impamantarea

5V - Alimentarea placutei

Pin-urile de semnal analog - Pentru a putea procesa semnalul ecranului LCD

Pin-urile PWM ( Digital Pulse Width Modulation ) - Utilizate pentru controlul pulsului electric astfel incat in urma variatiei de semnal, sa se poata modifica frecventa.

  • 1 X Modul display OLED

Modulul de display OLED I2C are rolul de a afisa frecventa statiei radio, de a actiona ca si ceas si alarma ( in cazul acesta specific ) si de a vizualiza grafic alti parametri si setari.

GND - impamantarea

VCC ( voltage at the collector ) - alimentarea

SDA ( Serial Data Line ) - Rolul SDA este de a creea o linie de date pentru comunicatia prin protocolul I2C ( Inter-Integrated Circuit ).

SLC ( Serial Clock Line ) - Linia de ceas pentru comunicatia I2C, este folosit pentru a sincroniza transferul de date intre dispozitive. Ceasul este control de dispozitivul master al busului.

SDA si SLC sunt utilizate pentru a seta frecventele, volumulul si alte setari ale modului prin intermediul microcontrolerului si al amplificatorului audio cu potentiometru ( microcontrolerul trimite comenzi pe linia SDA, SDC sgestoneaza sincronizarea ceasului, amplificatorul cu potentiometru controleaza volumul ( in urma traducerii ) al semnalului radio.

  • 1 x Breadboard
  • 4 x Butoane

2 Butoane sunt folosite pentru a controla frecventa iar celelate 2 sunt folosite pentru a controla alarma

  • 2 x Boxa 40mm 3W

Boxele au rolul de a transforma semnalul transmis prin amplificatorul radio din unde audio in semnal sonor. Acestea au necesara doar alimentarea.

  • 1 x Modul radio TEA5767

Rolul functional al modului radio este de a capta undele radio si a le transmite amplificatorului audio astfel incat sa poata fi traduse in semnal audio de catre boxe.

Pini folositi sunt:

Alimentare - pentru alimentarea modului

GND - impamantarea

LOUT/ROUT - Prin intermediul unui cablu audio transmite date audio catre amplificator

Antena - Capteaza unde radio

SDA ( Serial Data Line ) - Rolul SDA este de a creea o linie de date pentru comunicatia prin protocolul I2C ( Inter-Integrated Circuit ).

SLC ( Serial Clock Line ) - Linia de ceas pentru comunicatia I2C, este folosit pentru a sincroniza transferul de date intre dispozitive. Ceasul este control de dispozitivul master al busului.

SDA si SLC sunt utilizate pentru a seta frecventele, volumulul si alte setari ale modului prin intermediul microcontrolerului si al amplificatorului audio cu potentiometru ( microcontrolerul trimite comenzi pe linia SDA, SDC sgestoneaza sincronizarea ceasului, amplificatorul cu potentiometru controleaza volumul ( in urma traducerii ) al semnalului radio.

  • 1 x Led 5 mm

Led-ul este utilizat ca si forma de control si audit, prin led-ul acesta putem verifica daca sistemul este functional in parametrii optimi ( i.e exista alimentare ).

  • 1 x Baterie de 9V
  • 1 x Antena radio
  • 1 x Amplificator audio TDA7297, 2x15W, 12V

Rolul amplificatorului audio cu potentiometru este de a mari puterea unui semnal audio, facandu-l suficient de puternic pentru a fi redat prin difuzoare.

Sunt utilizati urmatorii pini:

Alimentare si impamantare - pentru amplificatorul in sine

LOUT/ROUT - Alimentarea pentru boxe

Modulul Aux_In (In1+/In2+) - Prin cablul jack se transmite semnalul de la modulul radio la amplificatorul audio, acest semnal este amplificat si transformat prin boxe in semnal sonor.

  • 1 x Switch SPST

Intrerupatorul are rolul de a opri alimentarea cu electricitate a sistemului.

Schema electrica:

Radio-ul cu alarma in functiune:

Software Design

Motivatia alegerii bibliotecilor folosite in cadrul proiectului

Pentru acest proiect, au fost utilizate mai multe biblioteci pentru a facilita comunicarea si interactiunea cu diferite componente hardware. Acestea includ:

1. Adafruit_GFX si Adafruit_SSD1306: Aceste biblioteci sunt utilizate pentru a controla afisajul OLED. Biblioteca Adafruit_GFX ofera functii grafice de baza, cum ar fi desenarea de forme si text, in timp ce Adafruit_SSD1306 permite controlul specific al afisajului OLED SSD1306. Am ales aceste biblioteci datorita compatibilitatii lor excelente si a documentatiei detaliate, care faciliteaza implementarea rapida si eficienta a functionalitatilor de afisare.

2. Wire: Biblioteca Wire este utilizata pentru comunicarea I2C. Este necesara pentru interactiunea cu modulul TEA5767 (radio FM) si afisajul OLED. Aceasta simplifica foarte mult procesul de initializare si comunicare cu dispozitivele I2C.

3. Tone: Aceasta biblioteca este folosita pentru a controla un buzzer piezo. Permite generarea de tonuri audio, care sunt utilizate pentru notificari sonore in proiect. Am ales aceasta biblioteca datorita usurintei sale de utilizare si a flexibilitatii in generarea diferitelor frecvente sonore.

Evidentierea elementului de noutate al proiectului

Elementul de noutate al acestui proiect consta in integrarea unui sistem de alarma cu functionalitati de radio FM si afisaj OLED, toate controlate printr-un set simplu de butoane. Proiectul combina mai multe functionalitati independente intr-un singur dispozitiv compact:

- Controlul frecventei radio FM. - Setarea si afisarea unui cronometru care declanseaza o alarma sonora si vizuala la expirare. - Utilizarea unui afisaj OLED pentru a furniza feedback vizual utilizatorului.

Justificarea utilizarii functionalitatilor din laborator in cadrul proiectului

Laboratorul 0: GPIO - Justificare: Proiectul utilizeaza pinii GPIO pentru a citi starea butoanelor de control (crestere/scadere frecventa si setare cronometru).

Laboratorul 1: UART - Justificare: Comunicarea seriala UART este utilizata pentru a debuga si a monitoriza functionalitatea proiectului prin intermediul Serial Monitor.

Laboratorul 2: Intreruperi - Justificare: Desi proiectul nu utilizeaza intreruperi hardware, utilizarea delay-urilor mici (debounce) pentru butoane poate fi vazuta ca o forma simpla de gestionare a evenimentelor asemanatoare intreruperilor.

Laboratorul 3: Timere. PWM - Justificare: Proiectul utilizeaza un cronometru pentru a numara secundele si a declansa alarma. PWM este utilizat pentru a genera tonuri cu buzzer-ul.

Laboratorul 6: I2C - Justificare: Biblioteca Wire pentru I2C este esentiala pentru comunicarea cu modulul TEA5767 si afisajul OLED.

Explicarea scheletului proiectului, interactiunea dintre functionalitati si modul de validare

Proiectul este structurat in functii separate pentru initializare si pentru bucla principala de executie: - Setup: Initializeaza comunicatiile I2C, afisajul OLED, si buzzer-ul, si seteaza pinii pentru butoane. - Loop: Verifica starea butoanelor, actualizeaza cronometrul si declanseaza alarma la expirarea timpului. Afisajul OLED este actualizat in mod regulat pentru a reflecta modificarile.

Interactiunea dintre functionalitati este gestionata prin variabile globale si functii dedicate pentru fiecare componenta. Validarea functionalitatilor s-a realizat prin teste iterative, monitorizarea seriala si ajustari pentru debounce si controlul timpurilor.

Explicarea optimizarilor realizate

Optimizarile au inclus: - Debounce pentru butoane: Utilizarea unui delay scurt pentru a preveni declansarea multipla a evenimentelor de buton. - Reducerea sarcinilor inutile: Actualizarea afisajului OLED si a frecventei radio doar atunci cand este necesar. - Eficientizarea codului: Divizarea functionalitatilor in functii separate pentru a creste lizibilitatea si usurinta de intretinere a codului.

Aceste optimizari au fost implementate pentru a asigura un raspuns rapid al dispozitivului si pentru a minimiza consumul de resurse.

Rezultate Obţinute

Am reusit sa implementez un radio ce poate capta unde din frecventa 76-108MHZ si il reda printr-un amplificator.

De altfel folosind acelasi display OLED pentru Radio pot sa afisez o alarma ce poate fi setata de 2 butoane separate. O data ce timer-ul ajunge la 0 un alt speaker va suna pentru 3 secunde pentru a alerta de trecerea timpului.

Concluzii

Download

Aici e codul Arduino pentru radio-ul cu alarma

radioalarmpm.txt

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/cpatru/david_matache.txt · Last modified: 2024/05/26 12:17 by david.matache
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