EspaceTrain.Com - Le Forum

Modélisme ferroviaire => Arduino et ses clones, digital, électricité, électronique, logiciels => Arduino et ses clones => Discussion démarrée par: Ph Blondé le 21 Janvier 2025 à 22:30:01

Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:30:01
Bonjour à tous,
Dans une zone du réseau, j'ai un coin de campagne avec le petit train de mine en HOe. J'ai voulu ajouter des sons du genre chants d'oiseaux, une cloche qui sonne, un chien qui aboie, etc., bref la campagne...

Mais à condition que cela ne soit pas en permanence, donc avoir un temps de silence de 20 à 60 s entre deux lectures de fichiers son. Ben oui, déjà qu'il y a pas mal de bruit au réseau, on ne va pas en ajouter une dose.

J'avais deux DFPlayer Mini. Ce sont des lecteurs de fichiers mp3 ; les fichiers sont à enregistrer sur une carte µSD.

Facile à employer, ils ne demandent pas d'ampli. On peut compter dans les 2 à 3 Watt de puissance en sortie (suivant la notice).

Un DFPlayer Mini :

DFPlayer Mini 2.jpg


Ce qui nous intéresse :
- SPK_1 et SPK_2 : pour brancher un haut-parleur de 4 Ohms (8 ohms c'est bon aussi).
- VCC et GND : pour alimenter en +5 V sur VCC et le moins sur GND.
- IO_1 : pour commander la lecture des fichers mp3.

Seule contrainte, le nom d'un fichier doit commencer par un nombre à 4 chiffres ; exemple : 0001oiseaux.mp3, 0021cloche.mp3, etc.

A chaque fois que l'on présente un « moins » sur IO_1, le fichier mp3 suivant est lu. A la fin (pour mon cas), après lecture du fichier 0028.mp3, c'est le premier fichier mp3 (0001.mp3) qui est relu. Et on recommence la lecture par numérotation croissante.
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:31:06
Pour produire un « moins » sur la broche IO_1 j'ai utilisé un Attiny 45 qui utilise une fonction dite « random » et fournit une temporisation d'une durée aléatoire et comprise entre 20 et 60 s.

Pourquoi 20 ? Parce que la durée de chaque son va de 5 à 15 s. On peut naturellement modifier ces deux bornes.

Avec un Attiny 45 (ou 85) on fait cela très facilement.

Le premier schéma.
C'est la version mini :

SONS - DFPLAYER MINI - V1.jpg
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:34:26
Le code :

// MODULE SONS A L'ENTRÉE GAUCHE DU RESEAU - HP EN DESSOUS DES TUNNELS ; MAJ 2025-01-20 - Version 1
// Chargement à 8 MHz - Pour le chargement ne pas oublier : Programmateur = "Arduino as ISP"

// FONCTIONNEMENT
// Un premier fichier son (0001.mp3) est lu.
// La fonction "random" fixe une durée de temporisation entre 20 et 60 s.
// Le fichier son suivant (0002.mp3) est lu à son tour, etc.

// REPERAGE DES BROCHES D'UN ATtiny45 OU 85 :
// Broche 1 : Reset       Broche 8 : 5V
// Broche 2 : A3 ou 3     Broche 7 : A1 ou 2
// Broche 3 : A2 ou 4     Broche 6 : 1 (PWM)
// Broche 4 : GND         Broche 5 ; 0 (PWM)

// DECLARATION DES VARIABLES
int const SON = 2;          // Broche 7
byte Duree_Temporisation;
byte Nombre_Tours_1s;       // 1 tour de boucle = 1s

void setup()
{
  pinMode (SON,OUTPUT );    // LOW : Lecture des fichiers "son".
}

void loop()
{
  digitalWrite (SON, LOW);  delay (300);  digitalWrite (SON, HIGH);

// TEMPORISATION ENTRE DEUX LECTURES
  Duree_Temporisation = random (20, 60);
  Nombre_Tours_1s = 0; // Un tour de boucle = 1 seconde
  do
    {
      delay (1000);
      Nombre_Tours_1s = (Nombre_Tours_1s + 1);
    }
  while (Nombre_Tours_1s <= Duree_Temporisation);
}



Il y a presque plus de commentaire que de code  :)
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:35:38
Le second schéma

J'ai ajouté deux LEDs pour visionner les secondes qui passent lors de la temporisation et pour avertir du lancement d'une lecture.

J'aurais pu ajouter la clim, un distributeur de Coca, l'essorage à 1500 t/mn... Mais bon, pas cette fois  :))

SONS - DFPLAYER MINI - V2.jpg
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:36:51
Le code

// MODULE SONS A L'ENTRÉE GAUCHE DU RESEAU - HP EN DESSOUS DES TUNNELS ; MAJ 2025-01-21 - Version 2
// Chargement à 8 MHz - Pour le chargement ne pas oublier : Programmateur = "Arduino as ISP"

// FONCTIONNEMENT
// Un premier fichier son (0001.mp3) est lu.
// La fonction "random" fixe une durée de temporisation entre 20 et 60 s.
// Le fichier son suivant (0002.mp3) est lu à son tour, etc.

// REPERAGE DES BROCHES D'UN ATtiny45 OU 85 :
// Broche 1 : Reset       Broche 8 : 5V
// Broche 2 : A3 ou 3     Broche 7 : A1 ou 2
// Broche 3 : A2 ou 4     Broche 6 : 1 (PWM)
// Broche 4 : GND         Broche 5 ; 0 (PWM)

// DECLARATION DES VARIABLES
int const SON = 2;                // Broche 7
int const Led_Lecture = 1;        // Broche 6
int const Led_Temporisation = 4;  // Broche 3

byte Duree_Temporisation;
byte Nombre_Tours_1s; // 1 tour de boucle = 1s

void setup()
{
  pinMode (SON,OUTPUT ); // LOW : Lecture des fichiers "son".
  pinMode (Led_Lecture, OUTPUT);
  pinMode (Led_Temporisation, OUTPUT);
}

void loop()
{
// LECTURE
  digitalWrite (Led_Lecture, LOW);    delay (500);
  digitalWrite (SON, LOW);            delay (300);
  digitalWrite (SON, HIGH);           delay (500);
  digitalWrite (Led_Lecture, HIGH);

// TEMPORISATION ENTRE DEUX LECTURES
Duree_Temporisation = random (20, 60);

Nombre_Tours_1s = 0; // Un tour de boucle = 1 seconde
  do
    {
      digitalWrite (Led_Temporisation, LOW);      delay (500);
      digitalWrite (Led_Temporisation, HIGH);     delay (500);
      Nombre_Tours_1s = (Nombre_Tours_1s + 1);
    }
  while (Nombre_Tours_1s <= Duree_Temporisation);
}

Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:38:03
La réalisation

SONS - DFPLAYER MINI 2048-50.jpg


En vous souhaitant un bon amusement en ce début d'année.
Philippe
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 21 Janvier 2025 à 22:47:36
Mes fichiers mp3, pour cette application, peuvent être chargés ici :
https://www.swisstransfer.com/d/826afdab-224e-4845-a1e2-154c1c0d361e (https://www.swisstransfer.com/d/826afdab-224e-4845-a1e2-154c1c0d361e)

Valable jusqu'au 20-02-2025
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Attiny le 23 Janvier 2025 à 21:11:02
Super ce petit montage. ;D
Rapide à construire et pour une somme modique, que demander de plus...
Bien sur il est compatible avec un Arduino Uno pour ceux qui ne veulent pas utiliser les ATtiny.

Merci pour les fichiers mp3 que je viens de télécharger...
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 24 Janvier 2025 à 10:39:24
Citation de: Attiny le 23 Janvier 2025 à 21:11:02Super ce petit montage. ;D
Rapide à construire et pour une somme modique, que demander de plus...
Bien sur il est compatible avec un Arduino Uno pour ceux qui ne veulent pas utiliser les ATtiny.

Merci pour les fichiers mp3 que je viens de télécharger...
Bonjour et merci pour l'appréciation.
J'ai fait le calcul, cela coûte entre 3 et 5 € sans la carte µSD.
Une carte de 8Go suffit amplement

Si l'on possède un UNO alors il est rentable, à mon sens, de faire l'interface pour charger les ATtiny.
On trouve cela facilement sur le net en utilisant une plaquette d'essais (bread board).

10 ATTINY85 2.png

Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Attiny le 24 Janvier 2025 à 13:22:56
C'est le montage de base pour programmer les ATtiny et sur le net les tutos pullulent :D
Personnellement je l'ai refais sur un shield prototype, ce qui m'évite les problèmes de câblage et les mauvais contacts en particulier et me permet de programmer également les ATtiny84...
A ce jour j'utilise un programmateur USB de marque Sparkfun (https://www.gotronic.fr/art-programmateur-tiny-avr-20210.htm) et le montage de base sur le shield est en secours.

Pour les débutants et les programmateurs occasionnels, le montage de base suffit largement :)

Au plaisir de te lire...

Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 24 Janvier 2025 à 14:10:31
Citation de: Attiny le 24 Janvier 2025 à 13:22:56Personnellement je l'ai refais sur un shield prototype, ce qui m'évite les problèmes de câblage et les mauvais contacts ...

Pour les débutants et les programmateurs occasionnels, le montage de base suffit largement :)

Au plaisir de te lire...
Oui, si c'est pour essayer le montage de base suffit.
Mais on y prend vite goût ; ne serait-ce que pour de petits montages ou en esclaves pilotés par un Arduino (commande de servo par exemple).

Voici ce que j'ai depuis... ouhhhhhh..., je sais plus ::)

INTERFACE UNO-ATTINY 1.JPG
INTERFACE UNO-ATTINY 2.JPG
INTERFACE UNO-ATTINY 3.JPG
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Attiny le 24 Janvier 2025 à 14:36:47
Très bien le support à force d'insertion nulle!
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Ph Blondé le 24 Janvier 2025 à 15:28:38
Citation de: Attiny le 24 Janvier 2025 à 14:36:47Très bien le support à force d'insertion nulle!
Je l'ai adopté car les supports 8 broches se fatiguent au bout d'un moment.
Et puis c'est plus facile pour insérer les ATtiny
Dans les 5€, voire moins sur les sites de chez chtong
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: Likiki le 24 Janvier 2025 à 19:32:31
Génial ce tuto.

Merci pour toutes ces explications. Voulant faire de même sur mon réseau, je vais voir à m'équiper d'un support a force d'insertion nulle.

 :AA
Titre: ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3
Posté par: marco58 le 26 Janvier 2025 à 08:40:01
Bonjour a tous.

Super, super, comme dab Philippe est très précis, concis et non pas l'inverse (humour).

Je n'en suis pas encore là mais j'ai mis cette page dans mes favoris.

Bon dimanche.

Jean Marc