Cuprins:

Radio FM cu RDS (Radio Text), control BT și bază de încărcare: 5 pași
Radio FM cu RDS (Radio Text), control BT și bază de încărcare: 5 pași

Video: Radio FM cu RDS (Radio Text), control BT și bază de încărcare: 5 pași

Video: Radio FM cu RDS (Radio Text), control BT și bază de încărcare: 5 pași
Video: SILVIU PETCU: "Gyuri era flacăra umorului nostru" | VREAU SĂ ȘTIU Podcast EP. 9 2024, Iulie
Anonim
Radio FM cu RDS (Radio Text), control BT și bază de încărcare
Radio FM cu RDS (Radio Text), control BT și bază de încărcare
Radio FM cu RDS (Radio Text), control BT și bază de încărcare
Radio FM cu RDS (Radio Text), control BT și bază de încărcare

Bună ziua, Acesta este al doilea meu "Instructables". Deoarece îmi place să fac lucruri nu foarte utile, iată ultimul meu proiect:

Acesta este un radio FM cu Radio Text cu o bază de încărcare și care poate fi monitorizat prin Bluetooth și o aplicație Android

Prin urmare, vă voi prezenta partea Arduino, partea Radio Text și apoi partea inventatoare a aplicației MIT (Acesta este singurul mod în care sunt suficient de priceput să construiesc și Android APP)

Cu o tensiune de alimentare de 10; 8 volți cu alimentare CA și 9,6 cu baterie, puterea maximă este de 2x 1,5 / 1,25 wați RMS, care este suficient de largă

Puterea RMS (rădăcină medie pătrată) este puterea reală, nu ca celelalte numere mari care sunt vândute ca muzica watt sau puterea de vârf sau orice altceva)

Cred că 1,5 Watt RMS poate fi vândut ca 8 Watt în unele magazine !!!!!!

Mai întâi componentele necesare:

Consiliul principal:

1x Arduino Nano

1x modul radio FM SI4703 de la Sparkfun sau echivalent (alimentat de 5v și I2C de 3,3V cu un jack cu 3 poli care poate fi folosit ca antenă)

1x modul Bluetooth HC-06 (avertizând noua versiune de software 3.0 au seturi de comenzi total diferite (am pus câteva comentarii în cod).

1x schimbător de nivel cu 4 canale 3.3 5 V

1x convertor de curent continuu MC7805 5v

1x condensator 2200 µF 25V

2x 1N5404 diode de 3 Amp

2x tranzistoare 2N2222

1x rezistor de 1 Kohm

1x rezistor de 47 Ohm

2 rezistențe de 3,3 KOhm (pentru extragerea autobuzului I2C)

3x rezistențe de 330 Ohm (pentru led)

2x rezistențe 6,8 KOhm

1x rezistor de 3,9 KOhm

Panoul frontal

1x 20X4 LCD I2C autobuz

Rezistoare 10x 680 Ohm

1x LED roșu (nu mai aveam verde !!) pentru sursa de alimentare

1x LED galben pentru modul baterie

1x LED albastru pentru conexiunea BT

4x (ON) -OFF- (ON) comutatoare (ca pentru o fereastră electrică pentru mașină)

2 butoane

1x comutator ON / OFF

Alte componente pentru radio:

2x 100W 10CM 8 Ohm HP

1x antenă extensibilă de 1m (aproximativ 75 cm este lungimea bună pentru FM în Europa și SUA)

1 x mufă de telefon pe care am folosit-o pentru a face contactele pentru baza de încărcare

1x 1N5404 diodă de 3 Amp (pe contactul bateriei pentru a evita fumul în caz de mizerie cu solul sau contactul de 12V)

1x Amplificator de putere de 2X20 wați (orice amplificator stereo se va potrivi atât timp cât este 12V) pe baza TDA2020 cumpărat cu 4 euro

1 x cuplaj baterie 8XAA (pentru a avea minimum 9,6 V)

Unele placaje de 10 mm și 4 mm pentru cutie

Baza de încărcare:

1x 12V 3Amp Sursa de alimentare

1x voltmetru mic de 3 cifre / 3 fire

3 contacte (realizate cu mufa telefonului)

1x 1N5404 diodă de 3 Amperi (pe contactul de 12V)

2 comutatoare cu pârghie (pentru a porni alimentarea cu curent alternativ când radioul este pe baza de încărcare)

1x comutator ON / OFF (pentru a opri baza de încărcare, dacă este necesar)

Câteva placaje de 10 mm și 4 mm pentru bază

În total, inclusiv placaj, nu depășește 70 €

Pasul 1: Partea radio 4703

În primul rând, o modificare:

Modulul ar trebui să utilizeze cablul căștii ca antenă, în proiectul meu, nu este util, așa că va trebui mai întâi să facem o mică modificare pentru a ne conecta și a antenei externe

În acest modul, masa de 3 poli nu este conectată direct la masă, ci printr-o inductanță (pentru a opri frecvențele FM) și un condensator pentru a conecta frecvențele FM la intrarea antenei SI4703.

Deci, cel mai bun mod este să conectați direct antena la pinul de la sol al mufei și să lipiți două cabluri pentru ieșirea audio

Imagine
Imagine

Pentru a preveni zgomotele din sunet (în special din Bluetooth), am pus modulul FM într-o cutie mică din plastic ecranată cu bandă de cupru conectată la sol

Imagine
Imagine

Protocolul RDS / Radio Text:

Mai întâi, vreau să îi mulțumesc lui Nathan Seidle, deoarece am fost pe deplin inspirat de programul său „TEST_FM” din iunie 2011

Și, după cum am convenit, voi fi foarte fericit să-i plătesc o bere, dacă, într-una din aceste zile, el se pierde în micul meu sat din capătul adânc al Bretaniei !!

Am folosit o mulțime de programe pentru că nu am vrut să folosesc bibliotecile existente, care sunt puțin prea mari pentru spațiul de memorie Nano sărac și, de asemenea, pentru că este întotdeauna mai bine să aprofundezi posibilitățile unei componente, scufundându-te direct în registrele

Principala modificare pe care am făcut-o este pentru sondajul RDS

Am profitat de posibilitatea de a declanșa o interupt pe pinul GPI02 prin setarea bitului RDSIEN și a valorii GPIO2 la 01

Acest lucru va declanșa o interupție pe pinul 3 al nano-ului

Acest lucru împiedică interogarea registrului RDS, deoarece va declanșa programul Radio Text numai atunci când grupul de 4 caractere al textului radio este disponibil fără erori (modul non-detaliat)

Pentru a avea un text radio complet, trebuie să adunăm cel mult 16 blocuri de 4 caractere (înregistrează RDSC / RDSB din grupul 2A sau 2B). Am pus o mulțime de informații în program pentru a explica ce am făcut.

Iată o descriere a registrelor de date pentru textul radio (RDSSA / RDSC)

Imagine
Imagine

in registru RDSSB (bloc 2)

Valoarea 4 din A3 / 0 indică (grup de text)

B0 indică textul A (64 de caractere) sau B (32 de caractere) (în care nu am văzut niciodată textul B în uz ………..)

PT0 la PT4 este indicele grupului de 4 caractere (0 la 15)

PT5 ar trebui folosit ca indicator de text A / B (adică „acesta este un text nou”), dar nu este întotdeauna folosit în funcție de postul de radio, deci nu este utilizabil pentru programul de text Radio.

4 caractere ale textului radio sunt în RDSSC și RDSSD (blocurile 3 și 4)

Vă sfătuiesc să citiți documentul foarte interesant privind protocolul RDS în SI4703 => AN243 din laboratoarele Silicon

De asemenea, am resetat bitul SKMODE în registrul POWERCFG (vezi fișa tehnică SI4703) pentru a rămâne în intervalul de frecvență în timp ce căutam canale

Citirea datei va ajuta foarte mult să înțelegeți codul și toate gestionările registrelor

Pasul 2: baza de încărcare

Baza de încărcare
Baza de încărcare
Baza de încărcare
Baza de încărcare
Baza de încărcare
Baza de încărcare

Nu prea multe lucruri de adăugat

Pozele pot vorbi mai bine.

Tocmai am adăugat o diodă 1N5404 la contactul de 12 volți

1) pentru a evita probleme în cazul în care contactul bateriei atinge contactul de 12 volți când puneți radioul pe bază (dar nu s-a întâmplat niciodată)

2) pentru a scădea nivelul de tensiune la 10,8 volți (există și o diodă pe placa de bază) deoarece MC7805 poate deveni puțin fierbinte când mergeți de la 12V la 5 volți cu curent de 1 Amp (am înșurubat o bucată de fier ca radiator pe 7805)

Am adăugat un voltmetru mic de 3 x7 segmente pentru a indica încărcarea bateriei

Acest dispozitiv are 3 fire pentru a reduce consumul (mai mult de 1 Mega Ohm pe firul de măsurare), ceea ce permite menținerea radioului pe baza OPRIT alimentată mult timp fără a descărca bateria

Imagine
Imagine

2 comutatoare cu pârghie sunt utilizate pentru a opri alimentarea cu curent alternativ atunci când radioul este oprit de la bază (pentru a evita 12V la contacte)

Imagine
Imagine

Cutia este realizată cu placaj (înainte de a picta pe imagine) vă las să vă imaginați cum să faceți o cutie frumoasă, deoarece a mea nu este foarte sexy !!!!!

Am fost foarte uimit, dar baza de încărcare funcționează bine și nu am fumat niciodată în timp ce aterizam radioul pe ea ……..

Pasul 3: Cutia

Cutia
Cutia
Cutia
Cutia
Cutia
Cutia
Cutia
Cutia

Cred că oricui ar trebui să facă cum vrea el urmărindu-și capacitățile artistice !!!!!

Oricum voi explica în scurt timp cum aș putea construi ceva care arată teribil ca o cutie de instrumente

Fața și spatele sunt tăiate în placaj de 4 mm 15x45 cm

partea superioară și inferioară sunt placaj de 10 mm 15x45 cm

Laturile și cele 2 partiții interioare (2 2 locuri pentru HP și componentele din mijloc) sunt placaj de 10 mm 13x13 cm

Pe panoul frontal am făcut 2 găuri de 10 x 10 cm pentru HP și o gaură pătrată de 14 x 14 pentru a introduce sticla organică de 15 x 15 2 mm pe care am vopsit-o în negru (adăugând după ce am vopsit un autocolant transparent imprimat, dar nu este atât de lizibil din cauza culorii negre culoare in spate)

Am făcut 2 găuri pe partea de sus:

una pentru potențiometrul amplificatorului de putere (pentru a regla nivelul, dacă este necesar) și, de asemenea, ca putere termică

alta pentru antena

pe panoul din spate am făcut 2 găuri:

Unul pentru mufa USB (conectare directă la nano)

Un 16 mm pentru răcirea cu aer (orificiul de 14 mm al potențiometrului amplificatorului de putere la ieșirea superioară de răcire a aerului)

mânerul este realizat dintr-un tub de cupru de 12 mm vopsit în negru

Toate componentele imaginii de mai sus își găsesc loc în compartimentul central (mai târziu a trebuit să pun bateriile în compartimentul HP din stânga deoarece era prea aproape de modulul HC06 BT din compartimentul principal)

Asta e

Sigur că trebuie să fie ceva mai sexy !!!!!

Pasul 4: partea Arduino (schemă și cod)

Am încercat să pun cât mai multe informații în comentariile programului.

Mai multe informații

Procedura Decode_TXT este utilizată atât de procedura Bluetooth, cât și de procedura de comutare

unele cuvinte cheie sunt utilizate de ambele proceduri

v + => pentru a mări volumul

v- => a coborî

f + => pentru a crește frecvența unui pas de 100 Khz

f- => a scădea

su + => căutați

sd - => caută

prefu => crește numărul canalului preselectat

prefd => scădere

salut => trimis de aplicația Android în timpul conexiunii bluetooth, codul trimite înapoi starea radioului

pa = = trimis de APP când BT se deconectează

pow => trimis de radio către aplicație în modul de alimentare cu energie (pe baza de încărcare)

bat => când este în modul baterie

lb => trimis când nivelul bateriei este prea scăzut (aproximativ 8 volți)

Comunicarea Bluetooth este asigurată de o buclă de control:

De fiecare dată când radioul FM trimite o informație, se pornește un cronometru care așteaptă răspunsul „ok” de către aplicația Android

în cazul a 3 erori (temporizatorul a expirat), legătura BT este tăiată de radio. (aceasta taie și linkul de pe partea Android)

Pe de altă parte

Când aplicația trimite o comandă, așteaptă răspunsul de la radio pentru a trimite o altă comandă.

Procedura get_RT este lansată când este setat semnalizatorul RDS (după o interupt pe pinul 3)

aici este codul (link către GITHUB)

Schema:

Placa principală radio FM (de fapt SI4703 este separată într-o cutie ecranată):

Imagine
Imagine

Panoul frontal:

Imagine
Imagine

Baza de încărcare:

Imagine
Imagine

Linkurile către fișierele Fritzing:

Placa principală FR RADIO

Panoul frontal

Baza de încărcare

Pasul 5: aplicația Android

Aplicația Android
Aplicația Android
Aplicația Android
Aplicația Android

Realizat cu inventatorul APP

aici sunt linkurile către GitHub

Radio FM aia

APK Android

Aplicația folosește 2 temporizatoare de ceas:

1) pentru comunicarea bluetooth (100 ms)

2) pentru ledul bateriei intermitent atunci când sarcina este în jur de 8 v (1000 ms)

Pentru prima dată va trebui să împerecheați modulul HC06 cu smartphone-ul sau tableta.

Folosesc TinyDB pentru salvarea adresei BT a modulului HC06, prima conexiune butonul de adresă BT va fi activat și va trebui să alegeți HC06 din listă (la rândul meu, am redenumit modulul HC06 în FM_RADIO)

În aplicație nu am folosit întotdeauna procentul pentru dimensiunea elementului, deci ar putea exista atât de multe probleme în funcție de smartphone

Al meu este un Galaxy Note 3, deci un ecran destul de mare ……..

Așa că am petrecut un timp bun descoperind acest mic, dar foarte eficient SI4703.

Și mi-a făcut multă plăcere scriind acest instructable

Până la următorul meu proiect

La revedere!!!

Recomandat: