Perroquet buzzer

De Wikidebrouillard.

Article incomplet en cours de rédaction
La vidéo "Perroquet buzzer"


Sommaire

Présentation de l'expérience

Nous allons réaliser un système qui permet d'enregistrer et répéter des séries d'impacts reçues par un objet, tel un perroquet qui répète ce qu'il entend.

Matériel

L'expérience

La réalisation

  • Réaliser le montage suivant :

  • Lancer le logiciel arduino.
  • Copier le code :
    /////////// Déclaration des variables
    // ces variables sont constantes
    const int CAPTEUR = A0;// le piézo est connecté à la broche Analogue 0
    const int LED = 13;//la LED est connecté à la broche 13
    const int ENCEINTE = 12;//l'enceinte est connecté à la broche 12
    const int SEUIL = 1;//valeur de seuil
    const int ANTIREBOND = 100;//temps de fonctionnement de l'antirebond
    const int FIN = 2000;//temps d'attente après le dernier coup
    const int NOMBREMARQUEURS = 50;//nombre de coups maximum
    // ces variables changent
    int lectureCapteur = 0;// variable pour stocker la valeur du capteur
    int ledEtat = LOW;//etat de la LED, LOW:eteint, HIGH:allumé
    int mode = 1;//ecriture ou lecture
    int posTableau = 0;//
    long temps = 0;
    long marqueurTemps[NOMBREMARQUEURS];
    int i = 0;
    boolean DEBUG = false;
    boolean BOUCLE = false;
    void setup() {
      pinMode(LED, OUTPUT);
      Serial.begin(9600);
    }
    /////////// Boucle principale
    void loop() {
      switch(mode) {
      case 1: //mode enregistrement
        digitalWrite(LED, HIGH);
        if(DEBUG == true) Serial.println("mode 1");
        // lecture de la valeur du piézo
        lectureCapteur = analogRead(CAPTEUR);
        // si la valeur captée est supérieure au seuil choisi et que le temps écoulé 
        //depuis le dernier impacte est supérieur au temps de l'ANTI-REBOND,
        //alors  on rentre dans la condition
        if (lectureCapteur >= SEUIL && millis() - temps >= ANTIREBOND) {
          marqueurTemps[posTableau] = millis() - temps;
          posTableau++;
          temps = millis(); //mise à jour du temps courant
        }
        if (millis() - temps >= FIN && posTableau >=1) {
          posTableau = 0;
          mode = 2;
          if (DEBUG == true) Serial.println("mode 2");
          temps = millis();
        }
        break;
      case 2:
        digitalWrite(LED, LOW);
        if (lectureCapteur >= 0 ) {
          for (i=1; i<NOMBREMARQUEURS; i++) {
            tone(ENCEINTE, 1800, 100);
            delay(marqueurTemps[i]);
            marqueurTemps[i]=0;
          }
          posTableau = 0;
     
          mode = 1;
          if (DEBUG == true) Serial.println("mode 2 stop");
          temps = millis();
          break;
        }
        break;
      }
    }


  • Relier l'arduino au pc.
  • Téléverser le programme.
  • Attendre que la LED soit allumée.
  • Produire une série de sons.
  • Attendre que la LED soit éteinte.
  • Écouter la série de sons.
  • Attendre que la LED soit allumée.
  • Recommencer.

Que constate-t-on ?

Après une série de sons perçus par l'objet, on attend que la LED s’éteigne, puis on entend une répétition de la série de sons produits précédemment. Ensuite la LED se rallume, signalant la possibilité de réitérer l’expérience.

Explications

De manière simple

Le programme enregistre la série de sons reçus, puis après un temps d'attente sans bruit, il envoie un signal à l'enceinte qui le restituera.

La LED est allumée tant que l'on peut enregistrer, et est éteinte lorsque la carte lit la série de sons.

Après chaque son reçu, il faut un temps avant de pouvoir recevoir un autre son, on appelle cela l'antirebond. Il permet de ne pas enregistrer deux sons lorsqu'un seul est produit.

Pour que le son soit enregistré, il faut qu'il dépasse le seuil de détection, car sinon il y aurait trop de son détecté.

Allons plus loin dans l'explication

Une LED est un composant qui s'illumine quand un courant la traverse. La propriété de la LED est qu'elle ne s'illumine que si le courant la traverse dans un seul sens, de l'ANODE (la patte la plus longue) à la CATHODE (la patte la plus courte).

Un piezo est constitué d'une lamelle qui, lorsqu'elle est déformée, émet une impulsion électrique. À l'inverse, lorsqu'elle reçoit une impulsion, la lamelle vibre et émet un son.

Liens avec d'autres expériences

Expériences sur Wikidébrouillard

Catégorie Arduino

Autres expériences

Lieux propices à sa réalisation

Tout endroit en dehors d'un lieu humide ou trop bruyant.

Catégories

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraitsAnnuaire
AR
FI

Perroquet buzzer

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique