Spisu treści:

Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą: 5 kroków
Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą: 5 kroków

Wideo: Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą: 5 kroków

Wideo: Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą: 5 kroków
Wideo: Jak zrobić radio FM z RDS na Arduino? RDA5807 - wyświetla nazwę stacji i utworu (NEXTPCB.COM) 2024, Lipiec
Anonim
Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą
Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą
Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą
Radio FM z RDS (Radio Text), sterowaniem BT i bazą ładującą

Bonjour, To jest moja druga "Instrukcja". Ponieważ lubię robić mało przydatne rzeczy, oto mój ostatni projekt:

To radio FM z tekstem radiowym z podstawą ładującą, które można monitorować przez Bluetooth i aplikację na Androida

Dlatego przedstawię wam część Arduino, część Radio Text, a następnie część wynalazcy aplikacji MIT (jest to jedyny sposób, w jaki jestem wystarczająco wykwalifikowany, aby zbudować i aplikację na Androida)

Przy napięciu zasilania 10;8 V z zasilaniem AC i 9,6 z akumulatorem maksymalna moc wynosi 2x 1,5/1,25 W RMS, co jest powszechnie wystarczające

Moc RMS (średnia kwadratowa) to rzeczywista moc, a nie inne duże liczby, które są sprzedawane jako waty muzyczne, moc szczytowa lub cokolwiek innego)

Wydaje mi się, że w niektórych sklepach 1,5 W RMS może być sprzedawane jako 8 W !!!!!!

Najpierw potrzebne składniki:

Zarząd Główny:

1x Arduino Nano

1x moduł radiowy FM SI4703 firmy Sparkfun lub odpowiednik (5 V zasilany i 3,3 V I2C z 3-biegunowym gniazdem Jack, który może być używany jako antena)

1x moduł Bluetooth HC-06 (uwaga nowa wersja oprogramowania 3.0 ma zupełnie inny zestaw komend (umieściłem kilka uwag w kodzie).

1x 4-kanałowy przesuwnik poziomu 3,3 5 V

1x konwerter MC7805 5 v DC;

1x kondensator 2200 µF 25 V

2x 1N5404 3A diody

2 tranzystory 2N2222

Rezystor 1x1Kohm

1x rezystor 47 Ohm

Rezystory 2x 3,3 KOhm (do podciągania magistrali I2C)

Rezystory 3x 330 Ohm (dla diod)

Rezystory 2x 6,8 kΩ

1x rezystor 3,9 KOhm

Przedni panel

1x szyna I2C LCD 20X4

Rezystory 10x 680 Ohm

1x czerwona dioda LED (nie miałam już zielonej!!) dla zasilacza

1x żółta dioda LED dla trybu baterii;

1x niebieska dioda LED do połączenia BT

4x (ON)-OFF-(ON) przełączniki (jak do elektrycznego okna samochodu)

2x przyciski

1x włącznik/wyłącznik

Inne komponenty do radia:

2x 100 W 10 CM 8 Ohm HP

1x 1m wysuwana antena (około 75 cm to dobra długość dla FM w Europie i USA)

1x wtyk telefoniczny, którego użyłem do wykonania styków do bazy ładującej

1x dioda 1N5404 3 Amp (na styku akumulatora, aby uniknąć dymu w przypadku bałaganu z uziemieniem lub stykiem 12V)

1x wzmacniacz mocy 2X20 watów (każdy wzmacniacz stereofoniczny będzie pasował, o ile ma napięcie 12V) oparty na TDA2020 kupionym za 4 euro

1x złącze baterii 8XAA (aby mieć min 9.6V)

Niektóre sklejki 10 mm i 4 mm na pudełko

Baza ładująca:

Zasilanie 1x12 V 3Amp

1x mały 3-cyfrowy woltomierz/3 przewody

3 styki (wykonane z wtyczki telefonicznej)

1x 1N5404 dioda 3 Amp (na styku 12V)

2 przełączniki dźwigniowe (do zasilania AC, gdy radio jest na podstawie ładującej)

1x włącznik/wyłącznik (aby w razie potrzeby wyłączyć bazę ładującą)

Niektóre sklejki 10 mm i 4 mm na podstawę

Razem łącznie ze sklejką to nie więcej niż 70€

Krok 1: Część radiowa 4703

Najpierw modyfikacja:

Moduł ma używać kabla słuchawkowego jako anteny, w moim projekcie nie jest to przydatne, więc najpierw będziemy musieli dokonać małej modyfikacji w celu podłączenia i anteny zewnętrznej

W tym module 3-biegunowe uziemienie jack nie jest połączone bezpośrednio z ziemią, ale poprzez indukcyjność (w celu zatrzymania częstotliwości FM) i kondensator do podłączenia częstotliwości FM do wejścia antenowego SI4703.

Najlepiej więc podłączyć antenę bezpośrednio do bolca uziemienia gniazda i przylutować dwa kable do wyjścia audio

Obraz
Obraz

Aby uniknąć jakichkolwiek szumów w dźwięku (zwłaszcza z Bluetooth), umieściłem moduł FM w małym plastikowym pudełku ekranowanym taśmą miedzianą podłączoną do masy

Obraz
Obraz

Protokół RDS/Radio Text:

Po pierwsze, pragnę podziękować Nathanowi Seidle, ponieważ w pełni zainspirował mnie jego program „TEST_FM” z czerwca 2011

I, zgodnie z umową, z radością zapłacę mu piwo, jeśli któregoś dnia zgubi się w mojej małej wiosce w głębi Bretanii!!

Dużo korzystałem z jego programu, ponieważ nie chciałem korzystać z istniejących bibliotek, które są trochę za duże jak na ubogą przestrzeń pamięci Nano, a także dlatego, że zawsze lepiej jest zagłębić się w możliwości komponentu, zanurzając się bezpośrednio w rejestry

Główna modyfikacja, którą wprowadziłem, dotyczy odpytywania RDS

Skorzystałem z możliwości wywołania przerwania na pinie GPI02 ustawiając bit RDSIEN i wartość GPIO2 na 01

Spowoduje to przerwanie na pinie 3 nano

Zapobiega to odpytywaniu rejestru RDS, ponieważ uruchomi program Radio Text tylko wtedy, gdy 4-znakowa grupa tekstu radiowego jest dostępna bez błędów (tryb niepełny)

Aby mieć pełny tekst radiowy, musimy zebrać maksymalnie 16 bloków po 4 znaki (rejestry RDSC/RDSB z grupy 2A lub 2B). W programie umieściłem dużo informacji wyjaśniających, co zrobiłem.

Oto opis rejestrów danych dla tekstu radiowego (RDSSA/RDSC)

Obraz
Obraz

w rejestrze RDSSB (blok 2)

Wartość 4 w A3/0 wskazuje (grupa tekstowa)

B0 wskazuje tekst A (64 znaki) lub B (32 znaki) (w nigdy nie widziałem tekstu B w użyciu ………..)

PT0 do PT4 to indeks grupy 4 znaków (0 do 15)

PT5 powinien być używany jako wskaźnik tekstu A/B (co oznacza "to jest nowy tekst"), ale nie zawsze jest używany w ten sposób w zależności od stacji radiowej, więc nie można go używać w programie tekstowym radia.

4 znaki tekstu radiowego znajdują się w RDSSC i RDSSD (blok 3 i 4)

Radzę zapoznać się z bardzo ciekawym dokumentem dotyczącym protokołu RDS w SI4703 =>AN243 z Silicon labs

Zresetowałem również bit SKMODE w rejestrze POWERCFG (patrz arkusz danych SI4703), aby pozostać w zakresie częstotliwości podczas wyszukiwania kanałów

Czytanie datashhet bardzo pomoże w zrozumieniu kodu i wszystkich obsługi rejestrów

Krok 2: Baza ładująca

Baza ładująca
Baza ładująca
Baza ładująca
Baza ładująca
Baza ładująca
Baza ładująca

Niewiele rzeczy do dodania

Zdjęcia mogą mówić lepiej.

Właśnie dodałem diodę 1N5404 na styku 12 V

1) aby uniknąć problemów w przypadku, gdy kontakt baterii dotyka styku 12 V podczas umieszczania radia na podstawie (ale nigdy się to nie zdarzyło)

2) obniżyć poziom napięcia do 10,8 V (jest też dioda na płycie głównej), ponieważ MC7805 może się nieco nagrzać przy przejściu z 12 V na 5 V przy prądzie 1 A (przykręciłem kawałek żelaza jako radiator 7805)

Dodałem mały woltomierz 3 x 7 segmentów do wskazania obciążenia akumulatora

To urządzenie posiada 3 przewody w celu zmniejszenia zużycia (powyżej 1 Mega Ohm na przewodzie pomiarowym), co pozwala utrzymać radio na zasilanej bazie przez długi czas bez rozładowywania baterii

Obraz
Obraz

2 przełączniki dźwigniowe służą do wyłączania zasilania AC, gdy radio jest poza bazą (aby uniknąć napięcia 12V na stykach)

Obraz
Obraz

Pudełko jest wykonane ze sklejki (przed malowaniem na obrazku) Pozwolę sobie wyobrazić jak zrobić piękne pudełeczko bo moje nie jest zbyt seksowne!!!!!

Byłem bardzo zdziwiony, ale stacja ładująca działa dobrze i nigdy nie paliłem podczas lądowania na niej radia………….

Krok 3: Pudełko

Pudełko
Pudełko
Pudełko
Pudełko
Pudełko
Pudełko
Pudełko
Pudełko

Myślę, że każdy powinien robić to, co chce, podążając za swoimi zdolnościami artystycznymi!!!!!

