Inhoudsopgave:
- Stap 1: Het radiodeel 4703
- Stap 2: Het oplaadstation
- Stap 3: De doos
- Stap 4: Het Arduino-onderdeel (schema's en code)
- Stap 5: De Android-app
Video: FM-radio met RDS (Radio Text), BT-bediening en oplaadstation - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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)
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
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
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)
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
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):
Het voorpaneel:
Het oplaadstation:
De links naar de Fritzing-bestanden:
FR RADIO moederbord
Voorpaneel
Oplaadstation
Stap 5: 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:
USB-oplaadstation voor smartphones en andere apparaten: 4 stappen
USB-oplaadstation voor smartphones en andere apparaten: deze tutorial laat zien hoe u USB-oplaadstations (smartphones en andere apparaten) kunt maken voor thuis, op reis, op het werk, enz. Met het steeds toenemende aantal gadgets dat USB-snoeren gebruikt voor het opladen (zie lijst van voorbeelden in de laatste stap), besloot ik om
Oplaadstation Breadbox: 5 stappen
Laadstation Breadbox: Dit is een krachtstation om de meerdere snoeren en opladers op mijn aanrecht kwijt te raken
Gadget-oplaadstation: 10 stappen
Gadget-oplaadstation: de meeste huishoudens hebben nu een paar dingen met batterijen die moeten worden opgeladen. Mobiele telefoons, mp3-spelers, bluetooth-headsets, enz. Met die wildgroei aan gadgets komt ook een toename van laadstations - plaatsen om je gadgets te bewaren terwijl ze zuigen
Een oud iPod-oplaadstation opnieuw gebruiken: 5 stappen
Hoe een oude iPod-oplader opnieuw te gebruiken: ik heb een eerste gen. iPod nano-dock dat gewoon in huis lag. Het is nu nutteloos omdat ik een paar jaar geleden mijn nano ben kwijtgeraakt. Dus ik was een tijdje iPod-loos. Na de iPod-blues… kreeg ik de iPod Touch. Omdat ik er geen dock voor had, had ik de br
Nintendo DSI-oplaadstation: 3 stappen
Nintendo DSI-oplaadstation: in deze instructable ga ik je laten zien / vertellen hoe je een standaard voor een Nintendo DSI kunt bouwen. Nu zijn de materialen die ik heb gebruikt een nintendo DSI USB-oplader die ik van Amazon heb gehaald, een iPod shuffle-hoes van de tweede generatie, wat verf, een heet lijmpistool, iets om in te snijden