İçindekiler:
- 1. Adım: 4703 Radyo Bölümü
- Adım 2: Şarj Tabanı
- Adım 3: Kutu
- Adım 4: Arduino Parçası (şemalar ve Kod)
- Adım 5: Android Uygulaması
Video: RDS (Radyo Metni), BT Kontrol ve Şarj Tabanlı FM Radyo: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
bonjour, Bu benim ikinci "Öğretim Tablom". Pek kullanışlı olmayan şeyler yapmayı sevdiğim için, işte son projem:
Bu, Bluetooth ve Android APP aracılığıyla izlenebilen, şarj tabanına sahip Radyo Metinli bir FM radyo
Bu nedenle size Arduino bölümünü, Radyo Metni bölümünü ve ardından MIT Uygulaması mucit bölümünü sunacağım (Bu, Android APP oluşturmak için yeterince yetenekli olmamın tek yolu)
AC beslemeli 10;8 volt ve pilli 9.6 besleme voltajı ile maksimum güç 2x 1.5/1.25 watt RMS'dir ve bu oldukça yeterlidir.
RMS (kök ortalama kare) gücü, watt müzik veya tepe gücü veya başka bir şey gibi satılan diğer büyük sayılar gibi olmayan gerçek güçtür)
Sanırım 1.5 Watt RMS bazı mağazalarda 8 Watt olarak satılabiliyor!!!!!!
İlk önce gerekli bileşenler:
Ana Yönetim Kurulu:
1x Arduino Nano
Sparkfun veya eşdeğerinden 1x FM radyo modülü SI4703 (anten olarak kullanılabilen 3 kutuplu Jack ile 5v güç ve 3.3V I2C)
1x HC-06 Bluetooth modülü (yeni yazılım sürümü 3.0'ın tamamen farklı komut setine sahip olduğuna dair uyarı (koda bazı yorumlar koydum).
1x 4 kanallı seviye değiştirici 3.3 5 V
1x MC7805 5v DC dönüştürücü
1x 2200 µF 25V kapasitör
2x 1N5404 3 Amp diyotlar
2 adet 2N2222 transistör
1x 1Kohm direnç
1x 47 Ohm direnç
2x 3.3 KOhm direnç (I2C bus pull-up için)
3x 330 Ohm dirençler (led'ler için)
2x 6.8 KOhm dirençler
1x 3.9 KOhm direnç
Ön panel
1x 20X4 LCD I2C veri yolu
10x 680 Ohm dirençler
Güç kaynağı için 1x Kırmızı LED (artık yeşilim yoktu!!)
Pil modu için 1x Sarı LED
BT bağlantısı için 1x Mavi LED
4x (AÇIK)-KAPALI-(AÇIK) anahtarları (elektrikli araba camı gibi)
2x basmalı düğmeler
1x AÇIK/KAPALI anahtarı
Radyo için diğer bileşenler:
2x 100W 10CM 8 Ohm HP
1x 1m uzatılabilir anten (Avrupa ve ABD'de FM için yaklaşık 75 cm iyi uzunluktur)
Şarj Tabanı için kontakları yapmak için kullandığım 1x telefon fişi
1x 1N5404 3 Amp diyot (toprağa karışması durumunda duman çıkmaması için akü kontağından veya 12V kontaktan)
4 Euro karşılığında satın alınan TDA2020 tabanlı 1x 2X20 watt Güç Amplifikatörü (12V olduğu sürece herhangi bir stereo Amplifikatör sığacaktır)
1x 8XAA pil kuplörü (minimum 9.6V'ye sahip olmak için)
Kutu için bazı 10 mm ve 4 mm kontrplak
Şarj tabanı:
1x 12V 3Amp Güç kaynağı
1x küçük 3 haneli/3 telli voltmetre
3 kontak (telefon fişi ile yapılmıştır)
1x 1N5404 3 Amp diyot (12V kontakta)
2 kollu anahtar (telsiz şarj istasyonundayken AC kaynağını açmak için)
1x ON/OFF anahtarı (gerekirse şarj tabanını kapatmak için)
Taban için bazı 10 mm ve 4 mm kontrplak
Kontrplak dahil toplam 70€'dan fazla değil
1. Adım: 4703 Radyo Bölümü
İlk olarak, bir değişiklik:
Modülün kulaklık kablosunu anten olarak kullanması gerekiyor, benim projemde kullanışlı değil, bu yüzden harici anteni bağlamak için önce küçük bir değişiklik yapmamız gerekecek.
Bu modülde 3 kutuplu jak topraklaması doğrudan toprağa değil, bir endüktans (FM frekanslarını durdurmak için) ve FM frekanslarını SI4703'ün anten girişine bağlamak için bir kapasitör aracılığıyla bağlanır.
Bu yüzden en iyi yol, anteni doğrudan jakın topraklama pimine bağlamak ve ses çıkışı için iki kablo lehimlemektir.
Seste herhangi bir gürültüyü önlemek için (özellikle Bluetooth'tan), FM modülünü toprağa bağlı bakır bantla korumalı küçük bir plastik kutuya koydum.
RDS/Radyo Metni protokolü:
İlk olarak, Haziran 2011'deki "TEST_FM" programından tamamen ilham aldığım için Nathan Seidle'a teşekkür etmek istiyorum.
Ve kararlaştırıldığı gibi, eğer bu günlerden birinde, Brittany'nin derin ucundaki küçük köyümde kaybolursa, ona bir bira vermekten çok mutlu olacağım!
Zayıf Nano bellek alanı için biraz büyük olan mevcut kütüphaneleri kullanmak istemediğimden ve ayrıca doğrudan içine dalarak bir bileşenin olasılıklarında derinlere inmek her zaman daha iyi olduğu için onun programının çoğunu kullandım. kayıtlar
Yaptığım ana değişiklik RDS yoklaması için
RDSIEN bitini ve GPIO2 değerini 01 olarak ayarlayarak GPI02 pininde bir kesintiyi tetikleme olasılığından yararlandım.
Bu, nano'nun 3. pininde bir kesintiyi tetikleyecektir.
Bu, yalnızca 4 karakterlik radyo metni grubu hatasız olarak mevcut olduğunda (ayrıntılı olmayan mod) Radyo Metni programını tetikleyeceğinden, RDS kaydının sorgulanmasını önler.
Tam bir radyo metnine sahip olmak için, 4 karakterlik en fazla 16 blok (2A veya 2B grubu RDSC/RDSB kayıtları) toplamalıyız. Yaptığım şeyi açıklamak için programa çok fazla bilgi koydum.
Radyo metni (RDSSA/RDSC) için Veri kayıtlarının bir açıklaması aşağıdadır.
RDSSB kaydında (blok 2)
A3/0'daki 4 değeri şunu gösterir (metin grubu)
B0, A (64 karakter) veya B(32 karakter) metnini gösterir (B metnini kullanımda hiç görmedim………..)
PT0 ila PT4, 4 karakter grubunun (0 ila 15) indeksidir
PT5, metin A/B göstergesi olarak kullanılmalıdır ("bu yeni bir metindir" anlamına gelir), ancak Radyo istasyonuna bağlı olarak her zaman bu şekilde kullanılmaz, bu nedenle Radyo metin programı için kullanılamaz.
Radyo Metninin 4 karakteri RDSSC ve RDSSD'dedir (blok 3 ve 4)
Silicon laboratuvarlarından SI4703 =>AN243'teki RDS protokolü ile ilgili çok ilginç belgeyi okumanızı tavsiye ederim.
Kanal ararken frekans aralığında kalmak için POWERCFG kaydındaki SKMODE bitini de sıfırlarım (bkz. SI4703 veri sayfası)
Datashhet'i okumak, kodu ve tüm kayıt işlemlerini anlamak için çok yardımcı olacaktır.
Adım 2: Şarj Tabanı
Eklenecek pek bir şey yok
Resimler daha iyi konuşabilir.
12 volt kontağa 1N5404 diyot eklendi
1) telsizi tabana koyarken pil kontağının 12 volt kontağa dokunması durumunda sorun yaşamamak için (ama hiç olmadı)
2) Voltaj seviyesini 10,8 volta düşürmek (anakart üzerinde diyot da var) çünkü MC7805 1 Amp akımla 12V'dan 5 volta geçerken biraz ısınabilir (soğutucu olarak bir parça demir vidaladım) 7805)
Pil yükünü belirtmek için küçük bir 3x7 segment voltmetre ekledim
Bu cihaz, tüketimi azaltmak için (ölçüm kablosunda 1 Mega Ohm'dan fazla) telsizin pili boşaltmadan uzun süre kapalı durumda kalmasını sağlayan 3 kabloludur.
Telsiz tabanda değilken AC beslemesini KAPATMAK için 2 kol anahtarı kullanılır (kontaklarda 12V olmasını önlemek için)
Kutu kontrplaktan yapılmış (resmi boyamadan önce) Benimki çok seksi olmadığı için nasıl güzel bir kutu yapılacağını hayal etmenize izin veriyorum!!!!!
Çok şaşırdım ama şarj tabanı iyi çalışıyor ve radyoyu üzerine koyarken hiç sigara içmedim………….
Adım 3: Kutu
Sanırım herkes sanatsal kapasitesini takip ederek istediğini yapmak ister!!!!!
Her neyse, bir alet kutusuna çok benzeyen bir şeyi nasıl inşa edebileceğimi kısaca açıklayacağım.
Ön ve arka 4 mm kontrplak 15x45 cm kesimlidir.
üst ve alt 10 mm kontrplak 15x45 cm
Yanlar ve 2 iç bölme (HP için 2 yer ve ortadaki bileşenler) 10 mm kontrplak 13x13 cm
Ön panelde HP için 2x10 cm delik ve siyaha boyadığım 15x15 2mm organik camı yerleştirmek için 14x14 kare delik açtım (üzerine şeffaf baskılı sticker boyadıktan sonra ekledim ama siyah olduğu için pek okunmuyor arkadaki renk)
Üstte 2 delik açtım:
biri Güç Amplifikatörü potansiyometresi için (gerekirse seviyeyi ayarlamak için) ve ayrıca ısı çıkışı olarak
anten için başka
arka panelde 2 delik açtım:
USB fişi için bir tane (doğrudan nano'ya takın)
Hava soğutma için bir adet 16 mm (üst hava soğutma çıkışı olan güç Amperinin potansiyometresinin 14 mm deliği)
sap siyah boyalı 12 mm bakır borudan yapılmıştır
Yukarıdaki resimdeki tüm bileşenler orta bölmede yer buluyor (daha sonra ana bölmedeki HC06 BT modülüne çok yakın olduğu için pilleri sol HP bölmesine koymak zorunda kaldım)
Bu kadar
Tabii ki daha seksi bir şey olmalı!!!!!
Adım 4: Arduino Parçası (şemalar ve Kod)
Programın yorumlarına mümkün olduğunca çok bilgi koymaya çalıştım.
Biraz daha bilgi
Decode_TXT prosedürü, hem Bluetooth prosedürü hem de geçiş prosedürü tarafından kullanılır
bazı anahtar kelimeler her iki prosedür tarafından da kullanılıyor
v+ => sesi artırmak için
v- => düşürmek için
f+ => 100 Khz'lik bir adımın frekansını artırmak için
f- => azaltmak
su+=> ara
sd-=> aşağı ara
prefu=> önceden seçilmiş kanal numarasını artır
prefd=> azalt
merhaba =>Bluetooth bağlantısı sırasında Android APP tarafından gönderilen kod, radyonun durumunu geri gönderir
güle güle => BT bağlantısı kesildiğinde APP tarafından gönderilir
pow => güç kaynağı modunda (şarj tabanında) telsiz tarafından Uygulamaya gönderilir
bat => pil modundayken
lb => pil seviyesi çok düşük olduğunda gönderilir (yaklaşık 8 volt)
Bluetooth iletişimi bir kontrol döngüsü ile güvence altına alınır:
FM radyo her bilgi gönderdiğinde, android APP tarafından "tamam" yanıtını bekleyen bir zamanlayıcı başlatılır
3 hata durumunda (zamanlayıcının süresinin dolması) BT bağlantısı Telsiz tarafından kesilir. (bu aynı zamanda Android tarafındaki bağlantıyı da keser)
Diğer tarafta
Uygulama bir komut gönderdiğinde, başka bir komut göndermek için telsizden gelen cevabı bekler.
Get_RT prosedürü, RDS bayrağı ayarlandığında (pin 3'te bir kesintiden sonra) başlatılır.
işte kod (GITHUB'a bağlantı)
şemalar:
FM radyo ana kartı (aslında SI4703, korumalı bir kutuda ayrıdır):
Ön panel:
Şarj tabanı:
Fritzing dosyalarına bağlantılar:
FR RADYO ana kartı
Ön panel
Şarj tabanı
Adım 5: Android Uygulaması
APP mucidi ile yapılmıştır
işte GitHub'a bağlantılar
Radyo FM aia
Android APK'sı
Uygulama 2 saat zamanlayıcı kullanır:
1) bluetooth iletişimi için (100ms)
2) yük yaklaşık 8 v (1000ms) olduğunda pil ledinin yanıp sönmesi için
İlk kez HC06 modülünü akıllı telefonunuz veya tabletinizle eşleştirmeniz gerekecektir.
HC06 modülünün BT adresini kaydetmek için TinyDB kullanıyorum, ilk bağlantıda BT adresi düğmesi etkinleştirilecek ve listeden HC06'yı seçmeniz gerekecek (kendi adıma, HC06 modülünü FM_RADIO'da yeniden adlandırdım)
Uygulamada, öğenin boyutu için her zaman yüzdeyi kullanmadım, bu nedenle akıllı telefona bağlı olarak çok görüntü sorunları olabilir.
Benimki bir Galaxy note 3 yani oldukça büyük ekran……..
Bu yüzden bu küçük ama çok verimli SI4703'ü keşfetmek için iyi zaman harcadım.
Ve bu talimatları yazmaktan çok zevk aldım
Bir sonraki projeme kadar
Au revoir!!!
Önerilen:
İnternet Üzerinden OLED'de Metni Görüntüleme: 9 Adım
İnternet Üzerinden OLED'de Metni Görüntüleme: Merhaba ve Hoş Geldiniz, Bu kısa eğitim size Magicblocks kullanarak bir Magicbit'te metin görüntülemeyi öğretecektir. Bu amaca ulaşmanın 2 ana yöntemi vardır; Enjekte Bloğu kullanarak. Dashboard'u kullanarak. Öncelikle Magicb'inize giriş yapın
PIC16F1847 ve AR1010 Tabanlı FM Radyo Müzik Kutusu: 5 Adım
PIC16F1847 ve AR1010 Tabanlı FM Radyo Müzik Kutusu: Bu benim ilk Eğitilebilir gönderiim. Ebay'den aldığım bu ucuz AR1010 FM Radyo alıcı modülünü ve MICROCHIP'ten bir PIC16F1847 Mikrodenetleyiciyi kullanarak bir Dijital FM Radyo kutusu yaptım. Neden PIC'ler? Arduino'yu neden kullanmıyorsunuz? Çünkü bende bir sürü
Not Defteri Kullanarak Metni Sese Dönüştürme!!: 8 Adım
Not Defteri Kullanarak Metni Sese Dönüştürme !!: Bu Eğitim Tablosu size not defteri kullanarak metnin nasıl sese dönüştürüleceğini gösterecektirLütfen kanalıma abone olunTeşekkürler
Arduino Tabanlı Temassız Kızılötesi Termometre - Arduino Kullanan IR Tabanlı Termometre: 4 Adım
Arduino Tabanlı Temassız Kızılötesi Termometre | Arduino Kullanan IR Tabanlı Termometre: Merhaba arkadaşlar, bu talimatta arduino kullanarak temassız bir Termometre yapacağız. Bazen sıvının/katının sıcaklığı çok yüksek veya çok düşük olduğundan, onunla temas kurmak ve okumak zordur. o sahnede sıcaklık
Si4703 FM Radyo Kartı RDS ile Nasıl Kullanılır - Arduino Eğitimi: 5 Adım (Resimlerle)
Si4703 FM Radyo Kartı RDS ile Nasıl Kullanılır - Arduino Eğitimi: Bu, Silicon Laboratories Si4703 FM tuner çipi için bir değerlendirme kartıdır. Si4703, basit bir FM radyo olmanın ötesinde, hem Radyo Veri Hizmeti (RDS) hem de Radyo Yayını Veri Hizmeti (RBDS) bilgilerini algılama ve işleme yeteneğine sahiptir.T