W każdym razie pokrótce wyjaśnię, jak mogłem zbudować coś, co strasznie wygląda jak skrzynka z narzędziami

Przód i tył wycięte w sklejce 4 mm 15x45 cm

góra i dół to sklejka 10 mm 15x45 cm

Boki i 2 przegrody wewnętrzne (2 2 miejsca na HP i komponenty w środkowej) to sklejka 10 mm 13x13 cm

Na przednim panelu zrobiłem otwory 2x10 cm na HP i kwadratowy otwór 14x14 do wstawienia szkła organicznego 15x15 2mm, które pomalowałem na czarno (dodałem po namalowaniu przezroczystą nadrukowaną naklejkę, ale nie jest to tak czytelne ze względu na czerń kolor z tyłu)

Na górze zrobiłem 2 otwory:

jeden dla potencjometru wzmacniacza mocy (do regulacji poziomu w razie potrzeby), a także jako moc cieplna

inny dla anteny

na tylnym panelu zrobiłem 2 otwory:

Jeden do wtyczki USB (bezpośrednio podłącz do nano)

Jeden 16mm do chłodzenia powietrzem (14mm otwór potencjometru wzmacniacza mocy będący górnym wyjściem chłodzenia powietrzem)

uchwyt wykonany z miedzianej rurki 12mm pomalowanej na czarno

Wszystkie elementy z powyższego zdjęcia znajdują się w środkowej komorze (później musiałem włożyć baterie do lewej komory HP, ponieważ znajdowała się za blisko modułu HC06 BT w głównej komorze)

Otóż to

Oczywiście musi być coś bardziej seksownego!!!!!

Krok 4: Część Arduino (schematy i kod)

Starałem się umieścić jak najwięcej informacji w komentarzach do programu.

Więcej informacji

Procedura Decode_TXT jest używana zarówno przez procedurę Bluetooth, jak i procedurę przełączania

niektóre słowa kluczowe są używane przez obie procedury

v+ => aby zwiększyć głośność

v- => do obniżenia

f+ => aby zwiększyć częstotliwość kroku 100 Khz

f- =>zmniejszyć

su+=> wyszukaj

sd-=> szukaj w dół

prefu=> zwiększ wstępnie wybrany numer kanału

prefd=> zmniejsz

cześć => wysłane przez aplikację na androida podczas połączenia bluetooth, kod odsyła status radia;

bye => wysyłane przez aplikację po rozłączeniu BT

pow => wysyłane przez radio do aplikacji w trybie zasilania (na stacji ładującej)

bat => w trybie bateryjnym

lb => wysyłane, gdy poziom naładowania baterii jest zbyt niski (około 8 V)

Komunikacja Bluetooth jest zabezpieczona pętlą kontrolną:

Za każdym razem, gdy radio FM wysyła informację, uruchamiany jest licznik czasu oczekiwania na odpowiedź „ok” przez aplikację na Androida

w przypadku 3 błędów (przeterminowany timer) łącze BT zostaje przerwane przez Radio. (to odcina również link po stronie Androida)

Z drugiej strony

Gdy aplikacja wyśle polecenie, czeka na odpowiedź z radia, aby wysłać kolejne polecenie.

Procedura get_RT jest uruchamiana po ustawieniu flagi RDS (po przerwaniu na pinie 3)

oto kod (link do GITHUB)

Schematy:

Płyta główna radia FM (w rzeczywistości SI4703 jest osobno w ekranowanym pudełku):

Obraz
Obraz

Panel przedni:

Obraz
Obraz

Baza ładująca:

Obraz
Obraz

Linki do plików Fritzing:

Płyta główna FR RADIO

Przedni panel

Baza ładująca

Krok 5: Aplikacja na Androida

Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida

Wykonane z wynalazcą APP

oto linki do GitHub

Radio FM aia

APK na Androida

Aplikacja wykorzystuje 2 zegary:

1) dla komunikacji bluetooth (100ms)

2) do migania diody baterii, gdy obciążenie wynosi około 8 v (1000 ms)

Po raz pierwszy będziesz musiał sparować moduł HC06 ze smartfonem lub tabletem.

Używam TinyDB do zapisywania adresu BT modułu HC06, przy pierwszym połączeniu przycisk adresu BT zostanie włączony i będziesz musiał wybrać HC06 z listy (z mojej strony zmieniłem nazwę modułu HC06 w FM_RADIO)

W aplikacji nie zawsze używałem procentu dla rozmiaru elementu, więc w zależności od smartfona mogą wystąpić problemy z wyświetlaniem

Mój to Galaxy Note 3, więc raczej duży ekran……..

Dobrze więc spędziłem czas odkrywając ten mały, ale bardzo wydajny SI4703.

Pisanie tych instrukcji sprawiło mi dużo przyjemności

Do mojego następnego projektu

Do widzenia!!!

Zalecana: