LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: Dominique le mars 14, 2016, 11:46:50 am

Titre: Un mini module sonore
Posté par: Dominique le mars 14, 2016, 11:46:50 am
J'ai réalisé ce week-end un petit module sonore.

Le réalisme du modélisme nécessite de déclencher des sons selon des événements précis, à des endroits bien choisis. Pour cela j'ai besoin d'un petit module bon marché.

J'ai assemblé un mini, une carte lecteur microSD, un transistor NPN pour amplifier le son vers un haut-parleur 8 ohm standard et un régulateur 7809 pour pouvoir alimenter le montage avec du 12V.
Le mini est programmé avec une petite carte FTDI232 basic.

Le principe est simple, le programme attend que la pin 2 passe au 0V pour délivrer le son inscrit dans un fichier.

Il utilise les bibliothèques SD, SPI et TMRpcm

Voici le programme que vous pouvez adapter à vos besoins :

/*
 * Module sonore - Passage à Niveau
 * Base : un Nano + lecteur microSD + ampli BD241 + haut parleur
 * Version du 13/3/2016 Dominique Bultez
 */
 
#include <SD.h>                   // need to include the SD library
#define SD_ChipSelectPin 10       // using digital pin 10 on arduino nano 328, can use other pins
#include <TMRpcm.h>               //  also need to include this library...
#include <SPI.h>
/*
 * SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
 */
TMRpcm tmrpcm;                    // create an object for use in this sketch
File root;
int val;
int bouton, oldbouton = 0;
bool debouncing = false;
#define _Bouton 2
#define _LedSon 4
#define _niveau 4

/////////////////////// SETUP /////////////////

void setup(){

  tmrpcm.speakerPin = 9;              //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
  pinMode(_LedSon,OUTPUT);            //LED Connected to pin 4
  digitalWrite(_LedSon, LOW);
  pinMode(_Bouton, INPUT_PULLUP);     // pour bouton ou commande extérieure sur pin 2
 
  Serial.begin(115200);
  if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
    Serial.println("SD fail"); 
    while(1) {
      // led clignote
      digitalWrite(_LedSon, HIGH);    // allume Led
      delay(250);
      digitalWrite(_LedSon, LOW);     // eteint led
      delay(250);
    }
  }
  root = SD.open("/");
  //printDirectory(root, 0);
  //delay(500);
  Serial.println("SD OK");
  val = _niveau;
  //Joue(val);
}

//////////////////// LOOP //////////////////

void loop(){ 

while (Serial.available() > 0)
  {
    val = Serial.parseInt();  // lecture entier
    if (Serial.read() == '\n')
    {
      Serial.print("valeur : ");
      Serial.println(val);
      if (val == 0) {
        printDirectory(root, 0);
      } else {
        Joue(val);
      }
    }
  }

  bouton = digitalRead(_Bouton);
  if (bouton == LOW) {
    if (tmrpcm.isPlaying()) {
    } else {
      Joue(_niveau);
      //digitalWrite(_LedSon, HIGH);      // allume Led
    }
  } else {                              // bouton HIGH
      tmrpcm.stopPlayback();            // Stop all playback
      //digitalWrite(_LedSon, LOW);       // eteint Led
  }
 
  if(tmrpcm.isPlaying())  {
    digitalWrite(_LedSon, HIGH);
   } else {
    digitalWrite(_LedSon, LOW);
    }
}

//////////////// fin de loop ///////////////

void Joue(int a_val) {
      Serial.print("je joue ");Serial.println(a_val);
      switch (a_val) {
        case 1:
        tmrpcm.play((char*)("1.wav"));       
        break;
        case 2:
        tmrpcm.play((char*)("2.wav"));
        break;
        case 3:
        tmrpcm.play((char*)("3.wav"));
        break;
        case 4:
        tmrpcm.play((char*)("4.wav"));
        break;
        case 5:
        tmrpcm.play((char*)("5.wav"));
        break;
        case 6:
        tmrpcm.play((char*)("6.wav"));
        break;
        case 7:
        tmrpcm.play((char*)("7.wav"));
        break;
        case 8:
        tmrpcm.play((char*)("8.wav"));
        break;
        case 9:
        tmrpcm.play((char*)("9.wav"));
        break;
      }
}

void printDirectory(File dir, int numTabs) {
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       Serial.println("fin");
       break;
     }
     for (uint8_t i=0; i<numTabs; i++) {
       Serial.print('\t');
     }
     Serial.print(entry.name());
     if (entry.isDirectory()) {
       Serial.println("/");
       printDirectory(entry, numTabs+1);
     } else {
       // files have sizes, directories do not
       Serial.print("\t\t");
       Serial.println(entry.size(), DEC);
     }
     entry.close();
   }
}

Et il reste 14 pins libres ...
Titre: Re : Un mini module sonore
Posté par: DDEFF le mars 14, 2016, 04:33:40 pm
Tout simplement !  :D
Et tu as 9 sons sur ta SD.
Titre: Re : Un mini module sonore
Posté par: Thierry le mars 14, 2016, 05:37:26 pm
C'est ce que tu avais proposé dans un article ?
Titre: Re : Re : Un mini module sonore
Posté par: Dominique le mars 14, 2016, 05:55:51 pm
C'est ce que tu avais proposé dans un article ?

Oui c'est une suite logique de l'article, une mise en œuvre nettement moins coûteuse.

En plus je vais essayer de faire fonctionner un passage à niveau en même temps avec des capteurs genre ILS et 2 relais.

J'ai mis 9 sons identiques sur la carte avec des niveaux différents pour choisir celui qui rend le mieux en fonction du HP choisi et de son emplacement.

Pour préparer les fichiers sons : Audacity !

Je ferais bien un circuit imprimé ...
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 23, 2016, 07:00:21 pm
Bonsoir,
Le son est en boucle, comment faire pour qu'il ne passe qu'une fois. La fonction Delay ne fonctionne pas
Merci
 :)
Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 23, 2016, 08:19:53 pm
Bonsoir,
Le son est en boucle, comment faire pour qu'il ne passe qu'une fois. La fonction Delay ne fonctionne pas
Merci
 :)

Pouvez-vous en dire un peu plus ?
Il n'y a aucune raison que la fonction delay() ne fonctionne pas. Une erreur s'est glissée soit dans le montage, soit dans le programme que vous avez recopié.

Je viens de faire le test et ça marche chez moi.
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 23, 2016, 09:27:28 pm
Re bonsoir,

Voici le code qui ne fonctionne pas chez moi

void Joue(int a_val) {
      Serial.print("je joue ");Serial.println(a_val);
      switch (a_val) {
        case 1:
        tmrpcm.play((char*)("annonce1.wav")); 
        delay(1000);
        break;




De plus c'est le dernier bouton poussoir qui fonctionne, parmi les 3 installés

Re Bonsoir,

De plus avec les lignes suivantes, le son est le dernier de la liste ?

TMRpcm tmrpcm;                    // create an object for use in this sketch
File root;
int val;
int bouton, oldbouton = 0;

bool debouncing = false;

#define _Bouton 2
#define _LedSon 1
#define _niveau 2

#define _Bouton 3
#define _LedSon 2
#define _niveau 2

#define _Bouton 4
#define _LedSon 3
#define _niveau 2

Merci
Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 23, 2016, 11:08:14 pm
Bonsoir,

Je ne vois pas bien ce qui cloche, il faudrait voir l'ensemble du code.

De toute façon dans ces 2 lignes :
tmrpcm.play((char*)("annonce1.wav")); 
        delay(1000);

Le "delay(1000);" ne sert à rien car tmrpcm joue en tache de fond : supprimez le.

Par contre, ce programme peut planter facilement par manque de mémoire, surtout si vous appelez la fonction printDirectory().
Vérifiez que la mémoire disponible affichée après la compilation est supérieur à 800 octets.
Pour récupérer de la mémoire, n'hésitez pas à remplacer Serial.print("quelque chose"); par Serial.print(F("quelque chose"));
Je vous conseille de modifier cette fonction printDirectory() comme suit :

void printDirectory(File dir, int numTabs) {
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       Serial.println("fin");
       break;
     }
     for (uint8_t i=0; i<numTabs; i++) {
       Serial.print('\t');
     }
     Serial.print(entry.name());
     if (entry.isDirectory()) {
       Serial.println("/");
       // printDirectory(entry, numTabs+1); // supprimer les appels re-entrants
     } else {
       // files have sizes, directories do not
       Serial.print("\t\t");
       Serial.println(entry.size(), DEC);
     }
     entry.close();
   }
}
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 24, 2016, 10:44:04 am
Bonjour,

1er soucis : Après le téléversement, le bouton ne fonctionne pas, il faut que j'appuie sur le bouton reset de la carte UNO pour que le bouton "son" fonctionne ?
2 : Le fichier "#define _LedSon 1" n'a aucune influence que je mette 0 ou 5 il  ?
3: Le "#define _Bouton 2 est sur la broche PWM2, le 3 sur PWM3 et le 4 sur PWM4, mais quelque soit l'ordre, c'est le dernier qui fonctionne
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 24, 2016, 10:45:31 am
Oups, erreur de doigt je n'ai pas fini mes explications
 :o
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 24, 2016, 10:52:15 am
Bonjour,

1er soucis : Après le téléversement, le bouton "son" ne fonctionne pas, il faut que j'appuie sur le bouton reset de la carte UNO pour que le bouton "son" fonctionne ? Pour info après téléversement il reste 866 octets pour les variable lolcales
2 : Le fichier "#define _LedSon 1" n'a aucune influence que je mette 0 ou 5 il  ?
3: Le "#define _Bouton "son" 2 est sur la broche PWM2, le 3 sur PWM3 et le 4 sur PWM4, mais quelque soit l'ordre, c'est le dernier bouton qui fonctionne
Exemple :
#define _Bouton 2
#define _LedSon 1
#define _niveau 1

#define _Bouton 3
#define _LedSon 1
#define _niveau 2

Le bouton 3 fonctionne, mais pas le 2 ?

4: Le son passe en boucle, je n'arrive pas à faire "passer" le son une seule fois ?

J'ai vérifié les branchements et à priori pas de problème

Merci encore pour votre aide
Patrick

Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 24, 2016, 10:56:58 am
Je ne comprend pas votre problème ni votre programme !
Cette suite de #define est contradictoire.
Vos explications semblent démontrer que le programme se plante au démarrage. Quels tests avez-vous prévu ?
Envoyez-moi votre programme complet ET votre schéma, ça ira plus vite !

Bon courage
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 24, 2016, 11:54:13 am
Voici mon fichier
Merci
Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 24, 2016, 02:39:25 pm
Il y a plusieurs choses :

#define _Bouton 2
#define _LedSon 4
#define _niveau 1

#define _Bouton 3
#define _LedSon 4
#define _niveau 2

#define _Bouton 4
#define _LedSon 4
#define _niveau 3

Ca revient à redéfinir 3 fois les mêmes étiquettes : il reste à la fin seulement la dernière : _Bouton = 4, _LedSon = 4, _niveau = 3,
donc seul le bouton en pin 4 fonctionne et joue le "niveau 3"
Les boutons sur les pins 2 et 3 n'existent pas dans votre programme.
Il faudrait définir _Bouton2, _Bouton3 et _Bouton4 et les tester tous les 3 dans le programme.

Enfin, comme je vous l'ai dit, commentez la ligne printDirectory(entry, numTabs+1); dans void printDirectory(File dir, int numTabs), car ça doit planter (éviter la récursivité dans si peu de mémoire).

Est-ce que vos sons sont bien écrits dans la carte microSD ?
Je testerai votre programme un peu plus tard.
Titre: Re : Un mini module sonore
Posté par: Papachef le octobre 24, 2016, 06:18:39 pm
Bonsoir,
Pour jouer le son il faut toujours faire Reset sur la carte UNO
A priori je suis au bout de mes compétences car je n'arrive pas à définir les boutons 2,3 et 4
Les sons sont bien inscrits sur la carte
En gros, je sèche
Merci
Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 25, 2016, 03:16:21 pm
Bonjour,
Je vais vous envoyer une version qui marche.

Mais avant j'ai besoin de votre cahier des charges précis et complet et du schéma électrique : voulez-vous seulement declencher 3 sons avec 3 boutons ?

Soyez un peu patient, j'ai plein de choses à faire en parallèle.
Titre: Re : Un mini module sonore
Posté par: Dominique le octobre 25, 2016, 10:17:37 pm
Bonsoir,

Essayez cette nouvelle version  (Sons_gare)

Au préalable, il faut installer la bibliothèque (Bounce2). Reportez-vous à l'article http://www.locoduino.org/spip.php?article71 (http://www.locoduino.org/spip.php?article71) pour plus de détails

Je vous laisse découvrir les changements que j'ai fait. N'hésitez pas à poser des questions.

En quelques mots, les 3 boutons à connecter sur les Pins 2, 3 et 4 démarrent un son ou l'arrêtent (s'il est en train de se jouer).
La led s'allume quand un son se joue.

Vous pouvez jouer les sons à partir du moniteur série de l'IDE.
La commande "0" (suivie d'un saut de ligne /n) affiche le répertoire de la carte.

J'ai testé sur un proto de mon coté, mais je n'ai pas vos sons (qui peuvent d'ailleurs intéresser les lecteurs si vous pouvez les partager et s'ils ne sont pas trop gros).
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 06, 2017, 07:43:59 pm
Bonjour Dominique,
Je viens de recevoir les deux cartes micro SD, donc... on y va  :)

Petit problème pour moi.
A la compilation, j'ai ce message : exit status 1   'Joue' was not declared in this scope
J'ai téléchargé et installé Sons_gare.zip et Bounce2.zip sans problème à partir de ton dernier message du 25 oct 2016.
Et là, je suis bloqué.

Titre: Re : Un mini module sonore
Posté par: Dominique le janvier 06, 2017, 08:33:58 pm
Bonjour Philippe,

Je viens de télécharger le programme que j'ai mis sur le forum dans le post précédent, sélectionné un Arduino Pro Mini et compilé (vérifié) : pas d'erreur

Je suis donc dans les même conditions que vous et je connais d'autres personnes chez qui ça marche bien.

/*
 * Module sonore - Passage à Niveau
 * Base : un Nano + lecteur microSD + ampli BD241 + haut parleur
 * Version du 13/3/2016 Dominique Bultez
 */
 
#include <SD.h>                 // need to include the SD library
#define SD_ChipSelectPin 10     // using digital pin 10 on arduino nano 328, can use other pins
#include <TMRpcm.h>             //  also need to include this library...
#include <SPI.h>                // SPI: 10 (CS), 11 (MOSI), 12 (MISO), 13 (SCK)
#include <Bounce2.h>            // librairie anti-rebonds pour les boutons

Il faut donc que vous vérifiez que l'IDE et les éléments sont bien installés :
Les bibliothèques TRMpcm et Bounce2 : vérifiez que dans le menu Fichier/Exemples, vous voyez bien et pouvez ouvrir les exemples, comme sur cette image :
(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=642;image)

Sinon c'est étrange et votre IDE n'est peut-être pas à jour.
Sinon déplacez le fonction "Joue" au dessus de "loop"
Si c'est cela, vous aurez la même punition pour la fonction "PrintDirectory"

Tenez moi au courant des résultat svp

Cordialement
Dominique
Titre: Re : Un mini module sonore
Posté par: Thierry le janvier 06, 2017, 08:59:42 pm
Je vais mettre mon grain de sel si vous permettez.

Effectivement, avec l'IDE Arduino 1.8.0 sur mon Windows 10, ça marche. Mais c'est quand même incorrect du strict point de vue C/C++. C'est une amélioration de l'IDE Arduino, de son petit nom Wiring.
Dans la norme C, il est effectivement impossible d'appeler une fonction qui ne soit pas déjà déclarée. Soit parce qu'elle est présente avant son utilisation dans le source, soit parce qu'une ligne du début du source 'déclare' cette fonction ( void Joue(int a_val); ). Le Linker fera ensuite son boulot et rebranchera les fils. Cette ligne de pré déclaration se retrouve généralement dans les fichiers .h ... Après observation du fichier Sons_gare.ino.cpp produit par l'IDE dans le répertoire Temp de Windows on retrouve bien ce code :

#include <Arduino.h>
#line 1 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
#line 1 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
/*
 * Module sonore - Passage à Niveau
 * Base : un Nano + lecteur microSD + ampli BD241 + haut parleur
 * Version du 13/3/2016 Dominique Bultez
 */
 
#include <SD.h>                 // need to include the SD library
#define SD_ChipSelectPin 10     // using digital pin 10 on arduino nano 328, can use other pins
#include <TMRpcm.h>             //  also need to include this library...
#include <SPI.h>                // SPI: 10 (CS), 11 (MOSI), 12 (MISO), 13 (SCK)
#include <Bounce2.h>            // librairie anti-rebonds pour les boutons

#define _Bouton1 2              // bouton 1 connecté entre la Pin 2 et Gnd
#define _Son1 1                 // pour jouer le son 1
#define _Bouton2 3              // bouton 2 connecté entre la Pin 3 et Gnd
#define _Son2 2                 // pour jouer le son 2
#define _Bouton3 4              // bouton 3 connecté entre la Pin 4 et Gnd
#define _Son3 3                 // pour jouer le son 3
#define _LedSon 5               // Led Son connectée sur Pin 5 (en serie avec une résistance de 1K)
#define _SonOut 9               // sortie audio vers ampli et HP

// Variables
Bounce bounceB1 = Bounce();     // creation des objets Bounce
Bounce bounceB2 = Bounce();
Bounce bounceB3 = Bounce();
TMRpcm tmrpcm;                  // creation d'un objet tmrpcm
File root;
int val;
int bouton, oldbouton = 0;
bool debouncing = false;



/////////////////////// SETUP /////////////////

#line 36 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
void setup();
#line 73 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
void loop();
#line 128 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
void Joue(int a_val);
#line 163 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"
void printDirectory(File dir, int numTabs);
#line 36 "D:\\Mes documents\\Trusty\\Arduino\\Sons_gare\\Sons_gare.ino"

donc je ne comprend pas que votre IDE refuse de le compiler... Sauf si votre IDE est très ancien (version 1.4 ou avant !) .
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 07, 2017, 09:58:54 am
Bonjour à tous,
J'ai bien "Les bibliothèques TRMpcm et Bounce2" et j'ai vérifié que dans le menu Fichier/Exemples, il y a bien et on peut ouvrir les exemples".

Maintenant c'est quoi l'"IDE"? Désolé mais je me classe plutôt dans les débutants.
Tout ce que je peut lire c'est : Arduino 1.6.12
Titre: Re : Un mini module sonore
Posté par: Thierry le janvier 07, 2017, 10:09:11 am
Ben, c'est juste ça l'IDE, pour Interactive Development Environment ou Environnement de développement interactif dans la langue de Pierre Dac. C'est à dire l'éditeur de texte (côté interactif) qui permet de coder puis de compiler ce code (côté développement...). Désolé pour les acronymes, on ne se méfie pas assez de nos vieux réflexes...

Pour revenir au problème, si le message d'erreur est bien ce que vous avez signalé ''Joue' was not declared in this scope', comme le disait Dominique, il suffit de déplacer la fonction Joue() et sans doute sa suivante au début du fichier, après les include, bien sûr. L'autre solution est d'ajouter deux lignes juste avant le setup:

void Joue(int a_val);
void printDirectory(File dir, int numTabs);

D'autre part, passer à la dernière version 1.8.0 de l’environnement Arduino (l'IDE !) ne serait pas inutile...
Titre: Re : Un mini module sonore
Posté par: Dominique le janvier 07, 2017, 10:29:21 am
Merci Thierry d'avoir pris le relai (des courses m'obligent à respirer l'air pas très pur de Sallanches).

Je me souviens que j'ai déjà vu ce message d'erreur (mais je ne l'ai pas sur la 1.6.0) et d'avoir remonté la routine incriminée. Mais vraiment pas souvent.

C'est vrai qu'il vaut mieux éviter de déclarer une fonction après son appel !

À retenir
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 07, 2017, 12:55:02 pm
Bonjour à tous,
J'utiliserais deux cartes micro Sd, une avec un UNO (Selectronic) pour l'animation réseau et l'autre avec un MEGA (clone) pour le va et vient à trois autorails.
Ma question est donc : Sons_gare.zip est-il directement applicable avec le UNO ou le MEGA que j'utilise?
Après correction suivant le conseil de Thierry, plus de problème de compilation.
J'ai un message " SD fail".
Je crois que moi aussi je vais "fail"  :)
Titre: Re : Re : Un mini module sonore
Posté par: Dominique le janvier 07, 2017, 02:15:47 pm
Citation de: PhB22560 link=topic=B ;D157.msg2473#msg2473 date=1483790102
Bonjour à tous,
J'utiliserai deux cartes micro Sd, une avec un UNO (Selectronic) pour l'animation réseau et l'autre avec un MEGA (clone) pour le va et vient à trois autorails.
Ma question est donc : Sons_gare.zip est-il directement applicable avec le UNO ou le MEGA que j'utilise?
Après correction suivant le conseil de Thierry, plus de problème de compilation.
J'ai un message " SD fail".
Je crois que moi aussi je vais "fail"  :)

Pour le fonctionnent sur Uno et Mega la réponse est OUI.
Pour le Uno faites attention à la mémoire !
Si le compilateur vous dit que la mémoire disponible est inférieure à 700 octets, ça peut planter car l'objet SD est assez gourmand.

Le message SD fail veut dire que vous avez fait une erreur quel part (il sert à ça : pas de carte SD ou mauvais type de carte ou mal initialisée.   )

Regardez le dernier numéro de Hackable en librairie : il
contient un article très bien fait en attendant que quelqu'un (vous peut-être) se dévoue sur Locoduino.

Là je vous recommande de chercher un peu plus par vous même  >:(
Cordialement
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 07, 2017, 04:25:27 pm
Bon, ça va déjà mieux.
En plaçant le fil CS de la carte SD sur la borne 4 au lieu de la borne 10 : tout va bien ; en lançant Cardinfo on trouve bien la carte et le fichier qui est dedans.
Utilisant la borne 4 j'ai donc "supprimé", dans le programme, le bouton3. Sans importance pour moi.
Avec le bouton 1 on fait bien démarrer ou arrêter le fichier son "annonce1.wav". Si on laisse jouer complètement, il s'arrete à la fin. Donc tout va presque bien.
J'ai plus un crachouillis qu'un bruit d'hélico tel que je l'ai enregistré.
Il est sous 8 bits, en mono et échantillonné à 11025Hz. C'est peut être là le problème.
Merci pour votre aide, je suis sorti du "fail" pour l'instant  ;) ;)
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 07, 2017, 05:05:09 pm
Hop! C'est bon! :D :D

Les cartes je les ai trouvé via "A ma zone" : https://www.amazon.fr/gp/product/B00YMJVLAS/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1 pour 1,70 eur.

Donc je résume :
- avec un UNO mettre le fil CS de la carte micro SD sur la borne 4 du UNO. Ca, je l'ai lu ou vu quelque part et de toute façon, on le découvre en lancant Cardinfo ; Je crois que c'est le truc à retenir pour le brochage d'une carte SD.
- faire la modif de Thierry : void Joue(int a_val);  void printDirectory(File dir, int numTabs); avant le setup.
- pour le fichier son : mono, 8 bits et 16000Hz en échantillonnage.

Pour la conversion des fichiers j'ai utilisé un convertisseur en ligne : http://audio.online-convert.com/fr/convertir-en-wav.
C'est un convertisseur qui m'évite une installation et c'est amplement suffisant pour ce que je fais.


Bon, on va mettre le sifflet du chef de gare pour chaque départ d'autorail. :) :) :)
Qui a dit qu'il fallait un décodeur sound pour le coup de sifflet de départ?  ;) ;)

Merci à tous  :) :) :)
Titre: Re : Un mini module sonore
Posté par: Thierry le janvier 07, 2017, 05:21:42 pm
Content de voir que ça marche !
Titre: Re : Un mini module sonore
Posté par: Dominique le janvier 07, 2017, 05:46:07 pm
C'est exact : ça sert à éviter les décodeurs avec son !

Bravo et merci pour le retour d'expérience.
Titre: Re : Un mini module sonore
Posté par: PhB22 le janvier 07, 2017, 06:22:07 pm
En fait, mais il faut le savoir, il faut lancer Cardinfo pour voir si la carte ne sera pas décrite en "fail" puis lancer listfiles pour voir si le ou les fichiers sont bien repérés.
J'avais lu sur un site qu'il fallait créer un répertoire, sur un autre qu'il fallait ne pas dépasser 6 caractères etc. Bon, je veux bien...

Bref, il vaut mieux lancer les deux programmes précités et qui se trouvent dans la bibliothèque de l'Arduino pour être certain de son coup pour le câblage.

Ah oui, pour l'amplificateur, bien que le fer à souder soit un de mes compagnons favoris, j'ai acheter un module ampli également sur "A ma zone" pour 2,35 eur. J'ai laissé un commentaire (cf. commentaire de A.B.). Pourquoi se prendre la tête? Le potentiomètre d'entrée est en place et le condensateur également ; à brancher sur les broches 9 et GRD (masse) et à alimenter en 9 / 12v si possible filtrés et régulés. https://www.amazon.fr/gp/product/B017CWS7JE/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1
Titre: Re : Un mini module sonore
Posté par: Dominique le janvier 30, 2017, 12:22:00 pm
Un collègue qui a trop peu d'expérience Arduino (à mon goût) a réalisé le montage en photo :

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=669;image)

avec un Nano, un module d'alimentation 12v -> 5v, un module pour carte microSD et un petit ampli.

On voit que c'est extrêmement simple à assembler et, en plus ça marche  :P
C'est donc un montage qui peut entrer dans la catégorie débutant".

Un petit HP se branche sur le bornier bleu en bas à gauche.
Le 12V sur le bornier vert en bas à droite.
Le fil blanc se connecte sur un ILS qui relie la pin 3 au GND au passage d'un train.

La carte microSD est de ce type :
http://www.ebay.fr/itm/2PCS-Micro-SD-TF-Card-Storage-Memory-Module-SPI-Level-conversion-For-Arduino-/311011440000?hash=item4869b9f580

Il a utilisé un petit module amplificateur tels que :
http://www.ebay.fr/itm/2PCS-Power-Supply-TDA2030-Audio-Amplifier-Board-Module-TDA2030A-6-12V-Single-/401086698352?hash=item5d62a15370

Pour ceux que ça intéresse, je prépare un circuit imprimé pour regrouper l'alim, un Mini et la carte µSD
http://forum.locoduino.org/index.php?topic=259.msg2380#msg2380 (http://forum.locoduino.org/index.php?topic=259.msg2380#msg2380)

Mais ne soyez pas trop pressés car je voyage beaucoup jusqu'en Mars.
Titre: Re : Un mini module sonore
Posté par: Dominique le février 20, 2017, 11:37:18 pm
Ceux que le circuit imprimé intéresse, peuvent répondre au sondage ici :

 http://forum.locoduino.org/index.php?topic=259.0 (http://forum.locoduino.org/index.php?topic=259.0)

Cela m'aidera à passer la première commande !

Personnellement j'en réserve 5.

Mais n'oubliez pas d'ajouter une réponse à ce fil avec la quantité souhaitée, afin que je vous identifie !!!
Quand il sera parti en production, je vous préviendrai en MP pour vous demander votre adresse.

Amicalement
Dominique
Titre: Re : Un mini module sonore
Posté par: Thierry le février 21, 2017, 08:16:09 am
A voté pour 2 cartes !
Titre: Re : Un mini module sonore
Posté par: claude91 le février 23, 2017, 12:04:21 pm
A voté pour 3 circuits !
Titre: Re : Un mini module sonore
Posté par: DDEFF le février 24, 2017, 07:08:21 pm
"A que" j'ai voté pour 2 cartes !  ;D
Titre: Re : Un mini module sonore
Posté par: CATPLUS le février 25, 2017, 09:16:33 am
Bonjour
Si pas trop tard j'en suis pour 2 exemplaires
Merci
Titre: Re : Un mini module sonore
Posté par: Dominique le février 25, 2017, 09:48:16 am
Ce n'est pas trop tard !
Je vais passer la commande dans les premiers jours de Mars.
Je vous donnerai la date de livraison et le coût total du CI après la commande chez Electrodragon, ainsi que la liste des composants.
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 02, 2017, 07:19:15 pm
Bonjour à tous,
Dans mon montage d'animations il me faut changer d'Arduino. Le UNO manque de sorties pour faire d'autres animations.
Avec un MEGA tout ira bien d'autant que les broches que j'utilisais sur le UNO sont les mêmes.
Je récupère donc des broches numérotées 14 à 53 sur le MEGA.

Mais il s'agit de brancher une carte SD pour lire des sons en même temps que se font les animations comme par exemple l'hélicoptère, la sirène, la pelleteuse etc.
C'est au niveau des connections entre cette carte SD et le MEGA que je suis un peu perdu.

Question 1 :
Pour un UNO : CS = broche 10, SCK = broche 13, MOSI = broche 11 et MISO = broche 12.

Pour un MEGA, j'ai trouvé : SCK = broche 52, MOSI = broche 51 et MISO = broche 50.
Je ne trouve pas le numéro de la broche pour CS

Question 2 :
Pour la sortie son? Quelle broche pour le MEGA?

Merci d'avance pour votre aide.
Philippe


Titre: Re : Re : Un mini module sonore
Posté par: Dominique le mars 02, 2017, 09:26:46 pm
Question 1 :
Pour un UNO : CS = broche 10, SCK = broche 13, MOSI = broche 11 et MISO = broche 12.

Pour un MEGA, j'ai trouvé : SCK = broche 52, MOSI = broche 51 et MISO = broche 50.
Je ne trouve pas le numéro de la broche pour CS

Question 2 :
Pour la sortie son? Quelle broche pour le MEGA?

Merci d'avance pour votre aide.
Philippe

1) tu mets la broche CS où tu veux mais traditionnellement on choisit la pin 53 sur un Mega.

2) la sortie son est sur la pin 9 car la bibliotheque TMRpcm utilise le Timer 1

https://github.com/TMRh20/TMRpcm/wiki/Advanced-Features (https://github.com/TMRh20/TMRpcm/wiki/Advanced-Features)

Regardes le Wiki de TMRpcm sur Github.

Amicalement
Dominique
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 02, 2017, 11:34:39 pm
Merci Dominique,
Pour le son, il me faudra récupérer cette broche 9 qui servait à commander un relais (mouvement de la benne basculante).
Donc un petit coup de fer à souder sur le connecteur pour passer ce relais sur une autre broche et une petite modif dans la déclaration des variables.  :)
Encore merci pour ton aide.
Philippe
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 03, 2017, 09:57:52 am
Attention, la broche 10 fait aussi partie du Timer 1. Je ne suis pas sur qu'elle soit libre.

Dominique
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 03, 2017, 10:15:42 am
Bonjour Dominique et merci pour tes infos.
La broche 10 est décrite en sortie numérique dans mon montage.
Cependant je vois que certaines applications utilisent la broche 8 en sortie son.
Bon, on va essayer ce W-D, de toute manière on ne risque rien.
C'est toujours un essai de plus  :)
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 03, 2017, 11:53:49 am
Mais est-ce que ces applications utilisent la bibliothèque TMRpcm ?
À mon avis non ;)

Dominique
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 05, 2017, 01:44:59 pm
Bonjour à tous,
Après recherches et essais, j'ai enfin trouvé le câblage d'une carte SD avec un MEGA.
Je suis parti sur la base du fichier de Dominique.
Voici les modifications :

#include <SD.h>                 // need to include the SD library
#define SD_ChipSelectPin 53     // Pour MEGA
#include <TMRpcm.h>             //  also need to include this library...
#include <SPI.h>                // Pour MEGA : CS = 53, SCK = 52, MOSI = 51, MISO = 50
#include <Bounce2.h>            // librairie anti-rebonds pour les boutons
....
#define _SonOut 46              // Pour MEGA : sortie audio = 46 puis ampli et HP

Pour Dominique, j'utilise bien la bibliothèque TMRpcm, puisque c'est ton programme ; merci d'ailleurs pour ce "morceau"  :)).

Maintenant je vais supprimer l'option "boutons" pour qu'à chaque animation le fichier son qui lui est associé se déclenche en même temps.

Autre chose, il semblerait que la longueur du nom d'un fichier son ne doive pas dépasser une certaine longueur de caractères.
J'avais "sirenedumercredi.wav" et cela ne fonctionnait pas ; en réduisant à "sirene.wav" cela fonctionne.  Idem pour "siffletchefgare.wav" qui est devenu "chefg.wav". Par contre "vache.wav" et "coq.wav" fonctionnaient du premier coup.
 Philippe
Titre: Re : Un mini module sonore
Posté par: bobyAndCo le mars 05, 2017, 02:27:03 pm
Bonjour Philippe,

Pour les noms de tous types de fichiers sur la carte SD, ils ne doivent en effet pas dépasser 8 caractères et les extensions 3 caractères ! Qu'on se le dise.

Christophe
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 05, 2017, 02:32:03 pm
C'est noté, merci Christophe :)
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 05, 2017, 04:35:12 pm
Mes essais sont donc terminés.
Le fichiers jouent bien l'un après l'autre ; avec un délai entre deux pour ne pas couper le son du précédent.

Maintenant je me demande comment lancer une action, par exemple démarrer un moteur par PWM ET entendre un fichier son en même temps. C'est le cas de l'hélicoptère.

Je souhaiterais donc lancer le son "helico.wav" et après 0,5 à 1 s démarrer le moteur (ça c'est fait et fonctionne par PWM).
Puis le moteur ralenti et s’arrête avant la fin du fichier son qui se termine ensuite.

J'en demande peut être trop  :)
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 05, 2017, 05:25:42 pm
Je pose des questions et ... ça marche!  ;D ;D

L'essai : après tmrpcm.play((char*)("helico.wav")); j'ai mis à clignoter une led (digitalWrite(LED,LOW) + délai + HIGH + délai etc. Et cela 15 fois.

Le son se lance bien et la led se met à clignoter 15 fois pendant que le son est en lecture.

Il faut penser à mettre un complément de délai afin que le son puisse se terminer normalement. Dans cet essai, le son dure 150s et j'ai 15s de clignotement ; donc j'ai mis ensuite 150 - 15 = 135s de délai.
Bon, faudra ajuster avec le temps de fonctionnement du moteur de l'hélico (ou l'inverse  :) ).

Voila, après la variation de fréquence du PWM, c'est un autre w-d positif.

Je modifierais mon fichier animations avec cette nouvelle étape et je le remettrais dans le fil qui va bien.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 06, 2017, 06:37:16 pm
Bon, je viens de passer commande de 20 cartes chez ElectroDragon, ce qui revient à 1,40€ par carte !
Je devrais les recevoir dans 2 à 3 semaines, je vous préviendrai quand j'aurai des précisions.

Pour le moment j'ai cette liste :
5 cartes pour moi
3 cartes pour Claude91 (est-ce Claude Laurent ?, sinon ça marchera quand même)
2 cartes pour Thierry
2 cartes pour Denis
2 cartes pour Catplus

Je vous remercie de m'envoyer un MP avec votre adresse perso.

Voici la liste des composants :

C1       470µF   aluminium-capacitor   radial-capacitor-100-50
C2       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C3       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C4       47µF   aluminium-capacitor   radial-capacitor-25-70
C5       1µF   unpolarized-capacitor   metallized-polyester-capacitor-50
C6       10nF   unpolarized-capacitor   metallized-polyester-capacitor-50
D1       1N4007   1n400x   do41-long
D2       led   round-led-3mm
IC1       7805   lm78xx   to220up
K1      terminal-block-3-way-5mm   terminal-block-3
K2      terminal-block-3-way-5mm   terminal-block-3
K3      terminal-block-3-way-5mm   terminal-block-3
K4      terminal-block-3-way-5mm   terminal-block-3
K5      terminal-block-3-way-5mm   terminal-block-3
K6      terminal-block-3-way-5mm   terminal-block-3
K7      terminal-block-3-way-5mm   terminal-block-3
K8      grid-100mils-3-1   grid-100mils-3-1
K9      grid-100mils-3-1   grid-100mils-3-1
K10      grid-100mils-3-1   grid-100mils-3-1
K11      grid-100mils-3-1   grid-100mils-3-1
K12      grid-100mils-3-1   grid-100mils-3-1
K13      grid-100mils-3-1   grid-100mils-3-1
K14      grid-100mils-3-1   grid-100mils-3-1
K15      grid-100mils-3-1   grid-100mils-3-1
K16      grid-100mils-1-8   sil8
P1       4,7k   small_trimmer   small_ajustable_resistor
PROMINI1   pro-mini2   pro-mini-2
R1       10k   resistor   mf12
R2       4,7k   resistor   mf12
R3       1k   resistor   mf12
sd1      sdcard   sd-card


On installe, au choix, soit les borniers à vis K1 à K7, soit les barettes males au pas de 2,54 K8 à K15, mais pas les 2 à la fois. A vous de choisir.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 14, 2017, 06:06:19 pm
Ah, ça bouge : les circuits viennent de quitter Hong-Kong et sont en cours d'acheminement via les postes suisse puis française.
Titre: Re : Un mini module sonore
Posté par: DDEFF le mars 14, 2017, 06:23:54 pm
Je comprends pourquoi ça met un mois : ça passe "paaar laaa suuuissse".... ;D ;D ;D ;D ;D
Titre: Re : Un mini module sonore
Posté par: PhB22 le mars 14, 2017, 06:38:52 pm
Bonjour à tous,
Puisque nous sommes dans le son, quelqu'un connaît-il la carte Audio FX - 2x2W de Adafruit?
Possibilité de commander la lecture de 1 fichier audio parmi 10 en commutant une des 10 broches de commande à la masse.
L'arduino n'a plus qu'à présenter une broche au moins sur une des entrées (alimentations mises en commun sur le moins).
Il existe une version avec ampli 2 x 2W incorporée sur le circuit.
Titre: Re : Re : Un mini module sonore
Posté par: Dominique le mars 14, 2017, 06:47:44 pm
Bonjour à tous,
Puisque nous sommes dans le son, quelqu'un connaît-il la carte Audio FX - 2x2W de Adafruit?
Possibilité de commander la lecture de 1 fichier audio parmi 10 en commutant une des 10 broches de commande à la masse.
L'arduino n'a plus qu'à présenter une broche au moins sur une des entrées (alimentations mises en commun sur le moins).
Il existe une version avec ampli 2 x 2W incorporée sur le circuit.

Non, je ne la connaissais pas ! Merci pour ce tuyau.

Mais elle coûte 30$ et c'est beaucoup plus qu'un simple lecteur SD à 1€, d'autant qu'un Arduino Pro-Mini peut très bien gérer plus que 10 sons (jusqu'à concurrence de la taille de la carte SD).

Attendons la version chinoise si c'est de l'open source.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 14, 2017, 06:56:35 pm
Voici une liste de fournisseurs pour les composants de cette carte (en fait, ceux que j'ai utilisé) :


C1       470µF   aluminium-capacitor   radial-capacitor-100-50
http://www.tme.eu/fr/details/uvr1e471mpd/condensateurs-electrolytiques-tht-85c/nichicon/
C2       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82dc3100dq50j/condensateurs-de-polyester-tht/kemet/
C3       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C4       47µF   aluminium-capacitor   radial-capacitor-25-70
http://www.tme.eu/fr/details/uvr1j470med/condensateurs-electrolytiques-tht-85c/nichicon/
C5       1µF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82dc4100aa60k/condensateurs-de-polyester-tht/kemet/
C6       10nF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82ic2100dq50j/condensateurs-de-polyester-tht/kemet/
D1       1N4007   1n400x   do41-long
D2       led   round-led-3mm
IC1       7805   lm78xx   to220up
http://www.tme.eu/fr/details/l7805cv/stabilisateurs-de-tension-non-regles/st-microelectronics/
K1      terminal-block-3-way-5mm   terminal-block-3
http://www.tme.eu/fr/details/tb-5.0-p-3p_gy/borniers-de-serrage-pcb/ninigi/
K2      terminal-block-3-way-5mm   terminal-block-3
K3      terminal-block-3-way-5mm   terminal-block-3
K4      terminal-block-3-way-5mm   terminal-block-3
K5      terminal-block-3-way-5mm   terminal-block-3
K6      terminal-block-3-way-5mm   terminal-block-3
K7      terminal-block-3-way-5mm   terminal-block-3
K8      grid-100mils-3-1   grid-100mils-3-1
K9      grid-100mils-3-1   grid-100mils-3-1
K10      grid-100mils-3-1   grid-100mils-3-1
K11      grid-100mils-3-1   grid-100mils-3-1
K12      grid-100mils-3-1   grid-100mils-3-1
K13      grid-100mils-3-1   grid-100mils-3-1
K14      grid-100mils-3-1   grid-100mils-3-1
K15      grid-100mils-3-1   grid-100mils-3-1
K16      grid-100mils-1-8   sil8
P1       4,7k   small_trimmer   small_ajustable_resistor
PROMINI1   pro-mini2   pro-mini-2
http://www.ebay.fr/itm/401090346945?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
http://www.ebay.fr/itm/311569959184?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
R1       10k   resistor   mf12
R2       4,7k   resistor   mf12
R3       1k   resistor   mf12
sd1      sdcard   sd-card
http://www.ebay.fr/itm/2PCS-Micro-SD-TF-Card-Storage-Memory-Module-SPI-Level-conversion-For-Arduino-/311011440000?hash=item4869b9f580

Pour programmer le Mini :
http://www.ebay.fr/itm/401241175865?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
http://www.ebay.fr/itm/311760212115?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Composants passifs
http://stores.ebay.fr/Distri-Compo/Condensateurs-electrolytique-/_i.html?_fsub=9075072018&_sid=1176693738&_trksid=p4634.c0.m322

Attention, c'est bien ce modèle de Pro-Mini qu'il faut, avec les pins A4 A5 A6 A7 sur le petit côté opposé à l'interface de programmation USB/TTL.

Amicalement
Dominique
Titre: Re : Re : Re : Un mini module sonore
Posté par: PhB22 le mars 15, 2017, 10:34:22 am
Mais elle coûte 30$ et c'est beaucoup plus qu'un simple lecteur SD à 1€, d'autant qu'un Arduino Pro-Mini peut très bien gérer plus que 10 sons (jusqu'à concurrence de la taille de la carte SD).

Attendons la version chinoise si c'est de l'open source.
Bonjour à tous,
Effectivement le prix a de quoi freiner  ;)
De toute manière c'est en rupture de stock.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 21, 2017, 04:29:08 pm
La poste m'a livré aujourd'hui les 20 circuits que j'avais commandés (ils étaient partis le 14).

C'est de toute beauté comme d'habitude chez ElectroDragon :D

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=790;image)

Je vais d'abord la tester en montant les composants (avec qq photos), ensuite je vous dirai si ça marche et je vous les enverrai.

Pour l'expédition c'est super : $4.03 via FREXP: International+laposte.fr (Referencial ETA: 6-13 Days). Il n'y a pas à se plaindre !
Cela fait 1,40€ la carte en arrondissant 1 ou 2 centimes au dessus.
Les frais de poste vont être ravageurs !

Si vous en voulez montée et testée (Thierry ?) je veux bien calculer le prix total en espérant que j'aie assez de composants.

Amicalement
Dominique
Titre: Re : Re : Un mini module sonore
Posté par: Thierry le mars 21, 2017, 04:42:15 pm
Si vous en voulez montée et testée (Thierry ?) je veux bien calculer le prix total en espérant que j'aie assez de composants.

Merci Dominique, mais ça m'amuse de souder, je progresse... Alors je prend le circuit, et avec ta liste de composants je ferais au mieux. Plutôt que de nous envoyer par la poste, peut être pourrais tu nous les donner à Lille ? Je ne suis pas pressé, j'ai beaucoup de choses sur le feu...
Titre: Re : Un mini module sonore
Posté par: DDEFF le mars 21, 2017, 05:07:37 pm
Superbe !
Moi aussi, je peux largement attendre Lille. Excellente idée.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 22, 2017, 12:07:35 am
C'est d'accord  ;D
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 22, 2017, 11:26:56 am
Je viens de monter la première carte et je peux dire déjà qu'elle marche  :D

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=792;image)

Mais j'ai trouvé une erreur : les trous pour les pattes du potentiomètre sont trop petits. J'ai donc soudé le potentiomètre coté composants, ce qui ne pose pas de problème (il faut le souder avant les autres composants autour qui empêcheraient le passage du fer)

J'ai soudé directement un Mini sans support et je ne vous le conseille pas : j'ai l'impression que le mien a un court jus entre les pattes 5 et 6. Ah ces chinois ! Heureusement j'en ai acheté plein !

Pour le son j'ai branché un mini ampli de PC acheté 9€90 chez Boulanger (Listo) qui marche très bien : cet ampli s'alimente en 5V sur un port USB : j'ai coupé la prise USB et branché les fils sur le 5V (bornier) de la carte. De même j'ai coupé la prise son et branché les 2 entrées en parallèle sur la sortie son.

Je vais tester différents modules ampli trouvés sur la baie.
Titre: Re : Un mini module sonore
Posté par: Dominique le mars 22, 2017, 11:33:08 am
Voici un plan avec les pattes de l'Arduino correspondant aux borniers... ou vice versa  :)

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=859;image)
Titre: Re : Un mini module sonore
Posté par: DDEFF le mars 22, 2017, 11:54:49 am
ça me démange, mais j'attendrais Lille. J'ai plein de choses en ce moment.

Denis
Titre: Re : Un mini module sonore
Posté par: Dominique le mai 06, 2017, 10:14:05 pm
 J’ai trouvé quelques bugs dans le croquis que j’ai corrigés dans le fichier joint.
Les pins D2 à D7 permettent de jouer chacune un son.

Il faut bien utiliser la biblio TMRpcm que j’ai modifiée pour agrandir un peu le buffer de lecture de la carte SD.

Il ne faut pas monter la Led D2 pour utiliser le port D6 en entrée, selon le croquis. En fait la led_builtin (la pin 13 est la CLK du bus SPI) indique la lecture de la carte SD.

J'ai également corrigé le plan d'implantation ci-dessus : les noms des pins n'étaient pas correctes.

Amusez-vous bien !
Dominique
Titre: Re : Un mini module sonore
Posté par: Dominique le mai 06, 2017, 10:17:23 pm
Je joins également le schéma de la carte.

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=862;image)
Titre: Re : Un mini module sonore
Posté par: Dominique le mai 07, 2017, 10:27:07 am
Lorsqu'on branche le moniteur (115200 bps, 8,1, nouvelle ligne), on obtient :

Module Sons et Lumieres V1.3 du 6 Mai 2017 par D.Bultez
SD OK

Taper "0" permet d'obtenir la liste des fichiers présents sur la carte SD et leur taille :
0,
1:0000.WAV 68734
2:0001.WAV 94508
3:0002.WAV 48016
4:0003.WAV 50156
5:0004.WAV 394604
6:0005.WAV 48016
7:0006.WAV 96103
8:0007.WAV 93512
9:0008.WAV 198670
10:0009.WAV 218363
fin

La mise au 0v (LOW) des pins 2,3,4,5,6,et 7 déclenche la lecture des sons et l'affichage du N° de son, respectivement :
1 : lit 0001.WAV
2   ---
3   --- 
4   ---
5   ---
6 : lit 0006.WAV

Taper un numéro supérieur à 0 déclenche la lecture des sons :
7, je joue : 0006.WAV
8, je joue : 0007.WAV
9, je joue : 0008.WAV
10, je joue : 0009.WAV

On peut évidement stocker autant de sons que l'on veut sur la carte SD.

Je vous conseille de les nommer "00xy.WAV", mais de toute façon avec des noms courts de 8 caractères maximum. La bibliothèque SDFat nous ramène aux origines de l'informatique, mais c'est mieux que rien :'(

Chaque son doit être codé en WAV (sans compression), en Mono, sur 8 bits par échantillon, 22050 échantillons par seconde (ou moins).
Un conseil : n'utilisez pas trop l'équaliser qui aura tendance à saturer le convertisseur logiciel et je trouve la qualité meilleure sans.

J'utilise Audacity pour triturer mes sons.

Pour des sons  courts de quelques secondes, il n'y a pas de problème.
Pour des sons longs (plusieurs minutes, le soft se plante parfois).

Amusez-vous bien  ;) :D ;D
Titre: Re : Un mini module sonore
Posté par: Dominique le mai 07, 2017, 11:03:56 am
Voici une photo du projet complet :

(http://forum.locoduino.org/index.php?action=dlattach;topic=157.0;attach=864;image)

- Le circuit imprimé équipé
- le fil vert branché sur le GND sert à tester les sons en touchant les contacts
- la programmation et le moniteur passent par un mini module USB : j'ai soudé 5 fils (un bout de nappe, c'est plus solide) ) du coté du module (5V, GND, Tx, Rx, DTR) et un connecteur femelle à l'autre bout (type Molex) et j'ai fixé le module à l'intérieur d'une boite de transport de carte SD, transparente, ce qui permet de voir les leds, notamment pendant le téléversement de logiciel.

Ainsi le module de programmation est bien protégé et est réutilisable à l'infini : c'est, en gros, la moitié du prix d'un Nano et c'est pour cela que j'utilise des Mini dans ce genre de projet.
Titre: Re : Un mini module sonore
Posté par: Tony04 le mai 27, 2018, 05:44:36 pm
Bonjour,

idée un peu farfelue peut-être...

Bien que ce sujet soit très ancien et ne voulant pas en ouvrir un nouveau (je vais me faire taper sur mes petits doigts), j'y vois un grand intérêt si la carte arduino est reliée par bus CAN sur l'ensemble du réseau (il faut y passer vous verrez).

En effet le module MP3 permet (théoriquement) de jouer 99(dossiers) x 255(fichiers mp3) sons différents. Comme la carte Arduino est en réseau, il est très facile de déclencher un son (fichier) précis pour un accessoire précis (soudure à l'arc, porte de garage qui grince, frein de loco, annonce en gare d'un train (si reconnaissance loco ou gestionnaire de métier), pelle mécanique, puits de pétrole, forgeron, etc...)

Plus sophistiqué encore: On dispose plusieurs haut-parleurs à différents endroit du réseau, on utilise un ampli stéréo (la carte MP3 l'est), on équipe la carte Arduino d'autant de relais que de HP et on s'amuse à commander les relais (selon l'endroit à sonoriser), le volume (selon la distance de la loco par exemple), la balance pour faire une effet de fading d'un train ou d'un avion qui passe et tout cela avec une parfaite synchronisation du son et de l'action.

Un exemple de synchro son/action avec un arduino que j'ai réalisé ici: https://www.youtube.com/watch?v=KphRCKHpDDg&feature=youtu.be
Hé oui, l'arduino est partout  8) .

A vous d'inventer

Cordiales salutations à tous
Antoine

   
Titre: Re : Un mini module sonore
Posté par: bobyAndCo le mai 27, 2018, 06:58:17 pm
C'est très bien tes musiciens   :) :) :)

Tu as totalement raison, il est très simple de faire jouer par différents Arduinos en CAN. Je viens moi même de le réaliser à partir de plusieurs cartes sur un UNO dédié avec son mini player MP3.

Et je compte bien aller plus loin car je viens d'acheter 6 modules mini player MP3 sur Ebay à 1,20€ pièce port gratuit ! Alors pourquoi se priver.

https://www.ebay.fr/itm/TF-Card-U-Disk-Mini-MP3-Player-Audio-Voice-Module-For-Arduino-DFPlay-Mini-Board/173243875082?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2648


Titre: Re : Un mini module sonore
Posté par: Tony04 le mai 27, 2018, 07:58:55 pm
Bonsoir Bob,

pourquoi "faire jouer par différents Arduinos en CAN", dans mon idée 1 seul suffit non ?
Titre: Re : Un mini module sonore
Posté par: bobyAndCo le mai 27, 2018, 08:42:04 pm
Oui mais dans cas que je cite, il s'agit d'une situation particulière où plusieurs Arduino ont des programmes différents à executer et selon les étapes du programme, ils sont amenés à demander la lecture d'un morceau. Donc intérêt du CAN ici, tous les Arduino peuvent envoyer sur le même bus et grâce aux filtres, seul l'Arduino qui joue les sons peut intercepter les messages le concernant.
Titre: Re : Un mini module sonore
Posté par: Dominique le mai 27, 2018, 09:14:09 pm
C’est ce que je comptais faire aussi avec les cartes son citées plus haut. Le bus SPI est sorti à côté de la carte SD pour y raccorder une carte Can Nirem.

L’erreur que j’ai faite est que le connecteur n’est pas compatible avec celui de la carte Nirem. Je ferai mieux la prochaine fois, c’est utile d’en discuter sur le forum.

J’ai fait ces cartes pour tester les possibilités et entre temps je fais autre chose, mais je vais y revenir  ;D
Titre: Re : Re : Un mini module sonore
Posté par: Tony04 le mai 27, 2018, 11:24:42 pm
Oui mais dans cas que je cite, il s'agit d'une situation particulière où plusieurs Arduino ont des programmes différents à executer et selon les étapes du programme, ils sont amenés à demander la lecture d'un morceau. Donc intérêt du CAN ici, tous les Arduino peuvent envoyer sur le même bus et grâce aux filtres, seul l'Arduino qui joue les sons peut intercepter les messages le concernant.

Ok mais alors il te faudra autant d'amplis que de modules mp3 si j'ai bien compris
Titre: Re : Re : Re : Un mini module sonore
Posté par: Dominique le juin 16, 2018, 12:26:54 pm
Ok mais alors il te faudra autant d'amplis que de modules mp3 si j'ai bien compris

Oui c'est sûr mais le but est de mettre plusieurs petites cartes avec leur ampli (on en trouve à 2€ qui sont très bien) dans le décor du réseau (passage à niveau, sortie de tunnel, gare, église, etc...) et de les activer soit avec des capteurs locaux, soit avec le gestionnaire (d'où l'interêt du bus Can).

Par exemple, en sortie de tunnel le son émis sera celui de la loco qui va sortir : il faut donc connaitre le numéro de train et ses caractéristiques, ce qui est le boulot du gestionnaire.

Et ça s'ajoute au fur et à mesure de la construction du réseau.
Titre: Re : Un mini module sonore
Posté par: BB9004 le juin 19, 2018, 07:31:26 am
Etant intéressé par un futur ajout d'une animation sonore multiple sur un décor en HO, ce sujet, et ses développements, m'intéresse vivement :
> merci aux contributeurs pour les détails de conception / réalisation (plus qu'utiles pour qu'un débutant puisse comprendre...) et les liens des cartes !

Le film YT d'Antoine est très motivant quand on entend le niveau de réalisation possible avec Arduino ...
(une idée sur le nombre d'heure, coté Arduino,  pour obtenir ce résultat ? )
 8)
Titre: Re : Un mini module sonore
Posté par: Tony04 le juin 20, 2018, 07:18:12 pm
Bonjour BB9004,

je suppose que tu parles du film des marionnettes; en ce qui concerne l'arduino environ 1 mois de travail (très facile) mais pour la mécanique j'ai mis pas loin de 8 mois car je suis reparti de 0.

Bonne soirée
Antoine