Piloter un module MP3 (série) avec un arduino NANO

Bonjour à tous et toutes,

Comme bien souvent mon problème n’est surement pas compliqué mais assez long a remettre dans le contexte. Je vais essayer d’être le plus précis possible mais n’hésitez pas a me demander si besoin.

Bien évidemment je suis un noob qui joue avec un code qu’il ne comprend pas (vraiment).

Je vous joint (cf pièce jointe) un dossier rédigé sur Word qui explique tout le pourquoi du comment avec les liens vers les notices, sketch, shéma, etc…)

En gros: Je cherche a lire l’intégralité d’un dossier (nommé “01”) rempli de mp3 (nommés 001, 002, etc…) situé dans la carte SD du module MP3 et ce, dès que l’arduino nano est allumé (sans autre manipulation de ma part).

Pour celà je me suis basé sur deux sketch trouvé sur le net, qui ont le mérite de fonctionner mais soit qui ne lit qu’un seul morceau (pour le premier) soit qui nécessite de donner l’ordre via le moniteur série (deuxième sketch). Donc aucun qui ne corresponde totalement.

Comment m’aider ? :
Soit, dans le sketch 1, en m’indiquant comment rédiger correctement la ligne de commande correspondante (pour lire tout le dossier et pas seulement un seul titre).*

Soit dans le sketch 2, en m’indiquant comment (et où dans le sketch 2 ?) envoyer une commande série au module mp3 sans avoir à passer par le moniteur série ?


*La commande “clé”, selon moi se trouve dans le setup : sendCommand (CMD_FOLDER_CYCLE,…) mais je n’arrive pas à la rédiger correctement dans le sketch 1.

Merci beaucoup pour votre aide ! N’hésitez pas a demander des précisions si besoin :wink:

Problème Lecteur MP3 Arduino.doc (191 KB)

Quand je vois cette ligne :

sendCommand (CMD_FOLDER_CYCLE, 0x7E 06 17 00 01 XX EF) ;

Cela m'incite à penser que tu as simplement besoin d'apprendre le langage.
Tu fais partie des demandeurs qui cherchent un code tout fait qui corresponde exactement à leur attente, sans avoir à s’invertir un minimum pour se former.
Cela s'appelle mettre la charrue avant les bœufs et cette démarche est vouée à l'échec.

Commence donc par le début : Le langage C • Tutoriels • Zeste de Savoir

Je suis bien d'accord. J'essaie...

j'avoue que les numéros en 0x01 quelquechose... c'est encore du chinois pour moi.

Mais, crois moi, couché a 3h du mat depuis quelques jours ... j'apprend ! lol

Pour ma soluce : Apparemment il fallait écrire la ligne de code suivante :

(CMD_FOLDER_CYCLE, 0x0101) en lieu et place de mon charabia...

j'ai quand même réussi a trouver ou se plaçait ces foutus commandes, comment les définir en amont et qu'il s"agissait bien de CMD FOLDER CYCLE ! le tout gràce a une doc pas si facile a aborder... Je suis donc pas peu fier de moi ! :slight_smile:

Merci en tout cas pour le lien, je vais approfondir le sujet... en musique ! :wink:

Bon weekend,

Laurent

La librairie SerialMp3Player, installable depuis l’IDE, propose une méthode playF().

Merci ! Je vais regarder tout çà :wink: en fait je suis déjà dessus mais je ne trouve pas encore de doc pour la faire fonctionner la librairie (je suis très noob !).

J'ai trouvé la commande basique : F01 - Play 01 folder dans l'exemple fourni avec la librairie 'jouer avec le volume"

Mais je ne sais vraiment pas comment les implémenter sans passer par le moniteur série, juste par une ligne de commande du type :

sendCommand(CMD_FOLDER_CYCLE, 0x0101)

ou "serial print quelquechose" dans le cas des sketch qui passent par le moniteur série ?

bref deux problèmes en un : écrire correctement le language arduino (nottamment l'histoire des 0x01...) et comprendre le fonctionnement de la transmission "série". (Comment envoyer une commande sans passer par le moniteur série).

Merci pour ton aide :wink:

Le .h est “un peu” documenté :

     void playF(byte f);          // Play all files in the f folder