Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Perroquet buzzer

Perroquet buzzer

De Wikidebrouillard.

m
 
(59 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
{{avertissement}}
{{avertissement}}
-
{{vidéo|numérovidéo = <videoflash type="mediaspip" num = 1>entrer ici l'URL de la vidéo en flash sur http://mediaspip.ptitdeb.infini.fr|400|300</videoflash>}}
+
{{vidéo|numérovidéo = <videoflash type="mediaspip" num = 1>http://mediaspip.ptitdeb.infini.fr/IMG/flv/arduinoWWWW-encoded.flv|400|300</videoflash>}}
=='''Présentation de l'expérience'''==
=='''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çu par un objet tel un perroquet qui répète ce qu'il entend.
+
 
 +
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''' ==
== '''Matériel''' ==
-
* [[Image:matériel1.jpg|50px]] matériel 1
+
 
-
* [[Image:matériel2.jpg|50px]] matériel 2
+
* [[Fichier:ArduinoUno_R3_Front.jpg|50px]] Un [[Arduino]]
-
*...
+
* [[Fichier:Piezo_Speaker.JPG|50px]] 2 [[buzzer| buzzers]] piezo-électriques
 +
* [[Fichier:Resistance5k_bb.jpg|50px]] Une [[résistance]]
 +
* [[Fichier:Ledxp.jpg|50px]] Une [[LED]]
 +
* [[Fichier:Plaquecablage_bb.jpg|50px]] Une [[breadboard]]
 +
* [[Fichier:Fils.jpg|50px]] Des [[fil électrique| fils électriques]]
== '''L'expérience''' ==
== '''L'expérience''' ==
-
==='''La manipulation'''===
+
==='''La réalisation'''===
-
Je décris l'expérience
+
-
==='''Que constatons-nous ?===
+
* Réaliser le montage suivant :
-
Après une série de coups reçu par l'objet, nous attendons quelques secondes puis nous entendons la série de coups reçu par l'objet.
+
[[Image:Perroquet_bb.jpg|500 px]]
 +
 
 +
* Lancer le logiciel arduino.
 +
 
 +
* Copier le code :
 +
 
 +
    <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;
 +
      }
 +
    }</code>
 +
 
 +
 
 +
* 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''' ==
== '''Explications''' ==
==='''De manière simple'''===
==='''De manière simple'''===
-
Je propose une explication scientifique de manière simple, de la façon la plus imagée possible. Imaginez que vous expliquez l'expérience à un enfant ou à une personne non scientifique (éviter le tutoiement !
 
-
=== '''Questions sans réponses''' ===
+
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.
-
Ici je mets les questions soulevées par l'expérience, qui n'ont pas trouvé de réponses !!
+
 
 +
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''' ===
=== '''Allons plus loin dans l'explication''' ===
-
Développons les concepts scientifiques associés.
+
 
-
Ne pas hésiter à faire des liens avec Wikipédia.
+
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''' ==
== '''Liens avec d'autres expériences''' ==
-
==='''Expériences sur Wikidébrouillard'''===
+
=== '''Expériences sur Wikidébrouillard''' ===
-
Indiquer ici les expériences de Wikidébrouillard.
+
-
==='''Autres expériences'''===
+
[http://www.wikidebrouillard.org/index.php/Cat%C3%A9gorie:Arduino Catégorie Arduino]
-
Autres expériences avec le même concept, recherche sur internet (indiquer les liens).  
+
-
== '''Applications : liens avec le quotidien''' ==
+
=== '''Autres expériences''' ===
-
C'est de la culture, ça aide à comprendre le monde !! N'hésitez pas à lancer la discussion de votre fiche (après l'avoir sauvegarder !) afin de trouver de l'aide pour la compléter
+
== '''Lieux propices à sa réalisation''' ==
== '''Lieux propices à sa réalisation''' ==
-
Indiquer ici des lieux où tout le matériel nécessaire pour réaliser cette expérience est disponible.
+
 
 +
Tout endroit en dehors d'un lieu humide ou trop bruyant.
=='''Catégories'''==
=='''Catégories'''==
-
Penser à fixer les disciplines scientifiques qui correspondent à l'expérience. Remplacer "à classer" par la discipline correspondante.
 
-
[[Catégorie:à classer]]
+
[[Catégorie:informatique]]
-
[[Catégorie:Vidéo à réaliser]]
+
[[Catégorie:électronique]]
-
[[Catégorie:Orthographe et style à corriger]]
+
[[Catégorie:arduino]]
-
[[Catégorie:Contenus à développer]]
+
[[Catégorie:technique]]
-
[[Catégorie:Fiche à Valider]]
+
-
[[Catégorie:expérience]]
+

Version actuelle en date du 28 février 2013 à 16:57

Article incomplet en cours de rédaction
Modèle:Vidéo


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

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