Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Lecteur Mp3 Arduino Catalex

Composants et fournitures

Arduino UNO
× 1
Lecteur MP3 série de catalex
× 1
De la bonne musique funk
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Comment utiliser SERIAL MP3 PLAYER V1.0 de CATALEX :

  • Tout d'abord, téléchargez les bibliothèques comme d'habitude :
#include   
  • Maintenant, nous choisissons quelles broches Arduino vont être attachées au lecteur mp3 et initialisons le protocole série.
#define ARDUINO_RX 5//devrait se connecter au TX du module Serial MP3 Player #define ARDUINO_TX 6//connecter au RX du module SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init le protocole série, dites à myserial dont les broches sont TX et RX  
  • Ici je viens de traduire en #define les éléments de la fiche technique :
////////////////////////////////////////// ///////////////////////////////////// //toutes les commandes nécessaires dans la feuille de données( http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) static int8_t Send_buf[8] ={0};//Le lecteur MP3 comprend les commandes dans une chaîne de 8 int //0X7E FF 06 commande 00 00 00 EF; (si commande =01 ordre de la chanson suivante) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DONNÉES REQUISES (numéro de chanson) #define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_ONE 0X05 #define CMDX_SET_ONE 0X05 #define CMDX_SET_ de volume de 0 à 30 (0x1E)) #define SET_DAC 0X17 #define CMD_PLAY_WITHVOLUME 0X22 //les données sont nécessaires 0x7E 06 22 00 xx yy EF;(xx volume)(yy nombre de chanson) #define CMD_SEL_DEV 0X09 //SELECT STORAGE APPAREIL, LES DONNÉES SONT REQUISES #define DEV_TF 0X02 //BONJOUR,IM LES DONNÉES REQUISES #define SLEEP_MODE_START 0X0A #define SLEEP_MODE_WAKEUP 0X0B #define CMD_RESET 0X0C//CHIP RESET #define CMD_PLAY 0X0D //REPRENDRE CMD_PLAYBACK LA LECTURE EST EN PAUSE #define CMD_PLAY_WITHFOLDER 0X0F//DONNÉES NÉCESSAIRES, 0x7E 06 0F 00 01 02 EF;(jouez la chanson avec le répertoire \01\002xxxxxx.mp3 #define STOP_PLAY 0X16 #define PLAY_FOLDER 0X17// les données sont nécessaires 0x7E 06 17 00 01 XX EF ; (lire le dossier 01) (valeur xx on s'en fiche) #define SET_CYCLEPLAY 0X19//data est nécessaire 00 start ; 01 fermer #define SET_DAC 0X17//données nécessaires 00 démarrer DAC OUTPUT;01 DAC pas de sortie //////////////////////////// ////////////////////////////////////////////////////////////// ////
  • La puce MP3 prend en charge les commandes faites de tableau int[8] avec ce format
0x7E FF aa bb 00 xx yy EF  

Où :

  • le premier et le dernier int sont fixés avec les valeurs 0x7E et 0xEF
  • aa est le numéro de version, il suffit de mettre 0x06 ;
  • bb est la commande de contrôle réelle répertoriée au point précédent
  • xx est le premier bit de données
  • aa est le deuxième int des données

Et c'est la fonction réelle qui construit le tableau. Il suffit de choisir l'un des #defined commandes et mettre la valeur des données.

void sendCommand(int8_t command, int16_t dat) { delay(20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //octet de fin pour(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]) ; } }  

Dans la fonction de configuration, nous devons sélectionner le périphérique approprié pour TF et lui donner le temps de s'installer (magie de processus asynchrone) :

void setup() { mySerial.begin(9600) ; // Démarrez nos communications série pour notre moniteur série ! délai (500); // Attendre que l'initialisation de la puce soit terminée sendCommand (CMD_SEL_DEV, DEV_TF); // sélectionner le délai de la carte TF (200); // attendre 200 ms }  

Dans la boucle, j'ai fait une simple lecture de la chanson intitulée 001 :

void loop() { sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01); // joue la première chanson avec un délai de classe de volume 15 (1000000); // le programme enverra l'option de lecture toutes les 100 secondes à la puce catalex }  

Comment télécharger des chansons sur la carte SD :

Comme on dit dans la fiche technique avec un très mauvais anglais :

La puce MP3 lit le .mp3 ou .wav indexé par ordre alphabétique, donc si on crée des dossiers avec les noms 01, 02. Et des chansons avec le nom 001xxxxx.mp3 , 002xxxx.mp3 . Nous pouvons être sûrs du morceau/dossier que nous utilisons.

Ici, vous avez une bibliothèque de sons gratuite.

BON PIRATAGE !

EXTRA :
même code mais en utilisant une série matérielle (je devais le faire pour ma carte STM32)

Code

  • TESTER l'appareil
TESTEZ l'appareilArduino
initialisez et jouez une chanson avec le volume 30
//code réarrangé par Javier Muñoz 10/11/2016 demandez-moi à [email protected]#include #define ARDUINO_RX 5//devrait se connecter au TX du Module lecteur MP3 série#define ARDUINO_TX 6//connectez-vous au RX du moduleSoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX); //initez le protocole série, dites à myserial quelles broches sont TX et RX/////////// ////////////////////////////////////////////////////////////// ////////////////////////toutes les commandes nécessaires dans la fiche technique (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Le lecteur MP3 comprend les ordres dans une chaîne de 8 int //0X7E FF 06 command 00 00 00 EF;(if command =01 next song order) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DONNÉES REQUISES (numéro de chanson)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06//DONNÉES REQUISES (nombre de volume de 0# à 30(0x1E_def)#define CM D_PLAY_WITHVOLUME 0X22 //les données sont nécessaires 0x7E 06 22 00 xx yy EF;(xx volume)(yy numéro de la chanson)#define CMD_SEL_DEV 0X09 //SELECTIONNER LE DISPOSITIF DE STOCKAGE, LES DONNÉES SONT REQUISES #define DEV_TF 0X02 //BONJOUR, IM LES DONNÉES REQUISES #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_RESET 0X0C//CHIP RESET#define CMD_PLAY 0X0D //REPRENDRE LA LECTURE#define CMD_PAUSE 0X0E //LA LECTURE EST EN PAUSE#define ISITHFED/PLAY_WEF 0;(joue la chanson avec le répertoire \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// les données sont nécessaires 0x7E 06 17 00 01 XX EF;(joue le dossier 01)(valeur xx on s'en fiche)#define SET_CYCLEPLAY 0X19 // les données sont nécessaires 00 début ; 01 close#define SET_DAC 0X17//les données sont nécessaires 00 start DAC OUTPUT;01 DAC aucune sortie //////////////////////// ////////////////////////////////////////////////////////////// ////void setup(){ Serial.begin(9600);//Démarrez nos coms série pour le moniteur série dans notre pcmySerial.begin(9600);//Démarrez nos coms série pour LE MP3delay(500);//Attendez l'initialisation de la puce est terminée sendCommand (CMD_SEL_DEV, DEV_TF); // sélectionnez le délai de la carte TF (200); // attendez 200 ms} boucle vide () {sendCommand (CMD_PLAY_WITHVOLUME, 0X0F01); // jouez la première chanson avec le délai de classe du volume 15 (1000000);//le programme enverra l'option de lecture toutes les 100 secondes à la puce catalex}void sendCommand(int8_t command, int16_t dat){ delay(20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; // octet de fin pour(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]) ;//envoie le bit au mp3 série Serial.print(Send_buf[i],HEX);/ /Envoyer le bit au moniteur série du PC } Serial.println();}

Schémas

Sur la fiche technique on peut voir que l'alimentation peut varier de 3,2 jusqu'à 5v
avec une consommation de 200mA

Processus de fabrication

  1. Piano joueur
  2. Collez ces morceaux de maintenance sur votre lecteur MP3
  3. Construire une poupée Squid Games avec Arduino UNO
  4. Arduino Spybot
  5. FlickMote
  6. Téléviseur maison B-Gone
  7. horloge maîtresse
  8. Trouvez-moi
  9. Puissance Arduino