Isi kandungan:

Pemain MP3 Terkawal Inframerah: 6 Langkah (dengan Gambar)
Pemain MP3 Terkawal Inframerah: 6 Langkah (dengan Gambar)

Video: Pemain MP3 Terkawal Inframerah: 6 Langkah (dengan Gambar)

Video: Pemain MP3 Terkawal Inframerah: 6 Langkah (dengan Gambar)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Jun
Anonim
Image
Image
Pemain MP3 Terkawal Inframerah
Pemain MP3 Terkawal Inframerah

Bina pemain MP3 alat kawalan jauh inframerah dengan harga sekitar $ 10 (USD). Ia mempunyai ciri-ciri biasa: bermain, berhenti sebentar, main berikutnya atau sebelumnya, memainkan satu lagu atau semua lagu. Ia juga mempunyai variasi penyamaan dan kawalan kelantangan. Semua boleh dikawal melalui alat kawalan jauh.

Fungsi yang diprogramkan:

Kekunci Jauh: Fungsi

+ 01: Kelantangan turun + 02: Tetapkan ke direktori # 2. + 03: Naikkan volume + 4… 9: Pilih tetapan penyamaan berikut: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZAY: Main + >>: Mainkan seterusnya + <<: Main sebelumnya + Atas: Mainkan lagu direktori seterusnya + Dn: Mainkan lagu direktori sebelumnya + * | Kembali: Lagu tunggal loop: on + # | Keluar: Lagu tunggal loop: mati

Langkah pertama adalah menguji Arduino dan memasangnya ke papan roti. Langkah-langkah berikut yang dirancang untuk berfungsi secara bebas. Setiap langkah mempunyai arahan pendawaian dan arahan ujian. Semasa saya membina projek, saya menyusun dan menguji setiap komponen untuk mengesahkan bahawa ia berfungsi. Ini membantu mengintegrasikan komponen kerana tahu bahawa setiap kerja dan saya dapat memberi tumpuan kepada keperluan integrasi.

Instructable ini memerlukan anda memasang Arduino IDE. Anda juga diharuskan memiliki kemahiran asas untuk memuat turun program sketsa Arduino dari pautan dalam projek ini, membuat direktori untuk program (nama direktori sama dengan nama program). Langkah seterusnya adalah memuat, melihat dan mengedit program di IDE. Kemudian, muat naik program melalui kabel USB ke papan Arduino anda.

Bekalan

  • Papan pengawal mikro Nano V3 ATmega328P CH340G untuk Arduino. Sebagai alternatif, anda boleh menggunakan Uno.
  • Penerima inframerah dan alat kawalan jauh. Saya menggunakan Kit Modul Kawalan Jauh Tanpa Wayar IR yang disertakan dengan penerima Inframerah dan alat kawalan jauh inframerah.
  • Satu resister, 1K hingga 5K. Saya menggunakan resister 5K kerana saya mempunyai banyak daripadanya. Resister menghilangkan kebisingan yang ada ketika tidak menggunakan resister.
  • Kabel wayar papan roti
  • Penyesuai dinding 5 volt

Saya membeli alat ganti di eBay, kebanyakannya dari pengedar Hong Kong atau China. Pengedar AS kadang-kadang mempunyai bahagian yang sama atau serupa dengan harga yang berpatutan dan penghantaran lebih cepat. Bahagian China mengambil masa 3 hingga 6 minggu untuk dihantar. Pengedar yang saya gunakan semuanya boleh dipercayai.

Kos anggaran: Nano $ 3, kit inframerah $ 1, papan roti $ 2, bungkusan kabel 40 wayar $ 1, $ 1 untuk penyesuai dinding 5 volt. Jumlahnya, kira-kira $ 8. Perhatikan, saya membeli Nano dengan pin papan roti sudah disolder di tempatnya, kerana kemahiran pematerian saya lemah.

Langkah 1: Tambahkan Arduino Nano ke Breadboard

Tambahkan Arduino Nano ke Breadboard
Tambahkan Arduino Nano ke Breadboard

Pasang Arduino Nano ke Breadboard. Atau, jika anda mahu, anda boleh menggunakan Arduino Uno untuk projek ini; mereka berdua menggunakan pin yang sama untuk projek ini. Sambungkan Nano (atau Uno) ke komputer anda melalui kabel USB.

Sambungkan kuasa dan tanah dari Arduino ke bar kuasa papan roti. Sambungkan pin Arduino 5+ ke bar positif papan roti. Sambungkan pin Arduino GRN (tanah) ke bar negatif (tanah) papan roti. Ini akan digunakan oleh komponen lain.

Muat turun dan jalankan program ujian Arduino asas: arduinoTest.ino. Semasa menjalankan program, lampu LED onboard akan menyala selama 1 saat, kemudian mati selama 1 saat. Juga, mesej diposkan yang dapat dilihat di Arduino IDE Tools / Serial Monitor.

+++ Persediaan.

+ Memulakan pin digital LED on board untuk output. LED mati. ++ Pergi ke gelung. + Loop counter = 1 + Loop counter = 2 + Loop counter = 3…

Sebagai latihan, ubah kelewatan waktu pada lampu berkedip, muat naik program yang diubah, dan sahkan perubahannya.

Dalam gambar di atas adalah kotak kawat jumper papan roti tanpa kepingan 140 keping yang anda dapat dengan harga 3 hingga 5 dolar. Mereka membuat papan lebih kemas yang menggunakan kabel panjang untuk sambungan pendek.

Langkah 2: Tambahkan Penerima Inframerah dan Sambungkannya ke Arduino

Tambahkan Penerima Inframerah dan Sambungkannya ke Arduino
Tambahkan Penerima Inframerah dan Sambungkannya ke Arduino

Pasangkan wayar kabel wanita ke lelaki ke penerima inframerah (hujung wanita). Sambungkan pin ground modul jam, ke jalur bar tanah papan roti. Sambungkan pin kuasa modul jam, ke jalur bar positif papan roti. Sambungkan pin output penerima inframerah, ke pin Arduino A1.

Sambungkan penerima inframerah, pin dari kiri atas ke kanan:

Paling kiri (sebelah X) - Nano pin A1 Center - 5V Right - ground A1 + - - Sambungan pin Nano | | | - Pin penerima inframerah --------- | S | | | | --- | | | | | | --- | | | ---------

Di Arduino IDE, pasang perpustakaan inframerah. Pilih Alat / Urus Perpustakaan. Tapis carian anda dengan menaip 'IRremote'. Pilih IRremote oleh Shirriff (untuk rujukan, pautan GitHub perpustakaan). Maklumat perpustakaan Arduino Pautan perpustakaan IRremote.

Muat turun dan jalankan program ujian asas: infraredReceiverTest.ino. Semasa menjalankan program, arahkan alat kawalan jauh anda ke penerima dan tekan pelbagai butang seperti nombor dari 0 hingga 9. Mesej bersiri dikeluarkan (dicetak) yang dapat dilihat di Arduino IDE Tools / Serial Monitor.

+++ Persediaan.

+ Memulakan penerima inframerah. ++ Pergi ke gelung. + Kekunci OK - Toggle + Key> - Next + Key <- sebelumnya + Key up + Key down + Key 1: + Key 2: + Key 3: + Key 4: + Key 6: + Key 7: + Key 8: + Kekunci 9: + Kekunci 0: + Kekunci * (Kembali) + Kekunci # (Keluar)

Sebagai latihan, gunakan alat kawalan jauh TV untuk melihat nilai yang dicetak. Anda kemudian boleh mengubah suai program untuk menggunakan nilai dalam pernyataan suis fungsi infraredSwitch (). Sebagai contoh, tekan kekunci "0" dan dapatkan nilai untuk alat kawalan jauh anda, sebagai contoh, "0xE0E08877". Kemudian, tambahkan casing ke dalam pernyataan beralih seperti dalam coretan kod berikut.

kes 0xFF9867:

kes 0xE0E08877: Serial.print ("+ Kunci 0:"); Serial.println (""); rehat;

Langkah 3: Buat Kad SD Mico dari Fail MP3

Oleh kerana DFPlayer adalah perkakasan kecil yang murah, ia menguruskan fail dan folder dengan cara yang sederhana. Saya mempunyai hasil yang beragam ketika memainkan fail MP3 yang tidak mengikuti format yang disyorkan berikut, dan oleh itu, saya mengesyorkan yang berikut. Juga, saya belum menguji pilihan lain, seperti nama fail 3 digit (contoh: 003.mp3), namun saya telah melihat nama fail 3 digit yang digunakan dalam arahan dan sampel lain.

Berikut adalah format nama direktori dan folder nama yang disyorkan:

  • Nama folder lalai adalah MP3, diletakkan di bawah direktori root kad SD: SD: / MP3. Folder ini menjadi pilihan semasa menggunakan beberapa folder.
  • Pemain juga akan memainkan fail MP3 di direktori root.
  • Semasa menggunakan beberapa folder, gunakan nama folder: 01, 02, 03,…, 99.
  • Nama fail mp3 harus 4 digit dengan "0001.mp3" sebagai peluasan, misalnya, "0001.mp3".
  • Fail boleh diletakkan di folder MP3 atau di salah satu dari beberapa folder.
  • Nama Fail: 0001.mp3 hingga 0255.mp3. Perhatikan, pemain akan memainkan fail MP3 dengan nama lain juga.
  • Anda boleh menambahkan aksara selepas digit, misalnya, "0001hello.mp3".

Sebaiknya anda memformat kad sebelum menambahkan fail. Ini memastikan bahawa kad itu bersih dari fail sistem. Format menggunakan FAT32 MS-DOS.

Pada Mac, gunakan utiliti cakera untuk memformat cakera: Aplikasi> Utiliti> buka Utiliti Disk.

Klik pada kad SD, contoh: APPLE SD Card Reader Media / MUSICSD. Klik item menu, Padam. Tetapkan nama, contoh: MUSICSD. Pilih: MS-DOS (Lemak). Klik Padam.

Cakera dibersihkan dan diformat.

Saya menulis program Java yang akan menyalin direktori file MP3 ke dalam direktori tujuan, menggunakan nama direktori dan file yang berfungsi dengan modul DFPlayer. Untuk menjalankan program, anda memerlukan Java JRE dipasang. Berikut adalah output bantuan program.

$ java -jar mp3player.jar

+++ Mula, program salinan modul DFPlayer. Sintaks: java -jar mp3player.jar copy [(IN: direktori MP3) (OUT: direktori MP3)] ---------------------- Program ini menyalin direktori fail MP3 untuk membuat direktori lain fail MP3 menggunakan menggunakan direktori dan nama fail yang berfungsi dengan modul DFPlayer. Sebelum menjalankan program ini, + Buat direktori fail MP3 anda. + Buat direktori tujuan. + Direktori tujuan adalah tempat fail MP3 akan disalin ke, ++ menggunakan direktori nombor digit dan nama fail. + Direktori destinasi anda mesti kosong. + Sekiranya terdapat fail di dalamnya, hapus fail dan direktori. ---------------------- + Jalankan program ini. + Sintaks: java -jar mp3player.jar copy [(IN: Direktori MP3) (OUT: Direktori MP3)] + Sintaks menggunakan default: java -jar mp3player.jar copy + Nama direktori lalai: mp3player1 dan mp3player2. + Sama seperti: java -jar mp3player.jar copy mp3player1 mp3player2. ---------------------- + Masukkan kad SD ke dalam komputer anda. + Padamkan direktori dan fail dari kad SD. + Kosongkan sampah kerana fail masih ada di kad SD dan modul DFPlayer mungkin memainkannya. + Salin direktori dan fail baru ke kad SD. + Keluarkan kad dari komputer. ---------------------- + Masukkan kad ke dalam modul DFPlayer. + Kad siap dimainkan

Untuk melihat kod sumber, klik di sini. Klik di sini, untuk memuat turun fail program JAR yang boleh anda jalankan.

Untuk rujukan

Pada Mac, dari baris arahan, anda boleh menjalankan yang berikut.

Senarai untuk mencari kad.

senarai $ diskutil

… / Dev / disk3 (dalaman, fizikal): #: IDENTIFIER SAIZ NAMA JENIS 0: FDisk_partition_scheme * 4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls / Volume / MUSICSD

Salin fail mengikut kad SD. Oleh kerana DFPlayer mungkin menyusun pada cap waktu, salin fail mengikut urutan nama fail.

Bersihkan fail tersembunyi yang boleh menyebabkan masalah (rujukan:

$ dot_clean / Volume / MUSICSD

Kad SD anda kini siap digunakan. Masukkan ke dalam modul DFPlayer anda.

Langkah 4: Kawat dalam Modul DFPlayer yang Memainkan Fail MP3

Kawat dalam Modul DFPlayer yang Memainkan Fail MP3
Kawat dalam Modul DFPlayer yang Memainkan Fail MP3
Kawat dalam Modul DFPlayer yang Memainkan Fail MP3
Kawat dalam Modul DFPlayer yang Memainkan Fail MP3
Kawat dalam Modul DFPlayer yang Memainkan Fail MP3
Kawat dalam Modul DFPlayer yang Memainkan Fail MP3

Saya telah memisahkan sambungan menjadi 3 bahagian: komunikasi bersiri, kuasa, dan pembesar suara / suara.

1. Sambungkan pin Arduino RX / TX ke modul DFPlayer. Sambungkan wayar antara Arduino pin 10 dan DFPlayer pin 3 (TX). Sambungkan resister, saya menggunakan resister 5K dari DFPlayer pin 2 (RX), ke baris kosong antara Arduino dan DFPlayer. Sambungkan wayar dari pin Nano 11 ke resis 5K. Resister 5K menghilangkan kebisingan yang ada ketika tidak menggunakan resister.

2. Sambungkan pin ground (GND) modul DFPlayer, ke jalur bar tanah papan roti. Sambungkan pin kuasa (VCC) modul DFPlayer, ke jalur bar positif papan roti.

3. Sekiranya anda mempunyai satu pembesar suara kecil, sambungkan ke pin 6 (SPK-) dan 8 (SPK +) seperti pada foto di atas dengan Nano.

Pin Mini DFPlayer

Di Arduino IDE, pasang pustaka DFPlayer. Pilih Alat / Urus Perpustakaan. Tapis carian anda dengan menaip 'DFRobotDFPlayerMini'. Pilih DFRobotDFPlayerMini oleh perpustakaan pemain mini DFRobot (untuk rujukan, pautan perpustakaan). Untuk pelaksanaan saya, saya memuatkan versi 1.0.5.

Sebagai rujukan, pautan perpustakaan. Dan pautan halaman wiki DFPlayer.

Muatkan fail MP3 ke kad SD mikro. Anda boleh mempunyai lagu di direktori yang berasingan. Masukkan kad SD ke dalam DFPlayer.

Muat turun dan jalankan program pemain MP3: mp3infrared.ino. Semasa menjalankan program, arahkan alat kawalan jauh anda ke penerima dan tekan butang oke untuk mula memainkan lagu pertama. Apabila ia mula dimainkan, lampu biru DFPlayer akan menyala, dan tetap menyala, semasa fail dimainkan.

Konfigurasi Lanjutan

Saya telah membina komputer emulator Altair 8800 yang menggunakan Arduino Mega. Semasa saya menambahkan DFPlayer terdapat banyak bunyi. Untuk menghilangkan kebisingan, saya menggunakan bekalan kuasa yang berasingan untuk DFPlayer. Mega mempunyai satu bekalan kuasa, dan menghantar isyarat kawalan bersiri ke DFPlayer. DFPlayer mempunyai bekalan kuasa lain, dan menerima dan menerapkan isyarat kawalan bersiri dari Mega.

Dalam foto di atas, hab mini USB putih emulator Altair memberi kuasa kepada Mega dan disambungkan ke hab mini hitam komputer riba. DFPlayer mempunyai kabel USB yang menghubungkannya terus ke hab mini hitam komputer riba. Konfigurasi ini menghilangkan kebisingan yang ada ketika DFPlayer diaktifkan melalui hab mini putih emulator.

Klik di sini, untuk kod yang dikonfigurasi untuk Mega. Versi kod itu menggunakan pin Mega RX / TX, di mana sebagai Nano atau Uno menggunakan pin port bersiri perisian.

Berikut adalah untuk rujukan

Sambungan yang digunakan dengan Arduino, 1. UART bersiri, RX untuk menerima arahan kawalan DFPlayer. RX: input menyambung ke TX pada Mega / Nano / Uno. TX untuk menghantar maklumat keadaan. TX: output menyambung ke RX pada Mega / Nano / Uno. Sambungan untuk Nano atau Uno: RX (2) untuk menghantar semula ke pin perisian siri 11 (TX). TX (3) ke pin perisian siri 10 (RX). Sambungan untuk Mega: RX (2) untuk mendaftar semula ke Serial1 pin 18 (TX). TX (3) hingga Serial1 pin 19 (RX). 2. Pilihan kuasa. Sambung dari Arduino terus ke DFPlayer: VCC hingga + 5V. Perhatikan, juga berfungsi dengan + 3.3V untuk NodeMCU. GND ke tanah (-). Gunakan sumber kuasa yang sama sekali berbeza: VCC hingga + 5V dari sumber kuasa yang lain. GND ke tanah (-) sumber kuasa lain. Saya melihat pilihan kuasa lain: Dari Arduino + 5V, gunakan 7805 dengan kapasitor dan diod ke pin DFPlayer VCC. GND ke tanah (-). 3. Keluaran pembesar suara. Untuk pembesar suara tunggal, kurang dari 3W: SPK - ke pin pembesar suara. SPK + ke pin pembesar suara yang lain. Untuk output ke stearo amp atau telefon telinga: DAC_R ke output kanan (+) DAC_L ke output kiri (+) GND ke output tanah.

Mengikuti panggilan fungsi perpustakaan utama. Pautan ke halaman wiki DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play (1); // Mainkan mp3 pertama myDFPlayer.pause (); // jeda mp3 myDFPlayer.start (); // mulakan mp3 dari jeda ------------------------------ myDFPlayer.next (); // Mainkan mp3 seterusnya myDFPlayer.pre sebelumnya (); // Mainkan mp3 sebelumnya ------------------------------ myDFPlayer.playMp3Folder (4); // mainkan mp3 khusus dalam SD: /MP3/0004.mp3; Nama Fail (0 ~ 65535) myDFPlayer.playFolder (15, 4); // mainkan mp3 khusus dalam SD: /15/004.mp3; Nama Folder (1 ~ 99); Nama Fail (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // mainkan mp3 khusus dalam SD: /02/004.mp3; Nama Folder (1 ~ 10); Nama Fail (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Gelung mp3 pertama myDFPlayer.enableLoop (); // aktifkan gelung. myDFPlayer.disableLoop (); // lumpuhkan gelung. myDFPlayer.loopFolder (5); // gelung semua fail mp3 dalam folder SD: / 05. myDFPlayer.enableLoopAll (); // gelung semua fail mp3. myDFPlayer.disableLoopAll (); // hentikan gelung semua fail mp3. ------------------------------ myDFPlayer.volume (10); // Tetapkan nilai isipadu. Dari 0 hingga 30 myDFPlayer.volumeUp (); // Naikkan volume myDFPlayer.volumeDown (); // Kelantangan Kelantangan ------------------------------ myDFPlayer.setTimeOut (500); // Tetapkan masa komunikasi bersiri 500ms myDFPlayer.reset (); // Tetapkan semula modul ------------------------------ Serial.println (myDFPlayer.readState ()); // baca keadaan mp3 Serial.println (myDFPlayer.readVolume ()); // baca jilid semasa Serial.println (myDFPlayer.readEQ ()); // baca tetapan EQ Serial.println (myDFPlayer.readFileCounts ()); // baca semua jumlah fail dalam kad SD Serial.println (myDFPlayer.readCurrentFileNumber ()); // baca nombor fail main semasa Serial.println (myDFPlayer.readFileCountsInFolder (3)); // baca jumlah isi dalam folder SD: / 03 ------------------------------ myDFPlayer.available ()

Langkah 5: Bekalan Kuasa Luaran

Image
Image
Bekalan Kuasa Luaran
Bekalan Kuasa Luaran
Bekalan Kuasa Luaran
Bekalan Kuasa Luaran

Setelah pemain MP3 anda diuji dan berfungsi, anda boleh mencabutnya dari komputer dan menggunakannya dengan bekalan kuasa bebas. Untuk kesederhanaan, saya menggunakan penyesuai dinding 5 volt, yang boleh dibeli dengan harga lebih kurang satu dolar, dan kabel USB, satu dolar lagi. Kabel menghubungkan Arduino ke penyesuai dinding + 5V. Oleh kerana pin Arduino dan pin tanah disambungkan ke papan roti, itu akan menggerakkan komponen lain. Oleh kerana kesederhanaan dan kos rendah, saya menggunakan kombinasi yang sama untuk menggerakkan projek lain.

Foto di sebelah kanan dan video menunjukkan pemain yang bersambung dengan amp saya $ 40 duduk di pembesar suara Bose kanan di meja saya. Ini sistem muzik desktop saya: Pemain MP3 Arduino, amp Audio Douk, dan 2 pembesar suara Bose. Kualiti bunyi yang baik.

Saya harap anda berjaya dan menikmati pembinaan pemain muzik MP3 anda sendiri.

Langkah 6: Hilangkan Kebisingan Statik

Pada kelantangan rendah, ada suara statik latar belakang yang menjengkelkan. Kebisingan tidak apa-apa ketika kelantangan DFPlayer lebih tinggi dan muzik dimainkan. Tetapi ketika muziknya sunyi, statisnya ada.

Saya menjumpai halaman StackExchage yang mempunyai banyak cadangan. Perkara berikut berfungsi untuk saya:

  • Sambungkan wayar pendek antara pin ground DFPlayer: pin 7 hingga 10.
  • Gunakan palam dinding USB (5V) yang berasingan untuk menghidupkan modul DFPlayer.
  • Sambungkan ground plug dinding ke ground Arduino. Ini diperlukan agar kerja kawalan bersiri antara Arduino dan pemain.

Perkara di atas diuji pada emulator Altair 8800 saya yang saya tingkatkan dengan DFPlayer untuk memainkan muzik. Pemain dikendalikan dengan membalikkan togol panel depan.

Disyorkan: