Nouvelles:

Deux grosses mises à jour ont été effectuées le 1/7/2025 : une pour des corrections de bugs et une de sécurité. En cas de problème contacter le Grand Sachem, merci.

Menu principal

ATtiny85 (ou 45) - Lecteur DFPlayer Mini - Lecture de fichiers mp3

Démarré par Ph Blondé, 21 Janvier 2025 à 22:30:01

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Ph Blondé

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.
Philippe Blondé
Un 59 dans le 22

Ph Blondé

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
Philippe Blondé
Un 59 dans le 22

Ph Blondé

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  :)
Philippe Blondé
Un 59 dans le 22

Ph Blondé

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
Philippe Blondé
Un 59 dans le 22

Ph Blondé

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);
}

Philippe Blondé
Un 59 dans le 22

Ph Blondé

La réalisation

SONS - DFPLAYER MINI 2048-50.jpg


En vous souhaitant un bon amusement en ce début d'année.
Philippe
Philippe Blondé
Un 59 dans le 22

Ph Blondé

Philippe Blondé
Un 59 dans le 22

Attiny

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...

Ph Blondé

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

Philippe Blondé
Un 59 dans le 22

Attiny

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 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...


Ph Blondé

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
Philippe Blondé
Un 59 dans le 22

Attiny


Ph Blondé

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
Philippe Blondé
Un 59 dans le 22

Likiki

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
Amicalement,
Christian

marco58

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
Jean Marc
longue et heureuse vie aux ferrovipathes.