Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Labas, Tai mano antrasis „Instructables“. Kadangi man patinka daryti nelabai naudingus dalykus, čia yra mano paskutinis projektas:
Tai FM radijas su radijo tekstu su įkrovimo baze ir kurį galima stebėti per „Bluetooth“ir „Android“programą
Todėl aš jums pristatysiu „Arduino“dalį, radijo teksto dalį ir tada „MIT App“išradėjo dalį (tai yra vienintelis būdas, kuriuo esu pakankamai įgudęs kurti ir „Android APP“)
Kai maitinimo įtampa yra 10; 8 voltai su kintamosios srovės šaltiniu ir 9,6 su baterija, maksimali galia yra 2x 1,5/1,25 vatų RMS, o tai yra pakankamai
RMS (vidutinė kvadrato) galia yra tikroji galia, ne tokia kaip kiti dideli skaičiai, kurie parduodami kaip vatų muzika ar didžiausia galia ar dar kas nors)
Manau, kai kuriose parduotuvėse 1,5 W RMS gali būti parduodamas kaip 8 vatai !!!!!!
Pirmiausia reikalingi komponentai:
Pagrindinė lenta:
1x „Arduino Nano“
1x FM radijo modulis SI4703 iš „Sparkfun“arba lygiavertis (5 V maitinimas ir 3,3 V I2C su 3 polių lizdu, kurį galima naudoti kaip anteną)
1x „HC-06“„Bluetooth“modulis (įspėjimas, kad naujoji programinės įrangos versija 3.0 turi visiškai skirtingas komandas (į kodą įdėjau keletą komentarų).
1x 4 kanalų lygio perjungiklis 3.3 5 V
1x MC7805 5v DC keitiklis
1x 2200 µF 25V kondensatorius
2x 1N5404 3 amperų diodai
2x 2N2222 tranzistoriai
1x 1Kohm rezistorius
1x 47 omų rezistorius
2x 3,3 KOhm rezistoriai (I2C magistralės traukimui)
3x 330 omų rezistoriai (šviesos diodams)
2x 6,8 KOhm rezistoriai
1x 3,9 KOhm rezistorius
Priekinė panelė
1x 20X4 LCD I2C magistralė
10x 680 omų rezistoriai
1x raudonas šviesos diodas (neturėjau daugiau žalios spalvos !!) maitinimo šaltiniui
1x geltonas šviesos diodas, skirtas akumuliatoriaus režimui
1x mėlynas šviesos diodas BT jungčiai
4x (ON) -OFF- (ON) jungikliai (kaip elektromobilio langui)
2x mygtukai
1x įjungimo/išjungimo jungiklis
Kiti radijo komponentai:
2x 100W 10CM 8 omų AG
1x 1 m ištraukiama antena (maždaug 75 cm yra tinkamas FM ilgis Europoje ir JAV)
1x telefono kištukas, kurį naudojau įkrovimo bazės kontaktams užmegzti
1x 1N5404 3 amperų diodas (ant akumuliatoriaus kontakto, kad būtų išvengta dūmų, jei sutriks žemė arba 12 V kontaktas)
1x 2X20 vatų galios stiprintuvas (bet koks stereo stiprintuvas tinka, kol jis yra 12V), pagrįstas TDA2020, įsigytas už 4 eurus
1x 8XAA baterijos jungtis (turėti mažiausiai 9,6 V)
Dėžutėje yra 10 mm ir 4 mm fanera
Įkrovimo pagrindas:
1x 12V 3Amp maitinimo šaltinis
1x mažas 3 skaitmenų /3 laidų voltmetras
3 kontaktai (pagaminti iš telefono kištuko)
1x 1N5404 3 amperų diodas (ant 12 V kontakto)
2 svirtiniai jungikliai (norint įjungti kintamosios srovės maitinimą, kai radijas yra ant įkrovimo pagrindo)
1x įjungimo/išjungimo jungiklis (jei reikia išjungti įkrovimo bazę)
Pagrindui naudojama 10 mm ir 4 mm fanera
Iš viso, įskaitant fanerą, ne daugiau kaip 70 €
1 žingsnis: 4703 radijo dalis
Pirma, modifikacija:
Modulis turėtų naudoti laisvų rankų įrangos kabelį kaip anteną, mano projekte tai nėra naudinga, todėl pirmiausia turėsime atlikti nedidelį pakeitimą, kad galėtume prijungti išorinę anteną
Šiame modulyje 3 polių lizdo įžeminimas nėra prijungtas tiesiai prie žemės, bet per induktyvumą (FM dažniams sustabdyti) ir kondensatorių, kad prijungtų FM dažnius prie SI4703 antenos įvesties.
Taigi geriausias būdas yra tiesiogiai prijungti anteną prie lizdo įžeminimo kaiščio ir lituoti du garso išvesties kabelius
Norėdami išvengti garso (ypač „Bluetooth“) triukšmo, įdėjau FM modulį į mažą plastikinę dėžutę, uždengtą varine juostele, prijungta prie žemės.
RDS/radijo teksto protokolas:
Pirmiausia noriu padėkoti Nathanui Seidle, nes mane visiškai įkvėpė jo programa „TEST_FM“2011 m. Birželio mėn.
Ir, kaip susitariau, būsiu labai laimingas sumokėdamas jam alaus, jei vieną iš šių dienų jis pasiklysta mano mažame kaimelyje, esančiame gilioje Bretanės pakrantėje !!
Naudojau daug jo programos, nes nenorėjau naudoti esamų bibliotekų, kurios yra šiek tiek per didelės dėl prastos „Nano“atminties vietos, taip pat todėl, kad visada geriau gilintis į komponento galimybes, nardant tiesiai į registrus
Pagrindinis mano atliktas pakeitimas skirtas RDS apklausai
Pasinaudojau galimybe suaktyvinti GPI02 kaiščio pertrauką, nustatydamas RDSIEN bitą ir GPIO2 reikšmę į 01
Tai sukels nano 3 kaiščio pertrauką
Tai neleidžia apklausti RDS registro, nes ji suaktyvins radijo teksto programą tik tada, kai 4 ženklų radijo teksto grupė bus prieinama be klaidų (nežodinis režimas)
Norėdami turėti visą radijo tekstą, turime surinkti ne daugiau kaip 16 4 simbolių blokų (2A arba 2B grupės RDSC/RDSB registrai). Į programą įdėjau daug informacijos, kad paaiškintų, ką padariau.
Čia yra radijo teksto duomenų registrų aprašymas (RDSSA/RDSC)
registre RDSSB (2 blokas)
4 reikšmė A3/0 rodo (teksto grupė)
B0 reiškia A (64 simbolių) arba B (32 simbolių) tekstą (niekada nematė naudojamo B teksto ………..)
Nuo PT0 iki PT4 yra 4 simbolių grupės indeksas (nuo 0 iki 15)
PT5 turėtų būti naudojamas kaip teksto A/B indikatorius (tai reiškia „tai naujas tekstas“), tačiau jis ne visada naudojamas taip, atsižvelgiant į radijo stotį, todėl jis nenaudojamas radijo teksto programai.
4 simboliai radijo teksto yra RDSSC ir RDSSD (3 ir 4 blokai)
Patariu perskaityti labai įdomų dokumentą apie RDS protokolą SI4703 => AN243 iš Silicon labs
Taip pat iš naujo nustatiau SKMODE bitą POWERCFG registre (žr. SI4703 duomenų lapą), kad ieškodamas kanalų likčiau dažnumo diapazone
Duomenų rinkinio skaitymas labai padės suprasti kodą ir visas registrų tvarkymo priemones
2 žingsnis: įkrovimo bazė
Nelabai ką pridurti
Nuotraukos gali kalbėti geriau.
Ką tik pridėtas 1N5404 diodas ant 12 voltų kontakto
1) kad išvengtumėte problemų, jei akumuliatoriaus kontaktas palies 12 voltų kontaktą, kai padėsite radiją ant pagrindo (bet taip niekada nebuvo)
2) sumažinti įtampos lygį iki 10,8 voltų (pagrindinėje plokštėje taip pat yra diodas), nes MC7805 gali šiek tiek įkaisti, kai pereina nuo 12 V iki 5 voltų su 1 A srove (aš prisukau geležies gabalą, kai įjungtas radiatorius 7805)
Pridėjau nedidelį 3 x 7 segmentų voltmetrą, kad parodytų baterijos įkrovą
Šis prietaisas turi 3 laidus, kad būtų sumažintas energijos suvartojimas (daugiau nei 1 Mega ant matavimo laido), o tai leidžia ilgą laiką išlaikyti radiją ant išjungto pagrindo neiškraunant akumuliatoriaus
2 svirtiniai jungikliai naudojami išjungti kintamosios srovės maitinimą, kai radijas yra išjungtas iš pagrindo (kad kontaktuose nebūtų 12 V įtampos)
Dėžutė pagaminta iš faneros (prieš tapydama paveikslėlyje) leidžiu jums įsivaizduoti, kaip padaryti gražią dėžutę, nes mano nėra labai seksuali !!!!!
Buvau labai nustebęs, tačiau įkrovimo bazė veikia gerai ir niekada nerūkiau, kai ant jo nusileidau radiją ………….
3 žingsnis: dėžutė
Manau, kad kiekvienas norėtų daryti taip, kaip nori, sekdamas savo meninėmis galimybėmis !!!!!
Bet kokiu atveju netrukus paaiškinsiu, kaip galėčiau sukurti kažką, kas siaubingai atrodo kaip įrankių dėžė
Priekis ir galas supjaustomi iš 4 mm faneros 15x45 cm
viršuje ir apačioje yra 10 mm fanera 15x45 cm
Šonai ir 2 vidinės pertvaros (2 2 vietos HP ir komponentams viduryje) yra 10 mm fanera 13x13 cm
Priekiniame skydelyje padariau 2 x 10 cm skylutes HP ir 14 x 14 kvadratinę skylę, skirtą įdėti 15x15 2 mm organinį stiklą, kurį nudažiau juodai (pridėjus po dažymo skaidrų atspausdintą lipduką, bet jis nėra taip lengvai skaitomas dėl juodos spalvos) spalva už nugaros)
Viršuje padariau 2 skyles:
vienas galios stiprintuvo potenciometrui (jei reikia reguliuoti lygį) ir šilumos išeiga
kita antenai
galiniame skydelyje padariau 2 skyles:
Vienas skirtas USB kištukui (tiesiogiai prijungti prie nano)
Vienas 16 mm oro aušinimui (14 mm galios stiprintuvo potenciometro skylė, viršijanti viršutinę oro aušinimo išvestį)
rankena pagaminta iš 12 mm vario vamzdžio, nudažyto juodai
Visi aukščiau esančio paveikslėlio komponentai yra centriniame skyriuje (vėliau turėjau įdėti baterijas į kairįjį HP skyrių, nes jis buvo per arti pagrindinio skyriaus HC06 BT modulio)
Viskas
Žinoma, turi būti kažkas seksualiau !!!!!
4 žingsnis: „Arduino“dalis (schemos ir kodas)
Stengiausi kuo daugiau informacijos įrašyti į programos komentarus.
Dar šiek tiek informacijos
„Decode_TXT“procedūrą naudoja ir „Bluetooth“, ir perjungimo procedūra
kai kurie raktiniai žodžiai naudojami abiejose procedūrose
v+ => padidinti garsumą
v- => nuleisti
f+ => padidinti 100 Khz žingsnio dažnį
f- => sumažinti
su+=> ieškoti
sd-=> ieškoti žemyn
prefu => padidinti iš anksto pasirinktą kanalo numerį
prefd => sumažėjimas
sveiki => siunčiama „Android“APP „Bluetooth“ryšio metu, kodas grąžina radijo būseną
bye => atsiuntė APP, kai BT atsijungia
Pow => radijas siunčiamas į programą maitinimo režimu (įkrovimo bazėje)
bat => kai veikia akumuliatoriaus režimas
lb => siunčiama, kai akumuliatoriaus įkrova per žema (apie 8 voltai)
„Bluetooth“ryšys yra apsaugotas valdymo kilpa:
Kiekvieną kartą, kai FM radijas siunčia informaciją, „Android APP“paleidžiamas laikmatis, laukiantis „gerai“atsakymo
radus 3 klaidas (pasibaigęs laikmatis) radijas nutraukia BT nuorodą. (tai taip pat sumažina nuorodą „Android“pusėje)
Kitoje pusėje
Kai programa siunčia komandą, ji laukia radijo atsakymo, kad atsiųstų kitą komandą.
Procedūra „get_RT“paleidžiama, kai nustatyta RDS vėliava (po pertraukos 3 kaištyje)
čia yra kodas (nuoroda į GITHUB)
Schemos:
FM radijo pagrindinė plokštė (iš tikrųjų SI4703 yra atskirai ekranuotoje dėžutėje):
Priekinis skydelis:
Įkrovimo bazė:
Nuorodos į „Fritzing“failus:
FR RADIO pagrindinė plokštė
Priekinė panelė
Įkrovimo pagrindas
5 veiksmas: „Android“programa
Pagaminta naudojant APP išradėją
čia yra nuorodos į „GitHub“
Radijas FM aia
„Android“APK
Programa naudoja 2 laikrodžius:
1) „Bluetooth“ryšiui (100 ms)
2) mirksi akumuliatoriaus lemputė, kai apkrova yra apie 8 v (1000 ms)
Pirmą kartą turėsite susieti HC06 modulį su savo išmaniuoju telefonu ar planšetiniu kompiuteriu.
Aš naudoju „TinyDB“HC06 modulio BT adreso išsaugojimui, pirmą kartą prisijungus bus įjungtas mygtukas „BT adresas“ir sąraše turėsite pasirinkti HC06 (savo ruožtu pervadinau HC06 modulį į FM_RADIO)
Programoje ne visada naudoju elemento dydžio procentą, todėl gali kilti tokių nesklandumų, priklausomai nuo išmaniojo telefono
Mano yra „Galaxy Note 3“, todėl gana didelis ekranas ……..
Taigi praleidau daug laiko atrasdamas šį mažą, bet labai efektyvų SI4703.
Ir man buvo labai malonu rašyti šias instrukcijas
Iki kito mano projekto
Au revoir !!!