- NRF24L01 RF Modülünü kullanan Walkie Talkie
- Arduino tabanlı Walkie Talkie için Gerekli Bileşen
- Arduino Walkie Talkie Devre Şeması
- Walkie Talkie Arduino Kodu
5G ve 5G özellikli cihazlar çağında yaşıyoruz; ancak, telsiz sistemi ve RF iletişim sistemi gibi eski teknolojiler, uzaktan, kısa mesafeli, ucuz ve düşük maliyetli iletişimin gerekli olduğu senaryolarda hala çok önemlidir. Örneğin, bir bina veya ağır yük taşıyan inşaat şirketiniz varsa, işçilerinizin koordineli çalışma için birbirleriyle iletişim kurması gerekir. Bir telsiz yardımıyla, diğer çalışanların talimatı dinlemeleri ve takip etmeleri için sadece “PTT” düğmesine basarak birbirleriyle iletişim kurabilir ve kısa masaj veya talimatlar yayabilirler. Başka bir uygulama akıllı kasklarda olabilirUzun bir yolculuk sırasında bir grup sürücü arasında iletişim kurmak için, burada önerilen model bir seferde altı kişi arasında iletişim kurabilir. Diğer kısa menzilli kablosuz ses aktarım projelerine göz atmak istiyorsanız, bağlantıları kullanarak IR Tabanlı Kablosuz Ses Verici ve Li-Fi Ses Verici projesini ziyaret edin.
NRF24L01 RF Modülünü kullanan Walkie Talkie
Bu projenin ana bileşeni NRF24L01 RF modülü ve beyin veya işlemci olan Arduino Uno'dur. Bir servo motoru uzaktan kontrol ederek Nrf24L01 ile Arduino arasında nasıl arayüz oluşturacağımızı zaten öğrendik. Bu proje için NRF24L01 RF modülü, dijital bir iletişim ortamına göre çeşitli avantajları olduğu için seçilmiştir. Bu sahip 2,4 GHz çok yüksek frekanslı ISM bandını ve veri hızı 250kbps, 1 Mbps, 2 Mbps olabilir. 1Mhz aralığında 125 olası kanala sahiptir, böylece modül 125 farklı kanalı kullanabilir, bu da tek bir yerde bağımsız olarak çalışan 125 modemden oluşan bir ağa sahip olmayı mümkün kılar.
En önemlisi, NRF24L01 sinyalleri, polis telsizi ve demiryolu telsizi gibi diğer telsiz sistemleriyle çakışmaz veya çapraz arayüz oluşturmaz ve diğer telsizleri rahatsız etmez. Tek bir nrf24l01 modülü, alıcı durumdayken diğer 6 nrf24l01 modülü ile bir anda iletişim kurabilir. Ayrıca, ek bir avantaj olan düşük güç tüketimli bir modüldür. Yaygın olarak bulunan ve yaygın olarak kullanılan iki tür NRF24L01 modülü vardır, biri NRF24L01 + ve diğeri dahili antenli NRF24L01 + PA + LNA'dır (aşağıda gösterilmiştir).
NRF24L01 + onboard anten bulunur ve sadece 100 metre arasında değişir. Yalnızca iç mekan kullanımı için iyidir ve uzun mesafeli dış mekan iletişimleri için uygun değildir. Ayrıca, verici ve alıcı arasında bir duvar varsa, sinyal iletimi çok zayıftır. Harici antenli NRF24L01 + PA + LNA bir sahip PA olduğunu artırır iletiminden önce sinyalin gücü. LNA, Düşük Gürültülü Amplifikatör anlamına gelir. Açıktır, gürültüyü filtreler ve antenden alınan sinyalin son derece zayıf ve belirsiz düşük seviyesini artırır. Bu sinyalin kullanışlı seviyelerini yapımında yardımcı olur ve sahip olduğu 2dB'lik dış anteni o hangi aracılığıyla , üzerinde hava aralığı kapsamının 1000 metreden iletmek bu nedenle açık hava telsiz iletişim projelerimiz için mükemmeldir.
Arduino tabanlı Walkie Talkie için Gerekli Bileşen
- NRF24L01 + PA + LNA, harici 2DB antenli (2 adet)
- Arduino UNO veya Arduino'nun herhangi bir versiyonu
- Ses amplifikatörü (2 adet)
- Mikrofon devresi: Kendiniz yapabilir (daha sonra tartışılacaktır) veya bir ses sensörü modülü satın alabilirsiniz.
- DC'den DC'ye yükseltici yükseltici modülü (2 adet)
- 3.3V AMS1117 voltaj regülatör modülü
- Güç göstergesi LED'i (2 adet)
- 470 ohm direnç (2 adet)
- 4 inçlik bir hoparlör (2 adet)
- basma düğmesi (PTT düğmesi için)
- PTT düğmesi yapmak için 104 PF (2 adet)
- NRF24L01 için 100 NF kondansatör (2 adet)
- PTT düğmesi için 1k direnç (2 adet)
- 2 set li-ion pil
- Li-ion pil şarj ve pil koruma modülü (2 adet)
- Bazı atlama teli, erkek başlık pimi, noktalı vero kartı
Arduino Walkie Talkie Devre Şeması
Arduino Walkie Talkie'nin tam devre şeması aşağıdaki resimde gösterilmektedir. Devre şeması, PTT düğmesi, mikrofon devresi ve stereo ses çıkışı dahil tüm bağlantıları gösterir.
Önemli: NRF24L01 modül voltaj giriş aralığı 1.9v ila maksimum 3.6 volt arasındadır ve voltaj ve akım kararlılığı için + VCC ve - GND'ye 100nf kapasitör kullanmanız gerekir, ancak nrf24l01 modülünün diğer pinleri 5 voltluk sinyali tolere edebilir seviyeleri.
Adım 1: Ev yapımı özel PCB ve Arduino Atmega328p kartı yapmaya başladım. IC Atmega328p'yi programlayıcıya koydum, parlattım ve sonra kodu yükledim. Daha sonra Atmega328p IC üzerine (PB6, PB7) pin 9 ve 10 üzerine 16 MHz kristal ekledim. Özel yapılmış PCB ve programlanmış IC ile monte edilmiş kartımın resimleri aşağıda gösterilmektedir.
Adım 2: NRF24L01 modüllerini devre şemasında gösterildiği gibi aşağıdaki sırayla bağladım. CE'den dijital pin numarası 7'ye, CSN'den 8 numaralı pin'e, SCK'dan dijital pin 13'e, MOSI'dan dijital pin 11'e, MISO'dan dijital pin 12'ye ve IRQ'dan dijital pin 2'ye.
Güç kaynağı için, iyi bir akım kararlılığı ile önce voltajı 5 volttan 3,3v'ye düşürmeniz gerekir. Ayrıca, nrf24l01 modülünün VCC ve toprağına 100nF kapasitör koymanız gerekir. Bu yüzden 3.3 voltluk voltaj regülatörü olan AMS1117'yi kullandım, modül de proje boyutunuzu küçültür ve kompakt hale getirir.
Bu voltaj regülatör kartını kendiniz yapmak isterseniz sadece 3,3 voltluk regülatör IC satın alabilir ve hassas bir cihaz olduğu için RF modülünüz için çok önemli olduğu için giriş ve çıkışta bazı kapaklar, direnç ekleyerek yapabilirsiniz. Veya LM317 değişken voltaj regülatörünü, Breadboard güç kaynağı projesinde yaptığımız gibi 3.3V Düzenlenmiş bir devre oluşturmak için kullanabilirsiniz.
Adım 3: Devre şemasında gösterildiği gibi bir ses sensörü satın alabilir veya basit bir mikrofon devresi yapabilirsiniz. Yalnızca bir transistörden oluşur - 2n3904 NPN transistör. Aşağıdaki görüntü, bir Vero kartı üzerine inşa edilmiş ev yapımı mikrofon devresini göstermektedir. Daha fazla bilgi için bu basit ses ön amplifikatör devresini de kontrol edebilirsiniz.
Daha iyi anlamak için, aşağıda görebileceğiniz gibi bileşen değerleriyle tüm bağlantının başka bir temsilini yaptım.
Adım 4: Mikrodenetleyicinizin 9 ve 10 numaralı dijital pininden ses amplifikatörünüze bağlantı yapmak için, PAM8403 stereo ses amplifikatörünü kullandım çünkü varsayılan olarak Arduino ses çıkışı çok düşüktür (genellikle sadece kulaklık kullanarak sesi duyabilirsiniz), hoparlör değil, bu yüzden bir amplifikasyon aşamasına ihtiyacımız var). Modül, iki dizüstü bilgisayar hoparlörünü kolayca çalıştırabilir ve çok düşük bir maliyetle mevcuttur. Ayrıca, çok az yer gerektiren bir SMD paketinde çok güçlü bir ses amplifikatörü ile birlikte gelir. PAM8403 ses amplifikatör modülü aşağıda gösterilmektedir.
Bağlantı çok basittir, Ses Amplifikatörüne güç sağlamak için 3.7V ila 5V güç kaynağı gereklidir. Arduino pin 9 ve 10'dan gelen sol kanal ve sağ kanal ses girişi, toprak pimi ile birlikte devre şemasında gösterildiği gibi bu amplifikatör modülü için giriş olarak verilmelidir. Benim durumumda, tek bir 4 inçlik 8 ohm hoparlör kullandım ve yalnızca sağ kanal çıkışını kullandım. Dilerseniz bu modül ile iki adet hoparlör kullanabilirsiniz.
Adım 5: Ardından, basit bir buton kullanarak PTT anahtarını oluşturdum. Düğmeye basıldığında anahtarın sıçramasını veya düzensiz sinyalleri önlemek için 104PF veya 0.1 uf kapasitör ekledim. Pin 4, kodlamaya kesintiye uğramış bir pin atandığı için artık Arduino Digital pin D3 ile doğrudan bağlantılıdır.
NRF24L01 + PA + LNA, bir ses sinyali veya DATA paketleri iletirken daha fazla güç tüketir, bu nedenle daha fazla akım tüketir. PTT düğmesine aniden bastığınızda, güç tüketimi artar. Bu aniden artan yükün üstesinden gelmek için, NRF24L01 + PA + LNA Modülünün iletim stabilitesi için + vcc ve Toprak üzerinde bir 100nF kapasitör kullanmalısınız.
Düğmeye basıldığında, Arduino kartı, pin D3 üzerinde bir Arduino Interrupt'ı alır. Programda Arduino'nun dijital pin 3'ü giriş voltajını sürekli kontrol ederek ilan edeceğiz. Giriş voltajı düşükse, telsizi alma modunda tutar ve 3 numaralı dijital pin yüksekse, mikrodenetleyici aracılığıyla mikrofon işlemiyle alınan ses sinyalini göndermek için telsizi iletim moduna geçirir ve iletir. NRF24L01 + PA + LNA ile harici anten.
Adım 6: Güç kaynağı için bu Li-ion pili seçtim. Arduino IC Atmega328p, NRF24L01 + PA + LNA, ses amplifikatörü, PTT düğmesi ve Mikrofon devresi gibi tüm bileşenlere güç sağlamak için, bu proje için aşağıda gösterildiği gibi 2 set Li-ion pil kullandım.
İyi bir hücrenin voltaj seviyesi 3,8v ila 4,2 volttur ve şarj voltajı yalnızca 4v ila 4,2 volttur. Lityum piller hakkında daha fazla bilgi edinmek için bağlantılı makaleye bakabilirsiniz. Bu piller, taşınabilir elektronik cihazlarda ve elektrikli araçlarda çok yaygın olarak kullanılmaktadır. Ancak Li-ion pil hücreleri diğer piller kadar sağlam değildir, aşırı şarj edilmeye ve çok hızlı deşarj olmaya karşı korumaya ihtiyaç duyarlar, bu da şarj / deşarj akımı ve voltajının güvenli sınırlar içinde tutulması gerektiği anlamına gelir. Bu nedenle, en çok pervaneli Li-ion pil şarj modülünü kullandım - TP4056. Bu modülü daha önce bir Taşınabilir Güç Bankası oluşturmak için kullandık, bu kartla ilgili daha fazla ayrıntı için buna göz atabilirsiniz.
Adım 7: Arduino atmega328p, Ses Amplifikatörü, mikrofon devresi, PTT düğmesi her şeyin 5 volt'a ihtiyacı olduğu için 2 Amp dc'den dc'ye yükseltme yükseltici modülü kullandım ancak pilim yalnızca 3,7V ila 4,2V sağlayabiliyor, bu yüzden bir yükseltici dönüştürücüye ihtiyacım var 1 Amp'den fazla kararlı güç çıkışı ile 5V'a ulaşmak.
Devreyi kurduktan sonra, küçük bir muhafaza içine monte edebilirsiniz. Plastik bir kutu kullandım ve devrelerimi aşağıdaki resimde gösterildiği gibi yerleştirdim
Walkie Talkie Arduino Kodu
Arduino walkie talkie'niz için eksiksiz program bu sayfanın altında bulunabilir. Bu bölümde programın nasıl çalıştığını tartışalım. Oraya gitmeden önce, aşağıda listelenen bazı Kitaplıkları eklemeniz gerekir.
- nRF24 Kütüphanesi
- nRF24 Ses Kitaplığı
- Maniaxbug RF24 Kütüphanesi
Aşağıda gösterildiği gibi Radyo ve Ses Kitaplığı başlıklarını ekleyerek programlamaya başlayın
#Dahil etmek
7. ve 8. pinlerde RF Radyoyu başlatın ve ses radyo numarasını 0'a ayarlayın. Ayrıca 3. pin üzerindeki ppt düğmesini de başlatın.
RF24 radyo (7,8); // 7 (CE) 8 (CS) RF24Audio rfAudio (radyo, 0) pinlerini kullanarak radyoyu kurun; // Radyoyu kullanarak sesi ayarlayın ve radyo numarası 0 olarak ayarlayın int talkButton = 3;
Kurulum işlevinin içinde, hata ayıklama için seri monitöre 115200 baud hızında başlayın. Ardından, ppt düğmesini bir kesme pini olarak pin 3'e bağlayın.
geçersiz kurulum () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // düğmeyi kontrol etmek için interrupt ayarlarlar abutton press attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // her modülün rfAudio.receive () alması için varsayılan durumu ayarlar; }
Sonra, interrupt'a yanıt olarak çağrılan talk () adında bir fonksiyonumuz var. Program, düğmeye basılı tutulduğunda ve basılı tutulduğunda, sesi göndermek için iletim moduna girerse, düğmenin durumunu kontrol eder. Düğme serbest bırakılırsa, alma moduna girer.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); başka rfAudio.receive (); } boşluk döngüsü () {}
Bu projenin tam çalışması aşağıda bağlantısı verilen videoda bulunabilir. Walkie Talkie çalışma sırasında bir miktar gürültü çıkarır, bu nRF24L01 Modülünün taşıyıcı frekansından gelen gürültüdür. İyi bir ses sensörü veya mikrofon modülü kullanılarak azaltılabilir. Bu proje ile ilgili herhangi bir sorunuz varsa aşağıdaki yorum bölümüne bırakabilirsiniz. Diğer teknik sorularınıza hızlı yanıtlar almak için forumlarımızı da kullanabilirsiniz.