UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation - Gunook
UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation - Gunook
Anonim
UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation
UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation
UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation
UKW-Radio mit RDS (Radiotext), BT-Steuerung und Ladestation

Bonjour, Dies ist mein zweites "Instructables". Da ich nicht sehr nützliche Dinge mache, ist hier mein letztes Projekt:

Dies ist ein UKW-Radio mit Radiotext mit Ladestation, das über Bluetooth und eine Android-APP überwacht werden kann

Deshalb werde ich Ihnen den Arduino-Teil, den Radiotext-Teil und dann den MIT-App-Erfinder-Teil vorstellen (Nur so bin ich geschickt genug, um eine Android-App zu bauen)

Bei einer Versorgungsspannung von 10,8 Volt mit AC-Versorgung und 9,6 Volt mit Batterie beträgt die maximale Leistung 2x 1,5/1,25 Watt RMS, was weit genug ist

RMS (root mean square) Leistung ist die tatsächliche Leistung, nicht wie die anderen großen Zahlen, die wie Wattmusik oder Spitzenleistung oder irgendetwas anderes verkauft werden)

Ich schätze, 1,5 Watt RMS können in einigen Geschäften als 8 Watt verkauft werden!!!!!!

Zuerst die benötigten Komponenten:

Hauptplatine:

1x Arduino Nano

1x FM-Radiomodul SI4703 von Sparkfun oder gleichwertig (5V mit Strom versorgt und 3,3V I2C mit einer 3-poligen Buchse, die als Antenne verwendet werden kann)

1x HC-06 Bluetooth-Modul (Achtung, die neue Softwareversion 3.0 hat einen ganz anderen Befehlssatz (ich habe einige Kommentare in den Code eingefügt).

1x 4Kanal Levelshifter 3,3 5 V

1x MC7805 5V DC-Wandler

1x 2200 µF 25V Kondensator

2x 1N5404 3 Ampere Dioden

2x 2N2222 Transistoren

1x 1Kohm Widerstand

1x 47 Ohm Widerstand

2x 3,3 KOhm Widerstände (für I2C Bus Pull-Up)

3x 330 Ohm Widerstände (für die LEDs)

2x 6,8 KOhm Widerstände

1x 3,9 KOhm Widerstand

Frontblende

1x 20X4 LCD I2C-Bus

10x 680 Ohm Widerstände

1x Rote LED (hatte kein Grün mehr!!) für die Stromversorgung

1x Gelbe LED für den Akkumodus

1x blaue LED für die BT-Verbindung

4x (ON)-OFF-(ON) Schalter (wie bei einem Elektroauto-Fenster)

2x Druckknöpfe

1x EIN/AUS-Schalter

Andere Komponenten für das Radio:

2x 100W 10CM 8 Ohm HP

1x 1m ausziehbare Antenne (ca. 75 cm ist die gute Länge für UKW in Europa und den USA)

1x Telefonstecker, mit dem ich die Kontakte für die Ladestation hergestellt habe

1x 1N5404 3 Ampere Diode (am Batteriekontakt zur Vermeidung von Rauchentwicklung bei Verwechslung mit Masse oder 12V Kontakt)

1x 2X20 Watt Endstufe (jeder Stereoverstärker passt, solange es 12V ist) basierend auf TDA2020 für 4 Euro gekauft

1x 8XAA Batteriekoppler (mindestens 9,6V)

Etwas 10 mm und 4 mm Sperrholz für die Box

Ladestation:

1x 12V 3A Netzteil

1x kleines 3-stelliges/3-Draht-Voltmeter

3 Kontakte (aus dem Telefonstecker hergestellt)

1x 1N5404 3 Ampere Diode (am 12V Kontakt)

2 Hebelschalter (um das Netzteil einzuschalten, wenn das Radio auf der Ladestation steht)

1x EIN/AUS-Schalter (um die Ladestation bei Bedarf auszuschalten)

Etwas 10 mm und 4 mm Sperrholz für den Sockel

Insgesamt, inklusive Sperrholz, sind es nicht mehr als 70€

Schritt 1: Das 4703 Radioteil

Zuerst eine Modifikation:

Das Modul soll das Headsetkabel als Antenne verwenden, in meinem Projekt ist es nicht sinnvoll, daher müssen wir zuerst eine kleine Modifikation vornehmen, um eine externe Antenne anzuschließen

Bei diesem Modul ist die 3-polige Klinkenmasse nicht direkt mit Masse verbunden, sondern über eine Induktivität (zum Stoppen der FM-Frequenzen) und einen Kondensator zum Anschluss der FM-Frequenzen an den Antenneneingang des SI4703.

Also am besten direkt die Antenne mit dem Massepin der Buchse verbinden und zwei Kabel für den Audioausgang anlöten

Bild
Bild

Um Geräusche im Audio (insbesondere von Bluetooth) zu vermeiden, habe ich das FM-Modul in eine kleine Plastikbox gesteckt, die mit Kupferband abgeschirmt ist und mit Masse verbunden ist

Bild
Bild

Das RDS/Radiotext-Protokoll:

Zuerst möchte ich Nathan Seidle danken, da ich von seinem Programm "TEST_FM" vom Juni 2011 voll begeistert war

Und wie vereinbart zahle ich ihm sehr gerne ein Bier, wenn er sich eines Tages in meinem kleinen Dorf im tiefen Ende der Bretagne verirrt!!

Ich habe viel von seinem Programm verwendet, da ich die vorhandenen Bibliotheken, die für den schlechten Nano-Speicherplatz etwas zu groß sind, nicht verwenden wollte und auch weil es immer besser ist, tief in die Möglichkeiten einer Komponente einzutauchen, indem man direkt eintaucht die Register

Die wichtigste Änderung, die ich vorgenommen habe, betrifft die RDS-Abfrage

Ich habe die Möglichkeit genutzt, einen Interrupt am GPI02-Pin auszulösen, indem ich das RDSIEN-Bit und den GPIO2-Wert auf 01. gesetzt habe

Dies löst eine Unterbrechung an Pin 3 des Nano aus

Dies verhindert das Abfragen des RDS-Registers, da es das Radiotext-Programm nur dann auslöst, wenn die Radiotextgruppe der 4 Zeichen fehlerfrei verfügbar ist (nicht ausführlicher Modus).

Um einen vollständigen Radiotext zu haben, müssen wir höchstens 16 Blöcke mit 4 Zeichen (Register RDSC/RDSB der Gruppe 2A oder 2B) sammeln. Ich habe viele Informationen in das Programm eingefügt, um zu erklären, was ich getan habe.

Hier ist eine Beschreibung der Datenregister für Radiotext (RDSSA/RDSC)

Bild
Bild

im Register RDSSB (Block 2)

Wert 4 in A3/0 gibt an (Textgruppe)

B0 steht für A (64 Zeichen) oder B (32 Zeichen) Text (in noch nie B-Text in Gebrauch gesehen………..)

PT0 bis PT4 ist der Index der 4 Zeichengruppe (0 bis 15)

PT5 sollte als Text-A/B-Anzeige verwendet werden (bedeutet "Dies ist ein neuer Text"), wird jedoch je nach Radiosender nicht immer so verwendet und kann daher nicht für das Radiotextprogramm verwendet werden.

4 Zeichen des Radiotextes sind in RDSSC und RDSSD (Block 3 und 4)

Ich empfehle Ihnen, das sehr interessante Dokument zum RDS-Protokoll in SI4703 =>AN243 von Silicon Labs zu lesen

Ich habe auch das SKMODE-Bit im POWERCFG-Register zurückgesetzt (siehe SI4703-Datenblatt), um bei der Suche nach Kanälen im Frequenzbereich zu bleiben

Das Lesen von Datashhet wird sehr helfen, den Code und alle Registerbehandlungen zu verstehen

Schritt 2: Die Ladestation

Die Ladestation
Die Ladestation
Die Ladestation
Die Ladestation
Die Ladestation
Die Ladestation

Nicht viel hinzuzufügen

Die Bilder können besser sprechen.

Ich habe gerade eine 1N5404-Diode am 12-Volt-Kontakt hinzugefügt

1) um Probleme zu vermeiden, falls der Batteriekontakt den 12-Volt-Kontakt berührt, wenn Sie das Radio auf die Basis stellen (aber es ist nie passiert)

2) den Spannungspegel auf 10,8 Volt zu senken (es gibt auch eine Diode auf dem Motherboard), da der MC7805 etwas heiß werden kann, wenn er von 12V auf 5 Volt mit 1 Ampere Strom umschaltet (ich habe ein Stück Eisen als Kühlkörper angeschraubt die 7805)

Ich habe ein kleines Voltmeter mit 3 x 7 Segmenten hinzugefügt, um die Batterieladung anzuzeigen

Dieses Gerät ist mit 3 Drähten ausgestattet, um den Verbrauch zu senken (mehr als 1 Mega Ohm auf dem Messkabel), wodurch das Radio lange Zeit auf der ausgeschalteten Basis gehalten werden kann, ohne die Batterie zu entladen

Bild
Bild

2 Hebelschalter werden verwendet, um die Wechselstromversorgung auszuschalten, wenn das Funkgerät nicht an der Basisstation ist (um zu vermeiden, dass 12 V an den Kontakten anliegen)

Bild
Bild

Die Box ist aus Sperrholz (vor dem Bemalen des Bildes) Ich lasse Sie sich vorstellen, wie man eine schöne Box macht, da meine nicht sehr sexy ist!!!!!

Ich war sehr erstaunt, aber die Ladestation läuft gut und ich habe nie geraucht, als das Radio darauf gelandet ist………….

Schritt 3: Die Box

Die Kiste
Die Kiste
Die Kiste
Die Kiste
Die Kiste
Die Kiste
Die Kiste
Die Kiste

Ich denke, jeder sollte nach seinen künstlerischen Fähigkeiten tun und lassen, was er will!!!!!

Wie auch immer, ich werde kurz erklären, wie ich etwas bauen könnte, das schrecklich aussieht wie ein Werkzeugkasten

Vorder- und Rückseite sind aus 4 mm Sperrholz 15x45 cm. geschnitten

oben und unten sind 10 mm Sperrholz 15x45 cm

Seiten und die 2 Innenwände (2 2 Plätze für HP und die Komponenten in der Mitte) sind 10 mm Sperrholz 13x13 cm

Auf der Frontplatte habe ich 2 x 10 cm Löcher für die HP und ein 14 x 14 quadratisches Loch zum Einsetzen des 15 x 15 2 mm organischen Glases gemacht, das ich schwarz lackiert habe (nach dem Lackieren einen transparenten gedruckten Aufkleber hinzufügen, der jedoch aufgrund des Schwarz nicht so lesbar ist Farbe hinten)

Ich habe oben 2 Löcher gemacht:

eine für das Potentiometer der Endstufe (um den Pegel bei Bedarf anzupassen) und auch als Heizleistung

noch einer für die Antenne

Auf der Rückseite habe ich 2 Löcher gemacht:

Einer für den USB-Stecker (direkt am Nano anstecken)

Ein 16mm für Luftkühlung (das 14 mm Loch des Potentiometers der Endstufe ist der obere Luftkühlungsausgang)

der Griff besteht aus einem 12mm Kupferrohr schwarz lackiert

Alle Komponenten des obigen Bildes finden im mittleren Fach Platz (später musste ich die Batterien in das linke HP-Fach legen, da es zu nahe am HC06 BT-Modul im Hauptfach war)

Das ist es

Natürlich muss es etwas sexyeres geben!!!!

Schritt 4: Der Arduino-Teil (Schaltpläne und Code)

Ich habe versucht, so viele Informationen wie möglich in die Kommentare des Programms zu geben.

Noch ein paar Informationen

Die Decode_TXT-Prozedur wird sowohl von der Bluetooth-Prozedur als auch von der Switch-Prozedur verwendet

einige Schlüsselwörter werden von beiden Verfahren verwendet

v+ => um die Lautstärke zu erhöhen

v- => senken

f+ => um die Frequenz eines Schrittes von 100 Khz. zu erhöhen

f- =>verringern

su+=> nach oben suchen

sd-=> nach unten suchen

prefu=> Erhöhen der vorgewählten Kanalnummer

prefd=> abnehmen

hallo =>von der Android APP während der Bluetooth-Verbindung gesendet, der Code sendet den Status des Radios zurück

Tschüss => von der APP gesendet, wenn BT die Verbindung trennt

pow => vom Funkgerät an die App im Stromversorgungsmodus (auf der Ladestation) gesendet

bat => im Batteriemodus

lb => gesendet, wenn der Batteriestand zu niedrig ist (ca. 8 Volt)

Die Bluetooth-Kommunikation wird durch einen Regelkreis abgesichert:

Jedes Mal, wenn das FM-Radio eine Information sendet, wird ein Timer gestartet, der auf die "OK"-Antwort der Android-APP wartet

Bei 3 Fehlern (Timer abgelaufen) wird die BT-Verbindung vom Funkgerät unterbrochen. (dies schneidet auch den Link auf der Android-Seite)

Auf der anderen Seite

Wenn die App einen Befehl sendet, wartet sie auf die Antwort vom Funkgerät, um einen weiteren Befehl zu senden.

Die Prozedur get_RT wird gestartet, wenn das RDS-Flag gesetzt ist (nach einem Interrupt an Pin 3)

hier ist der Code (Link zu GITHUB)

Die Schaltpläne:

Die Hauptplatine des UKW-Radios (tatsächlich befindet sich der SI4703 in einer abgeschirmten Box):

Bild
Bild

Die Frontplatte:

Bild
Bild

Die Ladestation:

Bild
Bild

Die Links zu den Fritzing-Dateien:

FR RADIO-Hauptplatine

Frontblende

Ladestation

Schritt 5: Die Android-App

Die Android-App
Die Android-App
Die Android-App
Die Android-App

Hergestellt mit APP-Erfinder

hier sind die Links zu GitHub

Radio FM aia

Android-APK

Die App verwendet 2 Timer:

1) für die Bluetooth-Kommunikation (100ms)

2) zum Blinken der Batterie-LED bei einer Last von etwa 8 V (1000 ms)

Zum ersten Mal müssen Sie das HC06-Modul mit Ihrem Smartphone oder Tablet koppeln.

Ich verwende TinyDB zum Speichern der BT-Adresse des HC06-Moduls, bei der ersten Verbindung wird der BT-Adress-Button aktiviert und Sie müssen den HC06 in der Liste auswählen (ich habe meinerseits das HC06-Modul in FM_RADIO umbenannt)

In der App habe ich nicht immer den Prozentwert für die Größe des Elements verwendet, daher kann es je nach Smartphone zu Anzeigeproblemen kommen

Meins ist ein Galaxy Note 3, also ziemlich großer Bildschirm……..

Also habe ich eine gute Zeit damit verbracht, diesen kleinen, aber sehr effizienten SI4703 zu entdecken.

Und es hat viel Spaß gemacht, diese instructables zu schreiben

Bis zu meinem nächsten Projekt

Auf Wiedersehen!!!