Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Bonjour, Ovo je moj drugi "Instructables". Kako volim raditi ne baš korisne stvari, evo mog posljednjeg projekta:
Ovo je FM radio s radio tekstom s bazom za punjenje i koji se može pratiti putem Bluetootha i Android aplikacije
Stoga ću vam predstaviti dio Arduino, dio Radio Text, a zatim dio izumitelja aplikacije MIT (ovo je jedini način na koji sam dovoljno vješt za izradu i Android aplikaciju)
Sa naponom napajanja od 10; 8 volti sa izmjeničnim napajanjem i 9,6 sa baterijom, maksimalna snaga je 2x 1,5/1,25 vata RMS što je široko dovoljno
RMS (root mean square) snaga je stvarna snaga koja nije poput ostalih velikih brojeva koji se prodaju poput muzike u vatima ili vršne snage ili bilo čega drugog)
Pretpostavljam da se 1,5 W RMS može prodati kao 8 W u nekim trgovinama !!!!!!
Prvo potrebne komponente:
Glavni odbor:
1x Arduino Nano
1x FM radio modul SI4703 iz Sparkfun -a ili ekvivalenta (napaja se 5v i I2C 3.3V sa 3 -polnom utičnicom koja se može koristiti kao antena)
1x Bluetooth-modul HC-06 (upozoravam da nova verzija softvera 3.0 ima potpuno drugačije komande (stavio sam neke komentare u kôd).
1x 4 -kanalni prekidač nivoa 3,3 5 V
1x MC7805 5v DC pretvarač
1x 2200 µF 25V kondenzator
2x 1N5404 3 Amp diode
2x 2N2222 tranzistora
1x 1Kohm otpornik
1x 47 Ohm otpornik
2x otpornika od 3,3 KOhm (za izvlačenje sabirnice I2C)
3x 330 Ohm otpornici (za LED diode)
2x 6,8 KOhm otpornika
1x 3,9 KOhm otpornik
Prednji panel
1x 20X4 LCD I2C sabirnica
10x 680 Ohm otpornici
1x crvena LED dioda (više nisam imao zelenu !!) za napajanje
1x žuta LED za način rada baterije
1x plava LED dioda za BT vezu
4x (ON) -OFF- (ON) prekidači (kao za prozore na električnim automobilima)
2x dugmad
1x prekidač za uključivanje/isključivanje
Ostale komponente za radio:
2x 100W 10CM 8 Ohm KS
1x 1 m produžna antena (oko 75 cm je dobra dužina za FM u Evropi i SAD -u)
1x telefonski utikač koji sam koristio za uspostavljanje kontakata na bazi za punjenje
1x 1N5404 3 Amp dioda (na kontaktu baterije kako bi se izbjegao dim u slučaju nereda sa uzemljenjem ili kontaktom od 12V)
1x Pojačalo snage 2X20 W (bilo koje stereo pojačalo odgovara sve dok je 12V) na osnovu TDA2020 kupljenog za 4 eura
1x 8XAA spojnica za baterije (za min 9,6 V)
Nekih 10 mm i 4 mm šperploče za kutiju
Baza za punjenje:
1x 12V 3Amp Napajanje
1x mali voltmetar sa 3 cifre /3 žice
3 kontakta (napravljena pomoću telefonskog utikača)
1x 1N5404 3 Amp dioda (na kontaktu od 12V)
2 prekidača (za uključivanje naizmjenične struje kada je radio na bazi za punjenje)
1x prekidač za uključivanje/isključivanje (za isključivanje baze za punjenje ako je potrebno)
Nekih 10 mm i 4 mm šperploče za podlogu
Ukupno, uključujući šperploču, to nije više od 70 €
Korak 1: Radio dio 4703
Prvo, izmjena:
Modul bi trebao koristiti kabel slušalica kao antenu, u mom projektu nije koristan, pa ćemo prvo morati napraviti malu izmjenu za povezivanje i vanjsku antenu
U ovom modulu uzemljenje sa tri pola utičnice nije spojeno direktno na masu, već putem induktivnosti (za zaustavljanje FM frekvencija) i kondenzatora za povezivanje FM frekvencija na antenski ulaz SI4703.
Stoga je najbolji način da spojite antenu direktno na uzemljeni priključak utičnice i lemite dva kabela za audio izlaz
Kako bih spriječio bilo kakve zvukove u zvuku (posebno s Bluetootha), FM modul sam stavio u malu plastičnu kutiju zaštićenu bakrenom trakom spojenom na tlo
RDS/Radio Text protokol:
Prvo, želim zahvaliti Nathanu Seidleu jer sam bio potpuno inspiriran njegovim programom "TEST_FM" iz lipnja 2011.
I, kako je dogovoreno, bit ću mu vrlo sretan platiti pivo ako se jednog od ovih dana izgubi u mom malom selu na kraju Bretanje !!
Koristio sam mnogo njegovog programa jer nisam želio koristiti postojeće biblioteke koje su malo prevelike za siromašni prostor Nano memorije, a također i zato što je uvijek bolje duboko ući u mogućnosti komponente uranjajući direktno u registre
Glavna izmjena koju sam napravio je za RDS ispitivanje
Iskoristio sam mogućnost pokretanja prekida na GPI02 pinu postavljanjem RDSIEN bita i GPIO2 vrijednosti na 01
Ovo će pokrenuti prekid na pinu 3 nano
Ovo sprječava pozivanje u RDS registar jer će pokrenuti program Radio Text samo ako je grupa radijskog teksta sa 4 znaka dostupna bez grešaka (bez detaljnog načina)
Da bismo imali potpuni radio tekst, moramo prikupiti najviše 16 blokova od 4 znaka (registri RDSC/RDSB grupe 2A ili 2B). U program sam stavio mnogo informacija kako bih objasnio šta sam uradio.
Ovdje je opis registara podataka za radio tekst (RDSSA/RDSC)
u registru RDSSB (blok 2)
Vrijednost 4 u A3/0 označava (grupa teksta)
B0 označava tekst A (64 znaka) ili B (32 znaka) (nikada nisam vidio tekst B u upotrebi ………..)
PT0 do PT4 je indeks grupe od 4 znaka (0 do 15)
PT5 treba koristiti kao tekstualni A/B indikator (što znači "ovo je novi tekst"), ali se ne koristi uvijek ovako, ovisno o radio stanici, pa se ne može koristiti za radio tekstualni program.
4 znaka radio teksta su u RDSSC i RDSSD (blokovi 3 i 4)
Savetujem vam da pročitate vrlo zanimljiv dokument u vezi sa RDS protokolom u SI4703 => AN243 iz Silicon labs
Također sam resetirao SKMODE bit u registru POWERCFG (vidi tehnički list SI4703) kako bih ostao u rasponu frekvencije dok tražim kanale
Čitanje podatkovnog polja puno će pomoći u razumijevanju koda i rukovanja svim registrima
Korak 2: Baza za punjenje
Nema mnogo stvari za dodati
Slike mogu bolje govoriti.
Upravo sam dodao 1N5404 diodu na 12 voltni kontakt
1) kako biste izbjegli probleme u slučaju da kontakt baterije dodirne 12 -voltni kontakt prilikom stavljanja radija na bazu (ali to se nikada nije dogodilo)
2) za snižavanje razine napona na 10,8 volti (na matičnoj ploči postoji i dioda) jer se MC7805 može zagrijati pri prelasku s 12 V na 5 volti sa strujom od 1 Amp (zašrafio sam komad željeza kao hladnjak na 7805)
Dodao sam mali voltmetar 3 x 7 segmenata koji pokazuje napunjenost baterije
Ovaj uređaj ima 3 žice kako bi se smanjila potrošnja (više od 1 mega ohma na žici za mjerenje) što omogućava da radio ostane na isključenoj bazi dugo bez pražnjenja baterije
2 prekidača se koriste za isključivanje napajanja izmjeničnom strujom kada je radio izvan baze (kako bi se izbjeglo 12V na kontaktima)
Kutija je napravljena od šperploče (prije slikanja na slici) Dopuštam vam da zamislite kako napraviti lijepu kutiju jer moja nije baš seksi !!!!!
Bio sam jako začuđen, ali baza za punjenje radi dobro i nikada nisam pušio dok sam na nju spuštao radio ………….
Korak 3: Kutija
Pretpostavljam da bi svako htio raditi kako želi slijedeći svoje umjetničke sposobnosti !!!!!
U svakom slučaju, kratko ću objasniti kako bih mogao izgraditi nešto što užasno izgleda kao kutija s alatima
Prednji i stražnji dio izrezani su u šperploču 4 mm 15x45 cm
gornji i donji dio su 10 mm šperploča 15x45 cm
Bočne strane i 2 unutrašnje pregrade (2 2 mjesta za HP i komponente u sredini) su 10 mm šperploča 13x13 cm
Na prednjoj ploči sam napravio rupe od 2 x10 cm za HP i 14x14 kvadratnu rupu za umetanje 15x15 2 mm organskog stakla koje sam ofarbao u crno (dodajući nakon bojenja prozirnu otisnutu naljepnicu, ali nije toliko čitljiva zbog crne boje boja iza)
Napravio sam 2 rupe na vrhu:
jedan za potenciometar pojačala (za podešavanje nivoa ako je potrebno) i kao izlaz topline
drugi za antenu
Na stražnjoj ploči napravio sam 2 rupe:
Jedan za USB priključak (direktno priključite na nano)
Jedan 16 mm za zračno hlađenje (otvor od 14 mm na potenciometru pojačala snage iznad izlaznog hlađenja zraka)
ručka je izrađena od bakrene cijevi od 12 mm obojene u crnu boju
Sve komponente gornje slike nalaze se u centralnom odjeljku (kasnije sam morao staviti baterije u lijevi odjeljak za HP jer je bio preblizu HC06 BT modula u glavnom odjeljku)
To je to
Naravno da mora postojati nešto seksi !!!!!
Korak 4: Arduino dio (sheme i kod)
Pokušao sam staviti što je moguće više informacija u komentare programa.
Još nekoliko informacija
Postupak Decode_TXT koristi se i Bluetooth procedurom i procedurom prebacivanja
obje procedure koriste neke ključne riječi
v+ => za povećanje glasnoće
v- => za smanjenje
f+ => za povećanje frekvencije koraka od 100 Khz
f- => za smanjenje
su+=> traži gore
sd-=> traži dolje
prefu => povećati unaprijed odabrani broj kanala
prefd => smanjenje
hello => koje je Android aplikacija poslala tokom bluetooth veze, kôd šalje status radija
bye => poslao APP kada se BT prekine
pow => radio je poslao aplikaciji u načinu napajanja (na bazi za punjenje)
bat => kada je u režimu rada baterije
lb => šalje se ako je nivo baterije prenizak (oko 8 volti)
Bluetooth komunikacija je osigurana kontrolnom petljom:
Svaki put kada FM radio pošalje informaciju, tajmer se pokreće čekajući odgovor "u redu" od strane Android aplikacije
u slučaju 3 greške (tajmer je istekao) BT vezu prekida Radio. (ovo također prekida vezu na Android strani)
Na drugoj strani
Kada aplikacija pošalje naredbu, čeka se da odgovor s radija pošalje drugu naredbu.
Procedura get_RT se pokreće kada se postavi RDS zastavica (nakon prekida na pinu 3)
evo koda (veza na GITHUB)
Sheme:
Glavna ploča FM radija (zapravo SI4703 je odvojen u oklopljenoj kutiji):
Prednja ploča:
Baza za punjenje:
Veze do datoteka Fritzing:
Glavna ploča FR RADIO
Prednji panel
Baza za punjenje
Korak 5: Android aplikacija
Napravljeno sa pronalazačem APP -a
evo linkova na GitHub
Radio FM aia
Android APK
Aplikacija koristi 2 brojača vremena:
1) za Bluetooth komunikaciju (100ms)
2) za treptanje LED diode baterije kada je opterećenje oko 8 v (1000ms)
Prvi put ćete morati upariti HC06 modul sa svojim pametnim telefonom ili tabletom.
Koristim TinyDB za spremanje BT adrese HC06 modula, prva veza će omogućiti dugme BT adrese i morat ćete odabrati HC06 na popisu (sa svoje strane, preimenovao sam HC06 modul u FM_RADIO)
U aplikaciji nisam uvijek koristio postotak za veličinu elementa, pa bi moglo doći do tako velikih problema ovisno o pametnom telefonu
Moj je Galaxy Note 3 pa prilično veliki ekran ………
Tako sam proveo dobro vrijeme otkrivajući ovaj mali, ali vrlo efikasan SI4703.
I bilo mi je veliko zadovoljstvo pisati ove upute
Do mog sljedećeg projekta
Doviđenja!!!