Table des matières:

Lecteur MP3 contrôlé par infrarouge : 6 étapes (avec photos)
Lecteur MP3 contrôlé par infrarouge : 6 étapes (avec photos)

Vidéo: Lecteur MP3 contrôlé par infrarouge : 6 étapes (avec photos)

Vidéo: Lecteur MP3 contrôlé par infrarouge : 6 étapes (avec photos)
Vidéo: Comment contrôler un lecteur DVD avec un téléphone 2024, Novembre
Anonim
Image
Image
Lecteur MP3 contrôlé par infrarouge
Lecteur MP3 contrôlé par infrarouge

Construisez un lecteur MP3 à télécommande infrarouge pour environ 10 $ (USD). Il possède les fonctionnalités habituelles: lecture, pause, lecture suivante ou précédente, lecture d'une seule chanson ou de toutes les chansons. Il a également des variations d'égaliseur et un contrôle du volume. Le tout contrôlable via une télécommande.

Fonctionnalité programmée:

Clé à distance: Fonction

+ 01: Baisser le volume + 02: Régler sur le répertoire #2. + 03: Augmenter le volume + 4…9: Sélectionnez les paramètres d'égaliseur suivants: ++ (4)DFPLAYER_EQ_POP (5)DFPLAYER_EQ_CLASSIC (6)DFPLAYER_EQ_NORMAL ++ (7)DFPLAYER_EQ_ROCK (8)DFPLAYER_EQ_JAZZ (9)DFPLAYER_EQ_BASS + OK: Pause + OK: Lecture + >>: Lecture suivante + <<: Lecture précédente + Haut: Lecture des chansons du répertoire suivantes + Dn: Lecture des chansons du répertoire précédent + *|Return: Lecture en boucle d'une seule chanson: activé + #|Sortie: Lecture en boucle d'une seule chanson: désactivée

La première étape consiste à tester l'Arduino et à le câbler à la maquette. Les étapes suivantes sont conçues pour fonctionner de manière indépendante. Chaque étape comporte des instructions de câblage et des instructions de test. Lorsque je crée des projets, je câble et teste chaque composant pour confirmer qu'ils fonctionnent. Cela aide à intégrer les composants car sachez que chacun travaille et que je peux me concentrer sur les exigences d'intégration.

Ce Instructable nécessite que vous ayez installé l'IDE Arduino. Vous devez également avoir les compétences de base pour télécharger un programme d'esquisse Arduino à partir des liens de ce projet, créer un répertoire pour le programme (nom de répertoire identique au nom du programme). Les prochaines étapes consistent à charger, afficher et éditer le programme dans l'IDE. Ensuite, téléchargez le programme via un câble USB sur votre carte Arduino.

Fournitures

  • Carte micro contrôleur Nano V3 ATmega328P CH340G pour Arduino. Comme alternative, vous pouvez utiliser un Uno.
  • Récepteur infrarouge et télécommande. J'ai utilisé un kit de module de télécommande sans fil IR fourni avec un récepteur infrarouge et une télécommande infrarouge.
  • Une résistance, 1K à 5K. J'utilise une résistance 5K car j'en ai un tas. La résistance supprime le bruit qui existe lorsque vous n'utilisez pas la résistance.
  • Câbles de fil de planche à pain
  • Adaptateur mural 5 volts

J'ai acheté les pièces sur eBay, principalement auprès de distributeurs de Hong Kong ou de Chine. Les distributeurs américains proposent parfois des pièces identiques ou similaires à des prix raisonnables et une livraison plus rapide. Les pièces en Chine prennent de 3 à 6 semaines pour être livrées. Les distributeurs que j'ai utilisés ont tous été fiables.

Coûts approximatifs: Nano 3 $, kit infrarouge 1 $, planche à pain 2 $, paquet de 40 câbles métalliques 1 $, 1 $ pour un adaptateur mural 5 volts. Total, environ 8 $. Remarque, j'ai acheté le Nano avec les broches de la planche à pain déjà soudées en place, car mes compétences en soudure sont médiocres.

Étape 1: ajouter l'Arduino Nano à la planche à pain

Ajouter l'Arduino Nano à la planche à pain
Ajouter l'Arduino Nano à la planche à pain

Branchez l'Arduino Nano sur la planche à pain. Ou, si vous préférez, vous pouvez utiliser un Arduino Uno pour ce projet; ils utilisent tous les deux les mêmes broches pour ce projet. Connectez le Nano (ou Uno) à votre ordinateur via un câble USB.

