Inhoudsopgave:

FM-radio met RDS (Radio Text), BT-bediening en oplaadstation - Ajarnpa
FM-radio met RDS (Radio Text), BT-bediening en oplaadstation - Ajarnpa

Video: FM-radio met RDS (Radio Text), BT-bediening en oplaadstation - Ajarnpa

Video: FM-radio met RDS (Radio Text), BT-bediening en oplaadstation - Ajarnpa
Video: Car Android Radio AM | FM Radio Settings | How to Set it Up 2024, November
Anonim
FM-radio met RDS (Radio Text), BT-bediening en oplaadstation
FM-radio met RDS (Radio Text), BT-bediening en oplaadstation
FM-radio met RDS (Radio Text), BT-bediening en oplaadstation
FM-radio met RDS (Radio Text), BT-bediening en oplaadstation

Bonjour, Dit is mijn tweede "Instructables". Omdat ik graag niet erg nuttige dingen maak, is hier mijn laatste project:

Dit is een FM-radio met Radio Text met een oplaadstation en die kan worden gecontroleerd via Bluetooth en een Android APP

Daarom zal ik u het Arduino-gedeelte, het Radio Text-gedeelte en vervolgens het MIT App-uitvindergedeelte presenteren (dit is de enige manier waarop ik bekwaam genoeg ben om een Android-APP te bouwen)

Met een voedingsspanning van 10;8 volt met AC-voeding en 9,6 met batterij is het maximale vermogen 2x 1,5/1,25 watt RMS, wat ruim voldoende is

RMS (root mean square) vermogen is het echte vermogen, niet zoals de andere grote getallen die worden verkocht zoals wattmuziek of piekvermogen of iets anders)

Ik denk dat 1,5 Watt RMS in sommige winkels als 8 Watt kan worden verkocht!!!!!!

Eerst de benodigde componenten:

Hoofdbord:

1x Arduino Nano

1x FM-radiomodule SI4703 van Sparkfun of gelijkwaardig (5v gevoed en 3.3V I2C met een 3-polige Jack die als antenne kan worden gebruikt)

1x HC-06 Bluetooth module (waarschuwing de nieuwe software versie 3.0 heeft totaal andere commando's ingesteld (ik heb wat opmerkingen in de code gezet).

1x 4 kanalen niveauverschuiver 3.3 5 V

1x MC7805 5v DC-omvormer

1x 2200 µF 25V condensator

2x 1N5404 3 Amp diodes

2x 2N2222 transistoren

1x 1Kohm weerstand

1x 47 Ohm weerstand

2x 3.3 KOhm weerstanden (voor I2C bus pull-up)

3x 330 Ohm weerstanden (voor de led's)

2x 6,8 KOhm weerstanden

1x 3.9 KOhm weerstand

Voorpaneel

1x 20X4 LCD I2C-bus

10x 680 Ohm weerstanden

1x Rode LED (ik had geen groene meer!!) voor de voeding

1x Gele LED voor de batterijmodus

1x Blauwe LED voor de BT-verbinding

4x (ON)-OFF-(ON) schakelaars (zoals bij een elektrische autoruit)

2x drukknoppen

1x AAN/UIT-schakelaar

Andere componenten voor de radio:

2x 100W 10CM 8 Ohm HP

1x 1m uitschuifbare antenne (ongeveer 75 cm is de goede lengte voor FM in Europa en de VS)

1x telefoonstekker die ik heb gebruikt om de contacten voor het oplaadstation te maken

1x 1N5404 3 Amp diode (op het batterijcontact om rook te vermijden in geval van knoeien met de grond of 12V contact)

1x 2X20 watt eindversterker (elke stereoversterker past zolang deze 12V is) op basis van TDA2020 gekocht voor 4 Euro

1x 8XAA batterijkoppelaar (om min 9.6V te hebben)

Sommige 10 mm en 4 mm multiplex voor de doos

Oplaadstation:

1x 12V 3Amp voeding

1x kleine 3-cijferige /3 draden voltmeter

3 contacten (gemaakt zonder telefoonstekker)

1x 1N5404 3 Amp diode (op het 12V contact)

2 hendelschakelaars (om de AC-voeding in te schakelen wanneer de radio op het oplaadstation staat)

1x AAN/UIT-schakelaar (om het oplaadstation indien nodig uit te schakelen)

Sommige 10 mm en 4 mm multiplex voor de basis

Alles bij elkaar, inclusief multiplex is het niet meer dan 70€

Stap 1: Het radiodeel 4703

Eerst een wijziging:

De module zou de headsetkabel als antenne moeten gebruiken, in mijn project is het niet handig, dus we zullen eerst een kleine wijziging moeten aanbrengen om een externe antenne aan te sluiten

Bij deze module wordt de 3 polige jack massa niet direct met de aarde verbonden maar via een inductantie (om FM frequenties te stoppen) en een condensator om de FM frequenties aan te sluiten op de antenne ingang van de SI4703.

Dus de beste manier is om de antenne rechtstreeks op de aardingspin van de jack aan te sluiten en twee kabels voor de audio-uitgang te solderen

Afbeelding
Afbeelding

Om ruis in de audio (vooral van Bluetooth) te voorkomen, heb ik de FM-module in een kleine plastic doos geplaatst, afgeschermd met kopertape, verbonden met de grond

Afbeelding
Afbeelding

Het RDS/Radio Text-protocol:

Allereerst wil ik Nathan Seidle bedanken omdat ik volledig geïnspireerd was door zijn programma "TEST_FM" van juni 2011

En, zoals afgesproken, ik zal hem heel graag een biertje betalen, als hij een dezer dagen verdwaald is in mijn kleine dorpje in het diepe van Bretagne!!

Ik heb veel van zijn programma gebruikt omdat ik de bestaande bibliotheken die een beetje te groot zijn voor de arme Nano-geheugenruimte niet wilde gebruiken en ook omdat het altijd beter is om diep in de mogelijkheden van een component te duiken door er direct in te duiken de registers

De belangrijkste wijziging die ik heb aangebracht is voor de RDS-peiling

Ik heb gebruik gemaakt van de mogelijkheid om een onderbreking op de GPI02-pin te activeren door de RDSIEN-bit en GPIO2-waarde in te stellen op 01

Dit zal een interrupt veroorzaken op pin 3 van de nano

Dit voorkomt dat het RDS-register wordt opgevraagd, omdat het Radio Text-programma alleen wordt geactiveerd wanneer de groep radiotekst van de 4 tekens zonder fouten beschikbaar is (niet-uitgebreide modus)

Om een volledige radiotekst te hebben, moeten we maximaal 16 blokken van 4 char's verzamelen (registers RDSC/RDSB van groep 2A of 2B). Ik heb veel informatie in het programma gezet om uit te leggen wat ik deed.

Hier is een beschrijving van de dataregisters voor radiotekst (RDSSA/RDSC)

Afbeelding
Afbeelding

in register RDSSB (blok 2)

Waarde 4 in A3/0 geeft aan (tekstgroep)

B0 geeft A (64 char's) of B (32 char's) tekst aan (in heb nog nooit B-tekst in gebruik gezien…………..)

PT0 tot PT4 is de index van 4 char's group (0 tot 15)

PT5 zou moeten worden gebruikt als tekst-A/B-indicator (wat betekent "dit is een nieuwe tekst"), maar het wordt niet altijd zo gebruikt, afhankelijk van het radiostation, dus het is niet bruikbaar voor het radiotekstprogramma.

4 tekens van de radiotekst zijn in RDSSC en RDSSD (blok 3 en 4)

Ik raad je aan om het zeer interessante document met betrekking tot het RDS-protocol in SI4703 =>AN243 van Silicon Labs te lezen

Ik reset ook de SKMODE-bit in het POWERCFG-register (zie SI4703-gegevensblad) om binnen het frequentiebereik te blijven terwijl ik naar kanalen zoek

Het lezen van datashhet zal veel helpen om de code en alle registerbehandelingen te begrijpen

Stap 2: Het oplaadstation

Het oplaadstation
Het oplaadstation
Het oplaadstation
Het oplaadstation
Het oplaadstation
Het oplaadstation

Niet veel dingen toe te voegen

De foto's kunnen beter spreken.

Zojuist een 1N5404-diode toegevoegd op het 12 volt-contact

1) om problemen te voorkomen in het geval dat batterijcontact het 12 volt-contact aanraakt wanneer u de radio op de basis plaatst (maar dat is nooit gebeurd)

2) om het spanningsniveau te verlagen naar 10,8 volt (er zit ook een diode op het moederbord) omdat de MC7805 een beetje heet kan worden als hij van 12V naar 5 volt gaat met 1 Ampère stroom (ik heb een stuk ijzer als koellichaam geschroefd de 7805)

Ik heb een kleine voltmeter van 3 x 7 segmenten toegevoegd om de batterijlading aan te geven

Dit apparaat is met 3 draden om het verbruik te verlagen (meer dan 1 Mega Ohm op de meetdraad) waardoor de radio lang op de uitgeschakelde basis kan blijven zonder de batterij te ontladen

Afbeelding
Afbeelding

2 hendelschakelaars worden gebruikt om de AC-voeding UIT te schakelen wanneer de radio niet op de basis staat (om te voorkomen dat 12V op de contacten staat)

Afbeelding
Afbeelding

De doos is gemaakt met multiplex (voordat je op de foto gaat schilderen) Ik laat je je voorstellen hoe je een mooie doos kunt maken, want de mijne is niet erg sexy!!!!!

Ik was erg verbaasd, maar het oplaadstation werkt goed en ik heb nooit rook gehad toen ik de radio erop zette………….

Stap 3: De doos

De doos
De doos
De doos
De doos
De doos
De doos
De doos
De doos

Ik denk dat iedereen zou willen doen wat hij wil na zijn artistieke capaciteiten!!!!!

Hoe dan ook, ik zal binnenkort uitleggen hoe ik iets zou kunnen bouwen dat vreselijk op een gereedschapskist lijkt

Voor- en achterzijde zijn gesneden in 4 mm multiplex 15x45 cm

boven- en onderkant zijn 10 mm multiplex 15x45 cm

De zijkanten en de 2 interne partities (2 2 plaatsen voor HP en de componenten in de middelste) zijn 10 mm multiplex 13x13 cm

Op het voorpaneel heb ik gaten van 2 x 10 cm gemaakt voor de HP en een vierkant gat van 14 x 14 om het organische glas van 15 x 15 2 mm in te steken dat ik in zwart heb geverfd (toegevoegd na het schilderen van een transparante gedrukte sticker, maar het is niet zo leesbaar vanwege de zwarte kleur achter)

Ik maakte 2 gaten aan de bovenkant:

een voor de potentiometer van de Power Amp (om het niveau indien nodig aan te passen) en ook als warmteafgifte

een andere voor de antenne

op het achterpaneel heb ik 2 gaten gemaakt:

Eén voor de USB-stekker (direct op de nano aansluiten)

Een 16 mm voor luchtkoeling (het 14 mm-gat van de potentiometer van de eindversterker is de bovenste luchtkoelingsuitgang)

het handvat is gemaakt van een 12 mm koperen buis die in zwart is geverfd

Alle componenten van de foto hierboven vinden plaats in het centrale compartiment (later moest ik de batterijen in het linker HP-compartiment plaatsen omdat het te dicht bij de HC06 BT-module in het hoofdcompartiment zat)

Dat is het

Natuurlijk moet er iets sexyers zijn!!!!!

Stap 4: Het Arduino-onderdeel (schema's en code)

Ik heb geprobeerd om zoveel mogelijk informatie in de opmerkingen van het programma te zetten.

Wat meer informatie

De Decode_TXT-procedure wordt gebruikt door zowel de Bluetooth-procedure als de schakelprocedure

sommige trefwoorden worden door beide procedures gebruikt

v+ => om het volume te verhogen

v- => verlagen

f+ => om de frequentie van een stap van 100 Khz. te verhogen

f- => verlagen

su+=> zoek op

sd-=> zoek naar beneden

prefu=> verhoog het vooraf geselecteerde kanaalnummer

prefd=> verlagen

hallo => verzonden door de Android APP tijdens bluetooth-verbinding, de code stuurt de status van de radio terug

doei => verzonden door de APP wanneer BT de verbinding verbreekt

pow => verzonden door de radio naar App in voedingsmodus (op het oplaadstation)

bat => in batterijmodus

lb => verzonden wanneer het batterijniveau te laag is (ongeveer 8 volt)

Bluetooth-communicatie wordt beveiligd door een regellus:

Elke keer dat de FM-radio informatie verzendt, wordt een timer gestart die wacht op het "ok"-antwoord van de Android-APP

in het geval van 3 fouten (timer is verlopen) wordt de BT-link verbroken door de radio. (dit verbreekt ook de link aan de Android-kant)

Aan de andere kant

Wanneer App een commando verzendt, wacht het op het antwoord van de radio om een ander commando te sturen.

De get_RT-procedure wordt gestart wanneer de RDS-vlag is ingesteld (na een onderbreking op pin 3)

hier is de code (link naar GITHUB)

De schema's:

Het FM-radio-hoofdbord (in feite zit de SI4703 apart in een afgeschermde doos):

Afbeelding
Afbeelding

Het voorpaneel:

Afbeelding
Afbeelding

Het oplaadstation:

Afbeelding
Afbeelding

De links naar de Fritzing-bestanden:

FR RADIO moederbord

Voorpaneel

Oplaadstation

Stap 5: De Android-app

De Android-app
De Android-app
De Android-app
De Android-app

Gemaakt met APP-uitvinder

hier zijn de links naar GitHub

Radio FM aia

Android-APK

De app gebruikt 2 kloktimers:

1) voor de bluetooth-communicatie (100ms)

2) voor knipperende batterij-led bij belasting rond de 8 v (1000 ms)

Voor het eerst moet je de HC06-module koppelen met je smartphone of tablet.

Ik gebruik TinyDB voor het opslaan van het BT-adres van de HC06-module, bij de eerste verbinding wordt de BT-adresknop ingeschakeld en moet je de HC06 in de lijst kiezen (van mijn kant heb ik de HC06-module hernoemd in FM_RADIO)

In de app heb ik niet altijd het percentage voor de grootte van het element gebruikt, dus er kunnen problemen zijn met de weergave, afhankelijk van de smartphone

De mijne is een Galaxy Note 3, dus nogal groot scherm……..

Dus ik heb een goede tijd besteed aan het ontdekken van deze kleine maar zeer efficiënte SI4703.

En heb met veel plezier deze instructables geschreven

Op naar mijn volgende project

Tot ziens!!!

Aanbevolen: