İçindekiler:

Kızılötesi Kontrollü MP3 Çalar: 6 Adım (Resimli)
Kızılötesi Kontrollü MP3 Çalar: 6 Adım (Resimli)

Video: Kızılötesi Kontrollü MP3 Çalar: 6 Adım (Resimli)

Video: Kızılötesi Kontrollü MP3 Çalar: 6 Adım (Resimli)
Video: Keşke Daha Önce Öğrenseydik Dediğimiz Zaman Kazandıran 14 Bilgisayar Tüyosu 2024, Haziran
Anonim
Image
Image
Kızılötesi Kontrollü MP3 Çalar
Kızılötesi Kontrollü MP3 Çalar

Yaklaşık 10 ABD Doları (USD) karşılığında bir kızılötesi uzaktan kumanda MP3 çalar oluşturun. Her zamanki özelliklere sahiptir: çal, duraklat, sonraki veya önceki çal, tek bir şarkıyı veya tüm şarkıları çal. Ayrıca ekolayzır varyasyonları ve ses kontrolü vardır. Hepsi uzaktan kumanda ile kontrol edilebilir.

Programlanmış işlevsellik:

Uzak Tuş: İşlev

+ 01: Sesi kısma + 02: Dizin #2'ye ayarlayın. + 03: Sesi aç + 4…9: Aşağıdaki ekolayzer ayarlarını seçin: ++ (4)DFPLAYER_EQ_POP (5)DFPLAYER_EQ_CLASSIC (6)DFPLAYER_EQ_NORMAL ++ (7)DFPLAYER_EQ_ROCK (8)DFPLAYER_EQ_JAZZ (9)DFPLAYER_EQ_BASS + Tamam: Duraklat + Tamam: Çal + >>: Sonrakini çal + <<: Öncekini çal + Yukarı: Sonraki dizin şarkılarını çal + Dn: Önceki dizin şarkılarını çal + *|Dönüş: Tek şarkıyı döngüye al: açık + #|Çıkış: Tek şarkıyı döngüye al: kapalı

İlk adım Arduino'yu test etmek ve onu breadboard'a bağlamaktır. Aşağıdaki adımlar bağımsız çalışmak üzere tasarlanmıştır. Her adımın kablolama talimatları ve test talimatları vardır. Projeler oluşturduğumda, çalıştıklarını doğrulamak için her bileşeni kablolayıp test ederim. Bu, bileşenlerin entegre edilmesine yardımcı olur, çünkü her birinin işe yaradığını ve entegrasyon gereksinimlerine odaklanabileceğimizi biliyorum.

Bu Eğitilebilirlik, Arduino IDE'nin kurulu olmasını gerektirir. Ayrıca bu projedeki linklerden Arduino eskiz programı indirmek için temel becerilere sahip olmanız, program için bir dizin oluşturmanız (dizin adı program adı ile aynı). Sonraki adımlar, programı IDE'ye yüklemek, görüntülemek ve düzenlemektir. Ardından programı bir USB kablosuyla Arduino kartınıza yükleyin.

Gereçler

  • Arduino için Nano V3 ATmega328P CH340G Mikro denetleyici kartı. Alternatif olarak, bir Uno kullanabilirsiniz.
  • Kızılötesi alıcı ve uzaktan kumanda. Kızılötesi alıcı ve kızılötesi uzaktan kumanda ile birlikte gelen bir IR Kablosuz Uzaktan Kumanda Modülü Kitleri kullandım.
  • Bir direnç, 1K ila 5K. 5K direnç kullanıyorum çünkü bende bir sürü var. Direnç, direnç kullanılmadığında var olan gürültüyü ortadan kaldırır.
  • Breadboard Tel kablolar
  • 5 voltluk duvar adaptörü

Parçaları çoğunlukla Hong Kong veya Çin distribütörlerinden eBay'den satın aldım. ABD'li distribütörler bazen makul fiyatlar ve daha hızlı teslimat için aynı veya benzer parçalara sahiptir. Çin parçalarının teslim edilmesi 3 ila 6 hafta sürer. Kullandığım distribütörlerin hepsi güvenilirdi.

Yaklaşık maliyetler: Nano 3 Dolar, Kızılötesi kit 1 Dolar, devre tahtası 2 Dolar, 40 telli kablo paketi 1 Dolar, 5 voltluk bir duvar adaptörü için 1 Dolar. Toplam, yaklaşık 8 dolar. Not, Nano'yu lehimleme becerilerim zayıf olduğu için lehimlenmiş devre tahtası pimleri ile satın aldım.

Adım 1: Arduino Nano'yu Breadboard'a Ekleyin

Arduino Nano'yu Breadboard'a ekleyin
Arduino Nano'yu Breadboard'a ekleyin

Arduino Nano'yu Breadboard'a takın. Veya dilerseniz bu proje için Arduino Uno kullanabilirsiniz; ikisi de bu proje için aynı pinleri kullanıyor. Nano'yu (veya Uno'yu) bir USB kablosuyla bilgisayarınıza bağlayın.

Arduino'dan gelen gücü ve toprağı breadboard'un güç çubuğuna bağlayın. Arduino 5+ pinini breadboard'un pozitif çubuğuna bağlayın. Arduino GRN (toprak) pinini breadboard'un negatif (toprak) çubuğuna bağlayın. Bu, diğer bileşenler tarafından kullanılacaktır.

Temel Arduino test programını indirin ve çalıştırın: arduinoTest.ino. Programı çalıştırırken, yerleşik LED ışığı 1 saniye yanar, ardından 1 saniye söner. Ayrıca, Arduino IDE Araçları/Seri Monitörde görüntülenebilen mesajlar yayınlanır.

+++ Kurulum.

+ Çıkış için yerleşik LED dijital pimini başlattı. LED kapalı. ++ Döngüye git. + Döngü sayacı = 1 + Döngü sayacı = 2 + Döngü sayacı = 3 …

Bir alıştırma olarak, yanıp sönen ışıktaki zaman gecikmesini değiştirin, değiştirilen programı yükleyin ve değişikliği onaylayın.

Yukarıdaki fotoğrafta 3 ila 5 dolara alabileceğiniz 140 parça lehimsiz breadboard jumper tel kiti kutusu var. Kısa bağlantılar için uzun kablolar kullanarak panoları daha düzenli hale getirirler.

Adım 2: Kızılötesi Alıcıyı Ekleyin ve Arduino'ya Bağlayın

Kızılötesi Alıcıyı Ekleyin ve Arduino'ya Bağlayın
Kızılötesi Alıcıyı Ekleyin ve Arduino'ya Bağlayın

Dişi-erkek kablo tellerini kızılötesi alıcıya (dişi uçlar) takın. Saat modülünün topraklama pimini, devre tahtasının topraklama çubuğu şeridine bağlayın. Saat modülünün güç pinini breadboard'un pozitif çubuk şeridine bağlayın. Kızılötesi alıcının çıkış pinini Arduino A1 pinine bağlayın.

Kızılötesi alıcıyı bağlayın, pimleri soldan sağa:

En soldaki (X'in yanında) - Nano pin A1 Merkez - 5V Sağ - topraklama A1 + - - Nano pin bağlantıları | | | - Kızılötesi alıcı pimleri --------- |S | | | | --- | | | | | | --- | | | ---------

Arduino IDE'de bir kızılötesi kitaplığı kurun. Araçlar/Kitaplıkları Yönet'i seçin. 'IRremote' yazarak aramanızı filtreleyin. Shirriff tarafından IRremote'u seçin (referans için GitHub bağlantısı kitaplığı). Arduino kütüphane bilgisi IRremote kütüphane bağlantısı.

Temel test programını indirin ve çalıştırın: infraredReceiverTest.ino. Programı çalıştırırken, uzaktan kumandanızı alıcıya doğrultun ve 0'dan 9'a kadar sayı gibi çeşitli düğmelere basın.

+++ Kurulum.

+ Kızılötesi alıcıyı başlattı. ++ Döngüye git. + Tuş Tamam - Geçiş + Tuş > - sonraki + Tuş < - önceki + Tuş yukarı + Tuş aşağı + Tuş 1: + Tuş 2: + Tuş 3: + Tuş 4: + Tuş 6: + Tuş 7: + Tuş 8: + Tuş 9: + Tuş 0: + Tuş * (Geri Dön) + Tuş # (Çıkış)

Bir alıştırma olarak, yazdırılan değerleri görmek için bir TV uzaktan kumandası kullanın. Ardından, infraredSwitch() işlevinin switch ifadesindeki değerleri kullanmak için programı değiştirebilirsiniz. Örneğin, "0" tuşuna basın ve uzaktan kumandanızın değerini alın, örneğin "0xE0E08877". Ardından, aşağıdaki kod parçacığında olduğu gibi switch ifadesine bir vaka ekleyin.

durum 0xFF9867:

durum 0xE0E08877: Serial.print("+ Anahtar 0:"); Seri.println(""); kırmak;

3. Adım: MP3 Dosyalarından oluşan bir Mico SD Kartı Oluşturun

DFPlayer küçük, ucuz bir donanım parçası olduğundan, dosya ve klasörleri basit bir şekilde yönetir. Aşağıdaki önerilen biçimlere uymayan MP3 dosyalarını çalarken karışık sonuçlar aldım ve bu nedenle aşağıdakileri öneriyorum. Ayrıca, 3 basamaklı dosya adları (örnek: 003.mp3) gibi diğer seçenekleri test etmedim, ancak diğer talimat ve örneklerde kullanılan 3 basamaklı dosya adlarını gördüm.

Önerilen dosya adım ve klasör dizin adı biçimlerim aşağıdadır:

  • Varsayılan klasör adı MP3'tür ve SD kart kök dizini altına yerleştirilir: SD:/MP3. Bu klasör, birden çok klasör kullanıldığında isteğe bağlıdır.
  • Oynatıcı ayrıca kök dizindeki MP3 dosyalarını da çalacaktır.
  • Birden fazla klasör kullanırken klasör adlarını kullanın: 01, 02, 03, …, 99.
  • Mp3 dosya adı, uzantısı "0001.mp3" olmak üzere 4 basamaklı olmalıdır, örneğin "0001.mp3".
  • Dosyalar MP3 klasörüne veya çoklu klasörlerden birine yerleştirilebilir.
  • Dosya Adları: 0001.mp3 ila 0255.mp3. Oynatıcının başka adlara sahip MP3 dosyalarını da çalacağını unutmayın.
  • Rakamlardan sonra karakterler ekleyebilirsiniz, örneğin "0001hello.mp3".

Dosya eklemeden önce kartı biçimlendirmeniz önerilir. Bu, kartın sistem dosyalarından arındırılmış olmasını sağlar. FAT32 MS-DOS kullanarak biçimlendirin.

Mac'te diski biçimlendirmek için disk yardımcı programını kullanın: Uygulamalar > Yardımcı Programlar > Disk İzlencesi'ni açın.

SD karta tıklayın, örnek: APPLE SD Kart Okuyucu Medya/MUSICSD. Menü öğesini tıklayın, Sil. Ad ayarla, örnek: MUSICSD. Seç: MS-DOS (Fat). Sil'e tıklayın.

Disk temizlenir ve biçimlendirilir.

Bir DFPlayer modülüyle çalışan dizin ve dosya adlarını kullanarak MP3 dosyalarının bir dizinini hedef dizine kopyalayacak bir Java programı yazdım. Programı çalıştırmak için Java JRE'nin kurulu olması gerekir. Programın yardım çıktısı aşağıdadır.

$ java -jar mp3player.jar

+++ Başlat, DFPlayer modül kopyalama programı. Sözdizimi: java -jar mp3player.jar kopyala [(IN: MP3 dizini) (OUT: MP3 dizini)] ---------------------- Bu program bir dizini kopyalar DFPlayer modülüyle çalışan dizin ve dosya adlarını kullanarak başka bir MP3 dosyaları dizini oluşturmak için MP3 dosyaları. Bu programı çalıştırmadan önce + MP3 dosyalarınızın bir dizini oluşturun. + Bir hedef dizin oluşturun. + Hedef dizin, MP3 dosyalarının kopyalanacağı yerdir, ++ rakamlı dizin ve dosya adları kullanılarak. + Hedef dizininiz boş olmalıdır. + İçinde dosyalar varsa dosyaları ve dizinleri silin. ---------------------- + Bu programı çalıştırın. + Sözdizimi: java -jar mp3player.jar kopyası [(IN: MP3 dizini) (OUT: MP3 dizini)] + Varsayılanları kullanan sözdizimi: java -jar mp3player.jar kopyası + Varsayılan dizin adları: mp3player1 ve mp3player2. + Şununla aynı: java -jar mp3player.jar mp3player1 mp3player2 kopyalayın. ---------------------- + SD kartı bilgisayarınıza takın. + SD karttaki dizinleri ve dosyaları silin. + Dosyalar hala SD kartta olduğundan ve DFPlayer modülü bunları oynatabileceğinden çöp kutusunu boşaltın. + Yeni dizinleri ve dosyaları SD karta kopyalayın. + Kartı bilgisayardan çıkarın. ---------------------- + Kartı DFPlayer modülüne takın. + Kart oynamaya hazır

Kaynak kodunu görüntülemek için buraya tıklayın. Çalıştırabileceğiniz JAR program dosyasını indirmek için tıklayınız.

Referans için

Mac'te komut satırından aşağıdakileri çalıştırabilirsiniz.

Kartı bulmak için liste.

$ diskutil listesi

… /dev/disk3 (dahili, fiziksel): #: TÜR ADI BOYUT TANIMLAYICI 0: FDisk_partition_scheme *4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls /Volumes/MUSICSD

Dosyaları sırayla SD karta kopyalayın. DFPlayer zaman damgasına göre sıralayabildiğinden, dosyaları dosya adı sırasına göre kopyalayın.

Sorunlara neden olabilecek gizli dosyaları temizleyin (referans:

$ dot_clean /Ciltler/MÜZİKD

SD kartınız artık kullanıma hazır. DFPlayer modülünüze yerleştirin.

4. Adım: MP3 Dosyalarını Oynatan DFPlayer Modülüne Kablo Bağlayın

MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama
MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama
MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama
MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama
MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama
MP3 Dosyalarını Oynatan DFPlayer Modülünde Kablolama

Bağlantıları 3 bölüme ayırdım: seri iletişim, güç ve hoparlör/ses.

1. Arduino RX/TX pinlerini DFPlayer modülüne bağlayın. Arduino pin 10 ile DFPlayer pin 3 (TX) arasına bir kablo bağlayın. Bir direnç bağlayın, Arduino ve DFPlayer arasındaki boş bir satıra DFPlayer pin 2'den (RX) 5K'lık bir direnç kullanıyorum. Nano pin 11'den 5K rezistöre bir kablo bağlayın. 5K direnç, direnç kullanılmadığında oluşan gürültüyü ortadan kaldırır.

2. DFPlayer modülünün topraklama pimini (GND) devre tahtasının topraklama çubuğu şeridine bağlayın. DFPlayer modülünün güç pimini (VCC) devre tahtasının pozitif çubuk şeridine bağlayın.

3. Tek bir küçük hoparlörünüz varsa, yukarıdaki fotoğraftaki gibi Nano ile 6 (SPK-) ve 8 (SPK+) pinlerine bağlayın.

DFPlayer Mini pimleri

Arduino IDE'de DFPlayer kitaplığını kurun. Araçlar/Kitaplıkları Yönet'i seçin. 'DFRobotDFPlayerMini' yazarak aramanızı filtreleyin. DFRobot mini oynatıcı kitaplığı tarafından DFRobotDFPlayerMini'yi seçin (referans için kitaplık bağlantısı). Uygulamam için 1.0.5 sürümünü yükledim.

Referans için, kütüphane bağlantısı. Ve DFPlayer wiki sayfası bağlantısı.

MP3 dosyalarını mikro SD karta yükleyin. Ayrı dizinlerde şarkılarınız olabilir. SD kartı DFPlayer'a yerleştirin.

MP3 oynatıcı programını indirin ve çalıştırın: mp3infrared.ino. Programı çalıştırırken uzaktan kumandanızı alıcıya doğrultun ve ilk şarkıyı çalmaya başlamak için tamam düğmesine basın. Oynatmaya başladığında, bir dosya oynatılırken DFPlayer mavi ışığı yanar ve açık kalır.

Gelişmiş yapılandırma

Arduino Mega kullanan bir Altair 8800 emülatör bilgisayarı yaptım. DFPlayer'ı eklediğimde çok fazla gürültü vardı. Gürültüden kurtulmak için DFPlayer için ayrı bir güç kaynağı kullandım. Mega'nın bir güç kaynağı vardır ve DFPlayer'a seri kontrol sinyalleri gönderir. DFPlayer'ın başka bir güç kaynağı vardır ve Mega'dan seri kontrol sinyallerini alır ve uygular.

Yukarıdaki fotoğrafta, Altair öykünücüsünün beyaz mini USB hub'ı Mega'ya güç veriyor ve dizüstü bilgisayarın siyah mini hub'ına bağlı. DFPlayer, onu doğrudan dizüstü bilgisayarın siyah mini hub'ına bağlayan bir USB kablosuna sahiptir. Bu yapılandırma, DFPlayer'a öykünücü beyaz mini hub üzerinden güç verildiğinde oluşan paraziti ortadan kaldırdı.

Mega için yapılandırılan kod için buraya tıklayın. Mega RX/TX pinlerini kullanan kodun bu versiyonu, burada Nano veya Uno olarak yazılım seri port pinlerini kullanır.

Aşağıdaki referans içindir

Arduino ile kullanılan bağlantılar, 1. UART seri, DFPlayer kontrol talimatlarını almak için RX. RX: giriş, Mega/Nano/Uno üzerindeki TX'e bağlanır. Durum bilgilerini göndermek için TX. TX: çıkış Mega/Nano/Uno üzerinde RX'e bağlanır. Nano veya Uno için bağlantılar: RX(2)'den seri yazılım pini 11(TX)'e direnç. TX(3)'ten seri yazılım pini 10(RX)'e. Mega için bağlantılar: RX(2)'den Seri1 pin 18(TX) direncine. TX(3) - Seri1 pin 19(RX). 2. Güç seçenekleri. Arduino'dan doğrudan DFPlayer'a bağlanın: VCC - +5V. Not, ayrıca bir NodeMCU durumunda +3.3V ile çalışır. GND'yi toprağa (-). Tamamen farklı bir güç kaynağı kullanın: Diğer güç kaynağının VCC ila +5V. GND'yi diğer güç kaynağının toprağına(-) bağlayın. Başka bir güç seçeneği gördüm: Arduino +5V'den DFPlayer VCC pinine kapasitörlü ve diyotlu bir 7805 kullanın. GND'yi toprağa (-). 3. Hoparlör çıkışı. Tek bir hoparlör için, 3W'dan az: SPK - hoparlör pimine. SPK + diğer hoparlör pinine. Bir stearo amfisine veya kulak telefonlarına çıkış için: DAC_R, sağ çıkış için (+) DAC_L, sol çıkış için (+) GND toprak çıkışı için.

Anahtar kitaplığı işlev çağrılarının ardından. DFPlayer wiki sayfasına bağlantı.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play(1); // İlk mp3'ü çal myDFPlayer.pause(); // mp3'ü duraklat myDFPlayer.start(); // mp3'ü duraklamadan başlat ------------------------------ myDFPlayer.next(); // Sonraki mp3'ü çal myDFPlayer.previous(); // Önceki mp3'ü oynat ------------------------------ myDFPlayer.playMp3Folder(4); // belirli mp3'leri SD'de çal:/MP3/0004.mp3; Dosya Adı(0~65535) myDFPlayer.playFolder(15, 4); // SD'de belirli mp3 çal:/15/004.mp3; Klasör Adı(1~99); Dosya Adı(1~255) myDFPlayer.playLargeFolder(2, 999); // SD:/02/004.mp3'te belirli mp3 çal; Klasör Adı(1~10); Dosya Adı(1~1000) ------------------------------ myDFPlayer.loop(1); // İlk mp3'ü döngüye al myDFPlayer.enableLoop(); // döngüyü etkinleştir. myDFPlayer.disableLoop(); // döngüyü devre dışı bırak. myDFPlayer.loopFolder(5); // SD:/05 klasöründeki tüm mp3 dosyalarını döngüye alalım. myDFPlayer.enableLoopAll(); // tüm mp3 dosyalarını döngüye al. myDFPlayer.disableLoopAll(); // tüm mp3 dosyalarını döngüyü durdur. ------------------------------ myDFPlayer.volume(10); // Hacim değerini ayarla. 0'dan 30'a kadar myDFPlayer.volumeUp(); // Sesi Aç myDFPlayer.volumeDown(); // Sesi Kısma ------------------------------ myDFPlayer.setTimeOut(500); //Seri iletişim zaman aşımını ayarla 500ms myDFPlayer.reset(); //Modülü sıfırlayın ------------------------------ Serial.println(myDFPlayer.readState()); //mp3 durumunu oku Serial.println(myDFPlayer.readVolume()); //geçerli hacmi oku Serial.println(myDFPlayer.readEQ()); //EQ ayarını oku Serial.println(myDFPlayer.readFileCounts()); //SD karttaki tüm dosya sayılarını oku Serial.println(myDFPlayer.readCurrentFileNumber()); // geçerli oynatma dosya numarasını oku Serial.println(myDFPlayer.readFileCountsInFolder(3)); //SD klasöründeki doldurma sayılarını oku:/03 ------------------------------ myDFPlayer.available()

Adım 5: Harici Güç Kaynağı

Image
Image
Harici güç kaynağı
Harici güç kaynağı
Harici güç kaynağı
Harici güç kaynağı

MP3 çalarınız test edildiğine ve çalıştığına göre, onu bilgisayarınızdan çıkarabilir ve bağımsız bir güç kaynağı ile kullanabilirsiniz. Basit olması için, yaklaşık bir dolara satın alınabilen 5 voltluk bir duvar adaptörü ve bir dolar daha olan bir USB kablosu kullanıyorum. Kablo, Arduino'yu +5V duvar adaptörüne bağlar. Arduino güç ve topraklama pinleri breadboard'a bağlı olduğundan, bu diğer bileşenlere güç sağlayacaktır. Basitliği ve düşük maliyeti nedeniyle, aynı kombinasyonu diğer projelere güç sağlamak için kullanıyorum.

Sağdaki fotoğraf ve video, masamın sağ Bose hoparlöründe oturan 40 dolarlık amfime bağlı oynatıcıyı gösteriyor. Bu benim masaüstü müzik sistemim: Arduino MP3 çalar, Douk Audio amfi ve 2 Bose hoparlör. İyi ses kalitesi.

Umarım başarılı olursunuz ve kendi MP3 müzik çalarınızı oluşturmaktan keyif alırsınız.

Adım 6: Statik Gürültüyü Ortadan Kaldırın

Düşük ses seviyesinde, arka planda rahatsız edici bir statik gürültü vardı. DFPlayer ses seviyesi daha yüksek olduğunda ve müzik çalarken gürültü normaldi. Ama müzik sessiz olduğunda, statik oradaydı.

Birçok öneri içeren bir StackExchage sayfası buldum. Aşağıdaki benim için çalıştı:

  • DFPlayer topraklama pimleri arasına kısa bir kablo bağlayın: 7 ila 10 arasındaki pimler.
  • DFPlayer modülüne güç sağlamak için ayrı bir USB duvar fişi (5V) kullanın.
  • Duvar fişi topraklamasını Arduino toprağına bağlayın. Arduino ve oynatıcı arasındaki seri kontrolün çalışması için bu gerekliydi.

Yukarıdakiler, müzik çalmak için bir DFPlayer ile geliştirdiğim Altair 8800 öykünücümde test edildi. Oyuncu, ön panel geçişlerini çevirerek kontrol edilir.

Önerilen: