Mise en oeuvre : Chapitre 1 - Détection de chocs

Le forum du Snootlab Starter Kit

Mise en oeuvre : Chapitre 1 - Détection de chocs

Message non lude Stéphane » Lun 6 Juin 2011 14:55

[Presentation du montage]

Montage N°1 : Détection de chocs ou de mouvements.

Dans le chapitre précédent, nous avons appris comment interfacer un capteur. Ici, nous allons donc coupler un capteur piézoélectrique détectant les chocs et vibrations avec un buzzer. Plus le choc infligé à la table sur laquelle est posé le capteur sera fort, ou plus le capteur subira une accélération forte, plus le buzzer sonnera de façon aiguë. La progression par rapport au précédent montage consiste à asservir un indicateur (ici sonore) en fonction de l'information délivrée par un capteur. Les utilisations de ce simple montage sont nombreuses et faciles à trouver, je vous fais confiance pour être inventifs !

[Présentation des composants]

Les composants utilisés sont :

- Arduino Uno (x1)
- Breadboard (x1)
- Capteur de vibrations (x1)
- Buzzer (x1)
- Résistance de 10 MOhms (x1)
- Résistance de 150 Ohms (x1)

Allez, maintenant que nous avons toutes les billes, ne perdons pas de temps, assemblons les !

[Le Montage]

Voici comment relier les composants entre eux. Le logiciel utilisé ici est Fritzing, il permet de donner une vue claire à vos montages, à mi-chemin entre la photo et le schéma électronique, et nous, à Snootlab, on aime ça !

Donc, notre montage se présente ainsi :

STK_ch1_schema.jpg
STK_ch1_schema.jpg (129.21 Kio) Vu 3849 fois


Les couleurs ont été choisies de cette manière :
- Les fils rouges représentent le Vcc(+5V)
- Les fils noirs représentent le GND(0V)

[Explications sur le montage]

Wikipedia a écrit:"La piézoélectricité (du grec "piézein" : presser, appuyer) est la propriété que possèdent certains corps de se polariser électriquement sous l’action d’une contrainte mécanique et réciproquement de se déformer lorsqu’on leur applique un champ électrique."


La première propriété est utilisée dans le cas de notre capteur de chocs, la deuxième est utilisée dans les buzzers. Il est nécessaire cependant de bien lire la datasheet du capteur pour choisir la résistance à mettre en parallèle, ici 10 MOhms.
Dès que la lame du capteur subira une déformation liée à une accélération ou à un choc, le capteur générera une tension, proportionnelle aux g reçus (le g étant une unité de mesure d'accélération, 1 g = 9.81m/s²). Cette tension générée, que l'on récupère aux bornes de la résistance, est appliquée aux bornes d'une entrée analogique.
La valeur numérique correspondante sera utilisée par la fonction tone(), pour déterminer la fréquence du signal à émettre.
Vous remarquerez que le capteur n'a pas été interfacé avec un circuit d'adaptation d'impédance, comme décrit dans le premier chapitre. Essayez avec, essayez sans et découvrez par vous-mêmes ce qui change dans ce cas, expérimentez !

[Go for Code]

Code: Tout sélectionner
/*
    Application BASIC pour le STK Snootlab : N°2
    Logiciel servant à détecter un choc ou une accélération sur une surface, grâce au capteur piézo à lame,
    et émettre un son avec le buzzer, en fonction de l'intensité du choc détecté.
    Le convertisseur Analogique/Numérique de l'Arduino à une résolution de 2^10 bits = 1024 valeurs.
*/

#define seuil_declenchement 15

// Déclaration des variables relatives au capteur piézo
unsigned int P_value = 0;
unsigned int periode_us = 0;
unsigned int half_period = 0;
unsigned int ref_temps = 0;

// Déclaration des pins analogiques reliées aux bornes du capteur et du buzzer
char P_pin = 0;
char Buz_pin = 2;

// Configuration
void setup(void)
{
  pinMode(Buz_pin, OUTPUT);
  Serial.begin(9600);            // Mise en place de la communication série, via l'USB, à 9600bps
  analogReference(DEFAULT);        // Positionner la référence du convertisseur pour : 5v=1023
}


//  MAIN
void loop(void)
{
  while(P_value <= seuil_declenchement)      // Tant que le choc ressenti ne dépasse pas une certaine intensité, ne rien faire
    { 
     P_value = analogRead(P_pin);    // Récupérer la valeur convertie de la tension aux bornes du flex
     Serial.write(P_value);          // Envoyer cette valeur sur la liaison série
    }
       
  P_value*=7;            // Multiplication de P_value pour que la fréquence sonore
                         // soit comprise entre 110 Hz et 7 kHz
   
  tone(Buz_pin, P_value);            // Génération d'un son à cette fréquence, d'une durée de 500ms
  P_value = 0;
  delay(500);
  noTone(Buz_pin); 

}


[Conclusion]

Et voici, c'est terminé pour aujourd'hui !
Désormais, vous êtes capable de réaliser une chaîne comprenant un capteur, et un élément de signalisation dépendant de ce même capteur.
Interfacez ceci avec une table traçante pour ainsi réaliser un mini détecteur sismique, ou au contraire, faites sonner le buzzer s'il n'y a pas de vibrations détectées, au cas où vous soyez endormis devant votre ordinateur !
Imaginez ! Explorez ! Nous vous donnons les briques et les explications, à vous de faire votre maison ! Surtout, faites partager vos expériences à notre communauté, posez des questions, échangez vos travaux, vivez open-hardware !
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40

Re: Mise en oeuvre : Chapitre 1

Message non lude lapiin » Jeu 28 Juil 2011 23:50

bon ... Pour celui là j'ai déjà un peu plus de mal ....

je m'explique :P
Bon déjà dans le starterkit .... ya as de 10Mohm donc j'ai fait une jolie bouse pleine de résistances ....
Image
donc au final le montage donne :
Image
Et !!!! ca merde ! ya une petite musique qui change tout le temps .... je veux bien que le truc soit sensible toussa que la terre tourne blablabla ... mais hum .... je pense qu'il y a un truc qui cloche :P
bon je verrai demain =}
lapiin
 
Messages: 12
Inscription: Mer 27 Juil 2011 21:01
Localisation: Baziège (31)

Re: Mise en oeuvre : Chapitre 1

Message non lude Stéphane » Lun 1 Aoû 2011 00:24

Bonjour,

Effectivement il n'y a pas de résistances de 10MOhms dans le starter kit. Le montage prend exemple avec une résistance de 10MOhms, mais comme indiqué dans l'encadré traitant de l'effet piézo électrique, on recommande en parallèle l'utilisation d'une R de plusieurs MOhms, 10MOhms ici n'était qu'à titre indicatif. Cependant, je suis conscient que ce n'était peut-être pas clair, je vais corriger ceci rapidement ! :)

Quand au fait que cela sonne en permanence, effectivement cela dépend de l'environnement.
Essaye de mettre un seuil de déclenchement un peu plus haut, pour voir quel est le niveau de l'oscillation de fond sur ton bureau, le seuil étant fixé à "15" par défaut dans le code :

while(P_value <=15)


Voilà, désolé de la réponse tardive, j'espère t'avoir aidé !

Au passage, joli pad de souris, moi je tourne sur du QcK+ de steelSeries :)
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40

Re: Mise en oeuvre : Chapitre 1

Message non lude clement127 » Mer 17 Aoû 2011 19:32

Concernant le problème que ça sonne en permanence, cela vient uniquement du fait que le code mentionne le connecteur 5 au lieu de A0 pour la mesure du piezzo.

Merci pour le montage !!
clement127
 
Messages: 1
Inscription: Mer 17 Aoû 2011 19:30

Re: Mise en oeuvre : Chapitre 1

Message non lude Stéphane » Jeu 18 Aoû 2011 07:56

Oups, moi qui croyais que c'était un problème de seuil, je n'avais pas pensé à vérifier à la source !

Code corrigé :)
Avatar de l’utilisateur
Stéphane
 
Messages: 179
Inscription: Lun 2 Mai 2011 09:40


Retourner vers Starter Kit

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron