Innehållsförteckning:
- Steg 1: Radiodelen 4703
- Steg 2: Laddningsbasen
- Steg 3: Boxen
- Steg 4: Arduino -delen (scheman och kod)
- Steg 5: Android -appen
Video: FM -radio med RDS (radiotext), BT -kontroll och laddningsbas: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Bonjour, Detta är min andra "Instructables". Eftersom jag gillar att göra inte särskilt användbara saker, här är mitt sista projekt:
Detta är en FM -radio med radiotext med en laddningsbas och som kan övervakas via Bluetooth och en Android -APP
Därför kommer jag att presentera dig, Arduino -delen, Radio Text -delen och sedan MIT App -uppfinnaren (Detta är det enda sättet jag är skicklig nog att bygga och Android APP)
Med en matningsspänning på 10; 8 volt med växelström och 9,6 med batteri är maxeffekten 2x 1,5/1,25 watt RMS vilket är tillräckligt brett
RMS (root mean square) effekt är den verkliga effekten inte som de andra stora siffrorna som säljs som wattmusik eller toppeffekt eller något annat)
Jag antar att 1,5 Watt RMS kan säljas som 8 Watt i vissa butiker !!!!!!
Först de komponenter som behövs:
Moderkort:
1x Arduino Nano
1x FM -radiomodul SI4703 från Sparkfun eller motsvarande (5v driven och 3.3V I2C med en 3 -polig jack som kan användas som antenn)
1x HC-06 Bluetooth-modul (varning för den nya mjukvaruversionen 3.0 har totalt olika kommandon (jag lägger några kommentarer i koden).
1x 4kanals nivåväxel 3,3 5 V
1x MC7805 5v DC -omvandlare
1x 2200 µF 25V kondensator
2x 1N5404 3 Amp dioder
2x 2N2222 transistorer
1x 1Kohm motstånd
1x 47 Ohm motstånd
2x 3,3 KOhm-motstånd (för I2C-bussuppdrag)
3x 330 Ohm motstånd (för LED)
2x 6,8 KOhm motstånd
1x 3,9 KOhm motstånd
Frontpanel
1x 20X4 LCD I2C -buss
10x 680 Ohm motstånd
1x röd LED (jag hade inte mer grön !!) för strömförsörjningen
1x gul LED för batteriläge
1x blå LED för BT -anslutning
4x (ON) -OFF- (ON) omkopplare (som för en elbil-fönster)
2x tryckknappar
1x ON/OFF -omkopplare
Andra komponenter för radion:
2x 100W 10CM 8 Ohm HP
1x 1m utdragbar antenn (cirka 75 cm är bra längd för FM i Europa och USA)
1x telefonplugg som jag använde för att skapa kontakterna för laddningsbasen
1x 1N5404 3 Amp diod (på batterikontakten för att undvika rök i händelse av stök med marken eller 12V kontakt)
1x 2X20 watt effektförstärkare (valfri stereoförstärkare passar så länge den är 12V) baserat på TDA2020 köpt för 4 Euro
1x 8XAA batterikopplare (för att ha min 9,6V)
Några 10 mm och 4 mm plywood för lådan
Laddningsbas:
1x 12V 3Amp Strömförsörjning
1x liten 3 -siffrig /3 -ledars voltmeter
3 kontakter (gjorda med telefonkontakten)
1x 1N5404 3 Amp diod (på 12V -kontakten)
2 spakbrytare (för att slå på nätströmmen när radion är på laddningsbasen)
1x ON/OFF -omkopplare (för att stänga av laddningsbasen om det behövs)
Några 10 mm och 4 mm plywood för basen
Sammantaget, inklusive plywood är det inte mer än 70 €
Steg 1: Radiodelen 4703
Först en ändring:
Modulen ska använda headsetkabeln som en antenn, i mitt projekt är det inte användbart, så vi måste först göra en liten ändring för att ansluta och extern antenn
I denna modul är den 3 -poliga jackjorden inte ansluten direkt till marken utan via en induktans (för att stoppa FM -frekvenser) och en kondensator för att ansluta FM -frekvenserna till antenningången på SI4703.
Så det bästa sättet är att ansluta antennen direkt till jordstiftet på uttaget och löda två kablar för ljudutgången
För att förhindra ljud från ljudet (särskilt från Bluetooth) lägger jag FM -modulen i en liten plastlåda som är skärmad med koppartejp ansluten till marken
RDS/Radio Text -protokollet:
Först vill jag tacka Nathan Seidle eftersom jag var fullt inspirerad av hans program "TEST_FM" i juni 2011
Och, som överenskommet, kommer jag att vara mycket glad över att betala honom en öl, om han en av dessa dagar försvinner i min lilla by i Bretagne djupa ände !!
Jag använde mycket av hans program eftersom jag inte ville använda de befintliga biblioteken som är lite för stora för det dåliga Nano -minnesutrymmet och också för att det alltid är bättre att gå djupt in i en komponents möjligheter genom att dyka direkt i registren
Den huvudsakliga ändringen jag gjorde är för RDS -undersökningen
Jag utnyttjade möjligheten att utlösa ett avbrott i GPI02 -stiftet genom att ställa in RDSIEN -bit och GPIO2 -värde till 01
Detta kommer att utlösa ett avbrott på stift 3 på nano
Detta förhindrar att polla RDS -registret eftersom det bara kommer att utlösa radiotextprogrammet när 4 -karaktärs grupp av radiotext är tillgänglig utan fel (icke -verböst läge)
För att få en fullständig radiotext måste vi samla högst 16 block med 4 tecken (registrerar RDSC/RDSB i grupp 2A eller 2B). Jag lägger in mycket information i programmet för att förklara vad jag gjorde.
Här är en beskrivning av dataregistren för radiotext (RDSSA/RDSC)
i register RDSSB (block 2)
Värde 4 i A3/0 indikerar (textgrupp)
B0 anger A (64 tecken) eller B (32 tecken) text (har aldrig sett B -text i bruk ………….)
PT0 till PT4 är indexet för 4 rödinggrupper (0 till 15)
PT5 bör användas som text A/B -indikator (vilket betyder "detta är en ny text") men det används inte alltid så här beroende på radiostation, så det är inte användbart för radiotextprogrammet.
4 tecken på radiotexten finns i RDSSC och RDSSD (block 3 och 4)
Jag råder dig att läsa det mycket intressanta dokumentet angående RDS -protokoll i SI4703 => AN243 från Silicon labs
Jag återställde också SKMODE -biten i POWERCFG -registret (se SI4703 -datablad) för att stanna inom frekvensområdet medan jag söker kanaler
Att läsa datashhet hjälper mycket att förstå koden och alla registerhanteringar
Steg 2: Laddningsbasen
Inte mycket saker att lägga till
Bilderna kan tala bättre.
Har precis lagt till en 1N5404 -diod på 12 volt -kontakten
1) för att undvika problem om batterikontakt vidrör 12 volts kontakten när du sätter radion på basen (men det hände aldrig)
2) för att sänka spänningsnivån till 10,8 volt (det finns också en diod på moderkortet) eftersom MC7805 kan bli lite varm när den går från 12V till 5 volt med 1 Amp -ström (jag skruvade en bit järn som kylfläns på 7805)
Jag lade till en liten 3 x7 segmentvolymmeter för att indikera batteriladdningen
Den här enheten har tre ledningar för att sänka förbrukningen (mer än 1 Mega Ohm på mätningstråden) vilket gör det möjligt att hålla radion på den avstängda basen länge utan att ladda ur batteriet
Två spakströmställare används för att stänga av nätströmmen när radion är från basen (för att undvika att ha 12V på kontakterna)
Lådan är gjord med plywood (innan du målar på bilden) Jag låter dig föreställa dig hur du gör en vacker låda eftersom min inte är särskilt sexig !!!!!
Jag blev mycket förvånad men laddningsbasen går bra och jag hade aldrig rök när jag landade radion på den …………..
Steg 3: Boxen
Jag antar att någon skulle vilja göra som han vill efter hans konstnärliga kapacitet !!!!!
Hur som helst kommer jag snart att förklara hur jag skulle kunna bygga något som fruktansvärt ser ut som en verktygslåda
Fram och bak skärs i 4 mm plywood 15x45 cm
topp och botten är 10 mm plywood 15x45 cm
Sidorna och de 2 interna skiljeväggarna (2 2 platser för HP och komponenterna i den mellersta) är 10 mm plywood 13x13 cm
På frontpanelen gjorde jag 2 x 10 cm hål för HP och ett 14x14 fyrkantigt hål för att sätta in 15x15 2 mm organiskt glas som jag målade i svart (lägg till efter att ha målat en transparent tryckt klistermärke på, men det är inte så läsbart på grund av det svarta färg bakom)
Jag gjorde 2 hål på toppen:
en för potentiometern på effektförstärkaren (för att justera nivån vid behov) och även som värmeeffekt
en annan för antennen
på bakpanelen gjorde jag 2 hål:
En för USB -kontakten (anslut direkt till nano)
En 16 mm för luftkylning (14 mm hål på potentiometern på effektförstärkaren är den övre luftkylningseffekten)
handtaget är tillverkat av ett 12 mm kopparrör målat i svart
Alla komponenter i bilden ovan hittar plats i det centrala facket (senare var jag tvungen att sätta batterierna i det vänstra HP -facket eftersom det var för nära HC06 BT -modulen i huvudfacket)
Det är allt
Naturligtvis måste det finnas något mer sexigt !!!!!
Steg 4: Arduino -delen (scheman och kod)
Jag försökte lägga in så mycket information som möjligt i programmets kommentarer.
Lite mer information
Decode_TXT -proceduren används av både Bluetooth -proceduren och switch -proceduren
vissa sökord används av båda procedurerna
v+ => för att öka volymen
v- => för att sänka
f+ => för att öka frekvensen för ett steg på 100 Khz
f- => att minska
su+=> sök upp
sd-=> sök ner
prefu => öka det förvalda kanalnumret
prefd => minska
hej => skickas av Android -appen under Bluetooth -anslutning, koden skickar tillbaka radioens status
hejdå => skickas av appen när BT kopplar bort
pow => skickas av radion till appen i strömförsörjningsläge (på laddningsbasen)
bat => i batteriläge
lb => skickas när batterinivån är för låg (cirka 8 volt)
Bluetooth -kommunikation säkras med en styrslinga:
Varje gång FM -radion skickar en information startas en timer som väntar på "ok" svar från android -appen
vid 3 fel (timern har löpt ut) bryts BT -länken av radion. (detta skär också av länken på Android -sidan)
På andra sidan
När App skickar ett kommando väntar det på svaret från radion för att skicka ett annat kommando.
Get_RT -proceduren startas när RDS -flaggan är inställd (efter ett avbrott på stift 3)
här är koden (länk till GITHUB)
Schemat:
FM -radioens huvudkort (faktiskt SI4703 är isär i en skärmad låda):
Frontpanelen:
Laddningsbasen:
Länkarna till Fritzing -filerna:
FR RADIO huvudkort
Frontpanel
Laddningsbas
Steg 5: Android -appen
Tillverkad med APP -uppfinnare
här är länkarna till GitHub
Radio FM aia
Android APK
Appen använder 2 klockur:
1) för Bluetooth -kommunikation (100 ms)
2) för blinkande batteri LED när belastningen är cirka 8 V (1000 ms)
För första gången måste du para ihop HC06 -modulen med din smartphone eller surfplatta.
Jag använder TinyDB för att spara BT -adressen för HC06 -modulen, den första anslutningen aktiveras BT -adressknappen och du måste välja HC06 i listan (för min del bytte jag namn på HC06 -modulen i FM_RADIO)
I appen använde jag inte alltid procenten för elementets storlek, så det kan finnas så stora problem beroende på smarttelefonen
Min är en Galaxy note 3 så ganska stor skärm ……..
Så jag ägnade en god tid åt att upptäcka denna lilla men mycket effektiva SI4703.
Och tog mycket glädje av att skriva detta instruktörer
Fram till mitt nästa projekt
Hej då!!!
Rekommenderad:
Alla bandmottagare med SI4732 / SI4735 (FM / RDS, AM och SSB) med Arduino: 3 steg
Alla bandmottagare med SI4732 / SI4735 (FM / RDS, AM och SSB) med Arduino: Det är ett allbandsmottagarprojekt. Den använder Si4734 Arduino -biblioteket. Detta bibliotek har mer än 20 exempel. Du kan lyssna på FM med RDS, lokal AM (MW) station, SW och amatörradiostationer (SSB). All dokumentation här
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse .: 6 steg
Arduino -robot med avstånd, riktning och rotationsgrad (öst, väst, norr, söder) som styrs med röst med hjälp av Bluetooth -modul och autonom robotrörelse.: Denna instruktion förklarar hur man gör Arduino -robot som kan flyttas i önskad riktning (framåt, bakåt , Vänster, höger, öst, väst, norr, syd) krävs Distans i centimeter med röstkommando. Roboten kan också flyttas autonomt
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid
Logitech MX-Revolution laddningsbas accentbelysning: 6 steg
Logitech MX-Revolution laddningsbas accentbelysning: Denna handledning förklarar för dig hur du enkelt lägger till accentbelysning till din Logitech MX Revolution laddningsdocka. Objekt som behövs: Borra-Använd en borr med minst 1000 varv / min. En långsammare borr ger dig ojämn slipning/polering av borrbitar-jag använde en 1/8: e