Proiectul presupune crearea unui dispozitiv portabil de transmisie FM care primeste input audio prin mufa jack (de ex de la telefon/tableta) si transmite semnalul audio pe o frecventa radio aleasa de utilizator. Frecventa curenta va fi afisata pe un ecran LCD, iar alegerea sa se va face cu ajutorul unor potentiometre.
La porinirea dispozitivului, pe ecran se va afisa un mesaj de WELCOME, timp in care se realizeaza initializarea modulului FM pe frecventa default (90 MHz). Dupa aproximativ 5 secunde, mesajul anterior dispare, iar pe LCD utilizatorul va putea vedea frecventa curenta. Pentru modificarea acesteia se vor folosi cele doua potentiometre de 50k, unul pentru partea intreaga (cu valori cuprinse intre 87 si 108 MHz) si celalat pentru partea zecimala (intre 0 si 10). Daca dispozitivul primeste input audio, acesta va putea fi auzit pe un aparat de radio extern (cum esre cel de la masina) aflat in imediata apropiere, pe frecventa setata (si afisata pe ecran). Pentru a mari raza de broadcast am lipit modulului FM si o mica antena. Cel de-al treilea potentiometru are rolul de a fixa luminozitatea ecranului LCD, functionalitate foarte utila daca se conduce pe timp de noapte.
Denumire piesă |
---|
Arduino UNO |
Breadboard |
Modul FM V 2.0 |
Ecran Nokia 5110 85×48 |
Potentiometre |
Rezistente |
Fire mama-tata, tata-tata |
In functia de setup se seteaza pinii A0 si A1 (la care sunt conectati cele doua potentiometre) pe modul INPUT si se porneste lcd-ul. Se afiseaza apoi pe acesta un mesaj de Welcome care va disparea dupa 5 secunde, timp in care se realizeaza si initializarea modulului FM pe frecventa default (90 MHz), respectiv Europa. In functia loop se citesc folosind analogRead valorile celor doua potentiometre si se realizeaza conversia acestora in limitele frecventei folosind functiile map si constrain. Daca valorile nou citite difera de vechile valori curente, se calculeaza noua frecventa, care se trimite ca parametru functiei fmtx_set_freq, urmand sa se faca astfel update la nivelul modulului FM. De asemenea, noile valori vor fi afisate si pe ecranul LCD, conform functiei auxiliare lcd_freq.
Desi proiectul in sine nu are un grad asa de mare de complexitate, consider ca a fost foarte util pentru a aprofunda si a aplica practic notiunile invatate de-a lungul acestui semestru la PM. Astfel, am avut ocazia sa folosesc comunicatia cu interfetele SPI (pentru ecranul LCD Nokia 5510), respectiv I2C (pentru modulul FM). De asemenea, am invatat cum se foloseste o statie de lipit si mi-am reconfirmat cat este de greu sa faci debugging la nivel de hardware, spre deosebire de software. Varianta finala a proiectului reflecta ceea ce mi-am propus sa realizez inca de la inceput si are de asemenea aplicabilitate practica, putand fi adaugat cu succes in vehiculele care nu dispun de functii de redare a semnalului audio extern, si nu numai. Din acest motiv, am ales sa lucrez si la partea estetica a proiectului, realizand astfel o experienta de utilizare cat mai realista a sistemului creat.