Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pemutar Mp3 Arduino Catalex

Komponen dan persediaan

Arduino UNO
× 1
Pemutar MP3 serial dari catalex
× 1
Musik funk yang bagus
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Cara menggunakan SERIAL MP3 PLAYER V1.0 dari CATALEX:

  • Pertama, unduh perpustakaan seperti biasa:
#include   
  • Sekarang kita memilih pin Arduino mana yang akan dilampirkan ke pemutar mp3 dan menginisialisasi protokol serial.
#define ARDUINO_RX 5//harus terhubung ke TX modul Serial MP3 Player #define ARDUINO_TX 6//hubungkan ke RX modul SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init protokol serial, beri tahu ke myserial yang pinnya TX dan RX  
  • Di sini saya baru saja menerjemahkan ke #define barang-barang dari lembar data:
////////////////////////////////////////////////////// /////////////////////////////////////// //semua perintah yang dibutuhkan dalam datasheet( http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) static int8_t Send_buf[8] ={0};//Pemutar MP3 tidak memahami perintah dalam string 8 int //0X7E FF 06 perintah 00 00 00 EF; (if command =01 urutan lagu berikutnya) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA DIPERLUKAN (jumlah lagu) #define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_DOWN_ONE 0X05 IS volume dari 0 hingga 30(0x1E)) #define SET_DAC 0X17 #define CMD_PLAY_WITHVOLUME 0X22 //data diperlukan 0x7E 06 22 00 xx yy EF;(xx volume)(yy jumlah lagu) #define CMD_SEL_DEV 0X09 //PILIH PENYIMPANAN PERANGKAT, DATA DIPERLUKAN #define DEV_TF 0X02 //HELLO,IM DATA DIPERLUKAN #define SLEEP_MODE_START 0X0A #define SLEEP_MODE_WAKEUP 0X0B #define CMD_RESET 0X0C//CHIP RESET #define 0X CMD_PLAYUM PEMUTAR ULANG DIJEDA #define CMD_PLAY_WITHFOLDER 0X0F//DATA DIPERLUKAN, 0x7E 06 0F 00 01 02 EF;(memutar lagu dengan direktori \01\002xxxxxx.mp3 #define STOP_PLAY 0X16 #define PLAY_FOLDER diperlukan 06 17 0x17// E 00 01 XX EF;(memutar folder 01)(nilai xx kami tidak peduli) #define SET_CYCLEPLAY 0X19//data diperlukan 00 mulai; 01 close #define SET_DAC 0X17//data diperlukan 00 mulai DAC OUTPUT;01 DAC tidak ada output //////////////////////////// ////////////////////////////////////////////////////////////////// ////  
  • Chip MP3 tidak memahami perintah yang dibuat dari array int[8] dengan format ini
0x7E FF aa bb 00 xx yy EF  

Dimana:

  • int pertama dan terakhir diperbaiki dengan nilai 0x7E dan 0xEF
  • aa adalah nomor versi, cukup masukkan 0x06;
  • bb adalah perintah kontrol sebenarnya yang tercantum di poin sebelumnya
  • xx adalah data pertama
  • yy adalah data kedua

Dan ini adalah fungsi aktual yang membangun array. Kita hanya perlu memilih salah satu dari #defined perintah dan masukkan nilai data.

void sendCommand(int8_t command, int16_t dat) { delay(20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada umpan balik, 0x01 =umpan balik Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]); } }  

Ke dalam fungsi pengaturan, kita perlu memilih perangkat yang tepat untuk TF dan memberinya waktu untuk menyelesaikan (proses ajaib asinkron):

void setup() { mySerial.begin(9600);//Mulai Serial com untuk monitor serial kita! delay(500);//Tunggu inisialisasi chip selesai sendCommand(CMD_SEL_DEV, DEV_TF);//pilih penundaan kartu TF(200);//tunggu 200ms }  

Dalam pengulangan, saya memainkan lagu sederhana berlabel 001:

void loop() { sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01);//memutar lagu pertama dengan penundaan kelas volume 15(1000000);//program akan mengirimkan opsi putar setiap 100 detik ke chip catalex }  

Cara mengunggah lagu ke kartu SD:

Seperti yang mereka katakan di lembar data dengan bahasa Inggris yang sangat buruk:

Chip Mp3 membaca .mp3 atau .wav diindeks abjad, jadi jika kita membuat folder dengan nama 01, 02. Dan lagu dengan nama 001xxxxx.mp3 , 002xxxx.mp3 . Kami yakin dengan lagu/folder yang kami gunakan.

Di sini Anda memiliki perpustakaan suara gratis.

SELAMAT MERETAK!

EKSTRA:
kode yang sama tetapi menggunakan serial perangkat keras (saya harus melakukannya untuk papan STM32 saya)

Kode

  • UJI perangkat
UJI perangkatArduino
initialice dan mainkan satu lagu dengan volume 30
//code disusun ulang oleh Javier Muñoz 10/11/2016 tanya saya di [email protected]#include #define ARDUINO_RX 5//harus terhubung ke TX dari Modul Serial MP3 Player#define ARDUINO_TX 6//sambungkan ke RX dari modulSoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init serial protocol, beri tahu myserial yang pinnya TX dan RX/////////// ////////////////////////////////////////////////////////////////// ////////////////////////semua perintah yang diperlukan dalam lembar data(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)statis int8_t Send_buf[8] ={0};//Pemutar MP3 tidak memahami perintah dalam string 8 int //0X7E FF 06 perintah 00 00 00 EF;(jika perintah =01 urutan lagu berikutnya) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA DIPERLUKAN (jumlah lagu)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06//DATA DIPERLUKAN (jumlah volume dari 0E hingga 30)#define 0E hingga 30 cm D_PLAY_WITHVOLUME 0X22 //data dibutuhkan 0x7E 06 22 00 xx yy EF;(xx volume)(yy jumlah lagu)#define CMD_SEL_DEV 0X09 //PILIH PERANGKAT PENYIMPANAN, DATA DIBUTUHKAN #define DEV_TF 0X02 //HALO,IM DATA REQUIRED #menentukan SLEEP_MODE_START 0X0A#menentukan SLEEP_MODE_WAKEUP 0X0B#menentukan CMD_RESET 0X0C//CHIP RESET#menentukan CMD_PLAY 0X0D //LANJUTKAN PEMUTARAN#menentukan CMD_PAUSE 0X0E //FLAYBACK IS DIJEDA_#define;(memutar lagu dengan direktori \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// diperlukan data 0x7E 06 17 00 01 XX EF;(mainkan folder 01)(nilai xx kami tidak peduli)#define SET_CYCLEPLAY 0X19//data diperlukan 00 mulai; 01 close#define SET_DAC 0X17//data diperlukan 00 mulai DAC OUTPUT;01 DAC tidak ada output//////////////////////////// ////////////////////////////////////////////////////////////////// ////void setup(){ Serial.begin(9600);//Mulai serial coms kami untuk serial monitor di pcmySerial.begin(9600);//Mulai serial coms kami untuk THE MP3delay(500);//Tunggu inisialisasi chip selesai sendCommand(CMD_SEL_DEV, DEV_TF);//pilih penundaan kartu TF(200);//tunggu 200ms}void loop(){sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01);//memutar lagu pertama dengan volume 15 classdelay (1000000);//program akan mengirimkan opsi putar setiap 100 detik ke chip catalex}void sendCommand(int8_t command, int16_t dat){ delay(20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada umpan balik, 0x01 =umpan balik Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//send bit to serial mp3 Serial.print(Send_buf[i],HEX);/ /send bit to serial monitor di pc } Serial.println();}

Skema

Pada lembar data kita dapat melihat catu daya dapat bervariasi 3,2 hingga 5v
dengan konsumsi 200mA

Proses manufaktur

  1. Pemain Piano
  2. Pasang lagu pemeliharaan ini di pemutar MP3 Anda
  3. Membuat Boneka Permainan Squid menggunakan Arduino UNO
  4. Arduino Spybot
  5. FlickMote
  6. TV Buatan Sendiri B-Gone
  7. Jam Master
  8. Temukan Saya
  9. Arduino Power
  10. Putar audio di Arduino