Connectez l'alimentation et la terre de l'Arduino à la barre d'alimentation de la planche à pain. Connectez la broche Arduino 5+ à la barre positive de la maquette. Connectez la broche Arduino GRN (terre) à la barre négative (terre) de la maquette. Il sera utilisé par d'autres composants.

Téléchargez et exécutez le programme de test Arduino de base: arduinoTest.ino. Lors de l'exécution du programme, le voyant LED intégré s'allumera pendant 1 seconde, puis s'éteindra pendant 1 seconde. En outre, des messages sont publiés et peuvent être consultés dans les outils Arduino IDE/Serial Monitor.

+++ Configuration.

+ Initialisation de la broche numérique LED intégrée pour la sortie. La LED est éteinte. ++ Aller à la boucle. + Compteur de boucles = 1 + Compteur de boucles = 2 + Compteur de boucles = 3 …

À titre d'exercice, modifiez la temporisation du voyant clignotant, téléchargez le programme modifié et confirmez le changement.

Sur la photo ci-dessus se trouve une boîte de kit de câbles de cavalier sans soudure de 140 pièces que vous pouvez obtenir pour 3 à 5 dollars. Ils fabriquent des cartes plus propres qu'en utilisant de longs câbles pour des connexions courtes.

Étape 2: ajoutez le récepteur infrarouge et connectez-le à l'Arduino

Ajoutez le récepteur infrarouge et connectez-le à l'Arduino
Ajoutez le récepteur infrarouge et connectez-le à l'Arduino

Branchez les fils du câble femelle à mâle dans le récepteur infrarouge (extrémités femelles). Connectez la broche de mise à la terre du module d'horloge à la barre de mise à la terre de la planche à pain. Connectez la broche d'alimentation du module d'horloge à la bande de barre positive de la planche à pain. Connectez la broche de sortie du récepteur infrarouge à la broche Arduino A1.

Connectez le récepteur infrarouge, les broches du haut à gauche vers la droite:

Le plus à gauche (à côté du X) - Nano broche A1 Centre - 5V Droite - masse A1 + - - Connexions à nano broches | | | - Broches du récepteur infrarouge --------- |S | | | | --- | | | | | | --- | | | ---------

Dans l'IDE Arduino, installez une bibliothèque infrarouge. Sélectionnez Outils/Gérer les bibliothèques. Filtrez votre recherche en tapant « IRremote ». Sélectionnez IRremote par Shirriff (pour référence, le lien de la bibliothèque GitHub). Informations sur la bibliothèque Arduino Lien vers la bibliothèque IRremote.

Téléchargez et exécutez le programme de test de base: infrarougeReceiverTest.ino. Lors de l'exécution du programme, pointez votre télécommande vers le récepteur et appuyez sur divers boutons tels que le nombre de 0 à 9. Des messages série sont émis (imprimés) et peuvent être visualisés dans les outils Arduino IDE/Serial Monitor.

+++ Configuration.

+ Initialisé le récepteur infrarouge. ++ Aller à la boucle. + Touche OK - Bascule + Touche > - suivant + Touche < - précédent + Touche haut + Touche bas + Touche 1: + Touche 2: + Touche 3: + Touche 4: + Touche 6: + Touche 7: + Touche 8: + Touche 9: + Touche 0: + Touche * (Retour) + Touche # (Sortie)

À titre d'exercice, utilisez une télécommande de télévision pour voir les valeurs imprimées. Vous pouvez ensuite modifier le programme pour utiliser les valeurs de l'instruction switch de la fonction infrarougeSwitch(). Par exemple, appuyez sur la touche "0" et obtenez la valeur de votre télécommande, par exemple "0xE0E08877". Ensuite, ajoutez un cas dans l'instruction switch comme dans l'extrait de code suivant.

cas 0xFF9867:

case 0xE0E08877: Serial.print("+ Key 0:"); Serial.println(""); Pause;

Étape 3: Créez une carte SD Mico de fichiers MP3

Étant donné que le DFPlayer est un petit matériel peu coûteux, il gère les fichiers et les dossiers de manière simpliste. J'ai eu des résultats mitigés lors de la lecture de fichiers MP3 qui ne respectent pas les formats recommandés suivants, et par conséquent, je recommande ce qui suit. De plus, je n'ai pas testé d'autres options, telles que les noms de fichiers à 3 chiffres (exemple: 003.mp3), mais j'ai vu des noms de fichiers à 3 chiffres utilisés dans d'autres instructions et exemples.

Voici mes formats de nom de fichier et de répertoire de dossier recommandés:

  • Le nom de dossier par défaut est MP3, placé sous le répertoire racine de la carte SD: SD:/MP3. Ce dossier est facultatif lors de l'utilisation de plusieurs dossiers.
  • Le lecteur lit également les fichiers MP3 dans le répertoire racine.
  • Lorsque vous utilisez plusieurs dossiers, utilisez les noms de dossier: 01, 02, 03, …, 99.
  • Le nom du fichier mp3 doit être composé de 4 chiffres avec "0001.mp3" comme extension, par exemple, "0001.mp3".
  • Les fichiers peuvent être placés dans le dossier MP3 ou dans l'un des multiples dossiers.
  • Noms de fichiers: 0001.mp3 à 0255.mp3. Notez que le lecteur lit également les fichiers MP3 d'autres noms.
  • Vous pouvez ajouter des caractères après les chiffres, par exemple, "0001hello.mp3".

Il est recommandé de formater la carte avant d'ajouter des fichiers. Cela garantit que la carte est exempte de fichiers système. Formatez à l'aide de FAT32 MS-DOS.

Sur Mac, utilisez l'utilitaire de disque pour formater le disque: Applications > Utilitaires > ouvrez Utilitaire de disque.

Cliquez sur la carte SD, exemple: APPLE SD Card Reader Media/MUSICSD. Cliquez sur l'élément de menu, Erase. Set name, exemple: MUSICSD. Select: MS-DOS (Fat). Click Erase.

Le disque est nettoyé et formaté.

J'ai écrit un programme Java qui copiera un répertoire de fichiers MP3 dans un répertoire de destination, en utilisant des noms de répertoire et de fichier qui fonctionnent avec un module DFPlayer. Pour exécuter le programme, vous aurez besoin de Java JRE installé. Voici la sortie d'aide du programme.

$ java -jar mp3player.jar

+++ Démarrer, programme de copie du module DFPlayer. Syntaxe: java -jar mp3player.jar copy [(IN: répertoire MP3) (OUT: répertoire MP3)] ---------------------- Ce programme copie un répertoire de fichiers MP3 pour créer un autre répertoire de fichiers MP3 en utilisant des noms de répertoire et de fichier qui fonctionnent avec un module DFPlayer. Avant d'exécuter ce programme, + Créez un répertoire de vos fichiers MP3. + Créer un répertoire de destination. + Le répertoire de destination est l'endroit où les fichiers MP3 seront copiés, ++ en utilisant le répertoire de numéros de chiffres et les noms de fichiers. + Votre répertoire de destination doit être vide. + S'il contient des fichiers, supprimez les fichiers et les répertoires. ---------------------- + Exécutez ce programme. + Syntaxe: java -jar mp3player.jar copy [(IN: répertoire MP3) (OUT: répertoire MP3)] + Syntaxe utilisant les valeurs par défaut: java -jar mp3player.jar copy + Noms de répertoire par défaut: mp3player1 et mp3player2. + Identique à: java -jar mp3player.jar copie mp3player1 mp3player2. ---------------------- + Insérez la carte SD dans votre ordinateur. + Supprimez les répertoires et fichiers de la carte SD. + Videz la corbeille car les fichiers sont toujours sur la carte SD et le module DFPlayer peut les lire. + Copiez les nouveaux répertoires et fichiers sur la carte SD. + Éjectez la carte de l'ordinateur. ---------------------- + Insérez la carte dans le module DFPlayer. + La carte est prête à jouer

Pour voir le code source, cliquez ici. Cliquez ici pour télécharger le fichier du programme JAR que vous pouvez exécuter.

Pour référence

Sur le Mac, à partir de la ligne de commande, vous pouvez exécuter ce qui suit.

Liste pour trouver la carte.

$ diskutil liste

… /dev/disk3 (interne, physique): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *4.0 Go disk3 1: DOS_FAT_32 MUSICSD 4.0 Go disk3s1 $ ls /Volumes/MUSICSD

Copiez les fichiers dans l'ordre sur la carte SD. Étant donné que DFPlayer peut trier sur l'horodatage, copiez les fichiers dans l'ordre des noms de fichiers.

Nettoyez les fichiers cachés qui peuvent causer des problèmes (référence:

$ dot_clean /Volumes/MUSICSD

Votre carte SD est maintenant prête à être utilisée. Insérez-le dans votre module DFPlayer.

Étape 4: Connectez le module DFPlayer qui lit les fichiers MP3

Branchez le module DFPlayer qui lit les fichiers MP3
Branchez le module DFPlayer qui lit les fichiers MP3
Branchez le module DFPlayer qui lit les fichiers MP3
Branchez le module DFPlayer qui lit les fichiers MP3
Branchez le module DFPlayer qui lit les fichiers MP3
Branchez le module DFPlayer qui lit les fichiers MP3

J'ai séparé les connexions en 3 parties: communications série, alimentation et haut-parleur/son.

1. Connectez les broches Arduino RX/TX au module DFPlayer. Connectez un fil entre la broche Arduino 10 et la broche DFPlayer 3 (TX). Connectez une résistance, j'utilise une résistance 5K de la broche DFPlayer 2 (RX), à une rangée vide entre l'Arduino et le DFPlayer. Connectez un fil de la nano broche 11 à la résistance 5K. La résistance 5K supprime le bruit qui existe lorsque vous n'utilisez pas la résistance.

2. Connectez la broche de mise à la terre (GND) du module DFPlayer à la barre de mise à la terre de la maquette. Connectez la broche d'alimentation (VCC) du module DFPlayer à la barrette positive de la maquette.

3. Si vous avez un seul petit haut-parleur, connectez-le aux broches 6 (SPK-) et 8 (SPK+) comme sur la photo ci-dessus avec Nano.

Mini broches DFPlayer

Dans l'IDE Arduino, installez la bibliothèque DFPlayer. Sélectionnez Outils/Gérer les bibliothèques. Filtrez votre recherche en tapant « DFRobotDFPlayerMini ». Sélectionnez DFRobotDFPlayerMini by DFRobot mini player library (pour référence, le lien de la bibliothèque). Pour mon implémentation, j'ai chargé la version 1.0.5.

Pour référence, le lien de la bibliothèque. Et le lien de la page wiki DFPlayer.

Chargez des fichiers MP3 sur la carte micro SD. Vous pouvez avoir des chansons dans des répertoires séparés. Insérez la carte SD dans le DFPlayer.

Téléchargez et exécutez le programme du lecteur MP3: mp3infrared.ino. Lors de l'exécution du programme, pointez votre télécommande vers le récepteur et appuyez sur le bouton OK pour lancer la lecture de la première chanson. Lorsqu'il démarre la lecture, le voyant bleu de DFPlayer s'allume et reste allumé pendant la lecture d'un fichier.

Configuration avancée

J'ai construit un ordinateur émulateur Altair 8800 qui utilise un Arduino Mega. Lorsque j'ai ajouté le DFPlayer, il y avait beaucoup de bruit. Pour éliminer le bruit, j'ai utilisé une alimentation séparée pour le DFPlayer. Le Mega a une alimentation et envoie des signaux de contrôle série au DFPlayer. Le DFPlayer dispose d'une autre alimentation et reçoit et implémente les signaux de contrôle série du Mega.

Sur la photo ci-dessus, le mini hub USB blanc de l'émulateur Altair alimente le Mega et est connecté au mini hub noir de l'ordinateur portable. Le DFPlayer dispose d'un câble USB qui le connecte directement au mini hub noir de l'ordinateur portable. Cette configuration a supprimé le bruit qui existait lorsque le DFPlayer était alimenté via le mini hub blanc de l'émulateur.

Cliquez ici, pour le code configuré pour le Mega. Cette version du code utilisant des broches Mega RX/TX, alors que Nano ou Uno utilise des broches de port série logiciel.

Ce qui suit est pour référence

Connexions utilisées avec un Arduino, 1. Série UART, RX pour recevoir les instructions de contrôle du DFPlayer. RX: l'entrée se connecte à TX sur Mega/Nano/Uno. TX pour l'envoi des informations d'état. TX: la sortie se connecte à RX sur Mega/Nano/Uno. Connexions pour Nano ou Uno: RX(2) pour résister à la broche logicielle série 11(TX). TX(3) à la broche logicielle série 10 (RX). Connexions pour Mega: RX(2) pour résister à la broche Serial1 18(TX). TX(3) à Serial1 broche 19(RX). 2. Options d'alimentation. Connectez-vous directement de l'Arduino au DFPlayer: VCC à +5V. Remarque, fonctionne également avec +3,3V dans le cas d'un NodeMCU. GND à la masse (-). Utilisez une source d'alimentation complètement différente: VCC à +5 V de l'autre source d'alimentation. GND à la masse (-) de l'autre source d'alimentation. J'ai vu une autre option d'alimentation: à partir de l'Arduino +5V, utilisez un 7805 avec condensateurs et diode sur la broche DFPlayer VCC. GND à la masse (-). 3. Sortie haut-parleur. Pour un seul haut-parleur, moins de 3W: SPK - à la broche du haut-parleur. SPK + à l'autre broche du haut-parleur. Pour la sortie vers un ampli stéaro ou des écouteurs: DAC_R vers la sortie droite (+) DAC_L vers la sortie gauche (+) GND vers la masse de sortie.

Après les appels de fonction de la bibliothèque de clés. Lien vers la page wiki DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

monDFPlayer.play(1); // Joue le premier mp3 myDFPlayer.pause(); // met en pause le mp3 myDFPlayer.start(); // démarre le mp3 à partir de la pause ------------------------------ myDFPlayer.next(); // Lecture du mp3 suivant myDFPlayer.previous(); // Lecture du mp3 précédent ----------------------------- myDFPlayer.playMp3Folder(4); // lit un mp3 spécifique dans SD:/MP3/0004.mp3; Nom de fichier (0~65535) myDFPlayer.playFolder (15, 4); // lit un mp3 spécifique dans SD:/15/004.mp3; Nom du dossier (1~99); Nom de fichier (1~255) myDFPlayer.playLargeFolder(2, 999); //lire un mp3 spécifique dans SD:/02/004.mp3; Nom du dossier (1~10); Nom de fichier (1~1000) ------------------------------- myDFPlayer.loop(1); // Boucle le premier mp3 myDFPlayer.enableLoop(); // activer la boucle. myDFPlayer.disableLoop(); // désactiver la boucle. myDFPlayer.loopFolder(5); // boucle tous les fichiers mp3 dans le dossier SD:/05. myDFPlayer.enableLoopAll(); // boucle tous les fichiers mp3. myDFPlayer.disableLoopAll(); // arrête la boucle de tous les fichiers mp3. ------------------------------- monDFPlayer.volume(10); // Définir la valeur du volume. De 0 à 30 myDFPlayer.volumeUp(); // Augmenter le volume myDFPlayer.volumeDown(); // Baisser le volume ------------------------------ myDFPlayer.setTimeOut(500); //Définir le délai de communication série 500ms myDFPlayer.reset(); //Réinitialiser le module ------------------------------ Serial.println(myDFPlayer.readState()); //lire l'état mp3 Serial.println(myDFPlayer.readVolume()); //lire le volume actuel Serial.println(myDFPlayer.readEQ()); //lire le paramètre EQ Serial.println(myDFPlayer.readFileCounts()); //lire tous les comptes de fichiers dans la carte SD Serial.println(myDFPlayer.readCurrentFileNumber()); //lire le numéro de fichier de lecture en cours Serial.println(myDFPlayer.readFileCountsInFolder(3)); //lire le nombre de remplissages dans le dossier SD:/03 ------------------------------ myDFPlayer.available()

Étape 5: Alimentation externe

Image
Image
Alimentation externe
Alimentation externe
Alimentation externe
Alimentation externe

Maintenant que votre lecteur MP3 est testé et fonctionnel, vous pouvez le débrancher de votre ordinateur et l'utiliser avec une alimentation indépendante. Pour plus de simplicité, j'utilise un adaptateur mural 5 volts, qui peut être acheté pour environ un dollar, et un câble USB, un autre dollar. Le câble relie l'Arduino à l'adaptateur mural +5V. Étant donné que les broches d'alimentation et de terre Arduino sont connectées à la planche à pain, cela alimentera les autres composants. En raison de sa simplicité et de son faible coût, j'utilise cette même combinaison pour alimenter d'autres projets.

La photo de droite et la vidéo montrent le lecteur connecté à mon ampli à 40 $ assis sur le haut-parleur Bose droit sur mon bureau. C'est mon système de musique de bureau: lecteur MP3 Arduino, ampli Douk Audio et 2 haut-parleurs Bose. Bonne qualité sonore.

J'espère que vous avez réussi et que vous avez aimé créer votre propre lecteur de musique MP3.

Étape 6: Éliminez le bruit statique

À faible volume, il y avait un bruit statique de fond irritant. Le bruit était correct lorsque le volume de DFPlayer était plus élevé et que la musique jouait. Mais quand la musique était calme, la statique était là.

J'ai trouvé une page StackExchage qui contenait de nombreuses suggestions. Les éléments suivants ont fonctionné pour moi:

  • Connectez un fil court entre les broches de masse du DFPlayer: broches 7 à 10.
  • Utilisez une prise murale USB séparée (5 V) pour alimenter le module DFPlayer.
  • Connectez la terre de la prise murale à la terre Arduino. Cela était nécessaire pour que le contrôle série fonctionne entre l'Arduino et le lecteur.

Ce qui précède a été testé sur mon émulateur Altair 8800 que j'ai amélioré avec un DFPlayer pour jouer de la musique. Le lecteur est contrôlé en basculant les bascules du panneau avant.

Conseillé: