Retrouver la position d'un choc avec deux capteur piezo

Bonjour,

Je suis nouveau sur le site et je ne m'y connais pas vraiment en codage arduino. J'aimerai avoir votre aide car j'ai un projet à réaliser avec 2 capteur de vibration piezo (pour commencer) et une carte arduino. J'aimerai récupérer le données d'un choc le long d'une tige (ou règles) pour , avec des calcul, savoir la position de l'impact sur la tige.
Je ne sais pas non plus comment cabler exactement les capteur sur la carte, même si je sais que ce n'est pas très dur pouvez vous me dire comment faire ?

Capteur piezo de ce type : http://www.ebay.fr/itm/like/251287877234?lpid=97
Capteur arduino due : http://arduino.cc/en/Main/arduinoBoardDue

Merci d'avance pour vos réponse.

QuentinM:
Bonjour,

Je suis nouveau sur le site et je ne m'y connais pas vraiment en codage arduino. J'aimerai avoir votre aide car j'ai un projet à réaliser avec 2 capteur de vibration piezo (pour commencer) et une carte arduino. J'aimerai récupérer le données d'un choc le long d'une tige (ou règles) pour , avec des calcul, savoir la position de l'impact sur la tige.

Capteur piezo de ce type : http://smecatronix.com/fr/capteurs/199-capteur-de-vibration-avec-disque-piezo.html
Capteur arduino due : http://arduino.cc/en/Main/arduinoBoardDue

Merci d'avance pour vos réponse.

QuentinM:
Je suis nouveau sur le site et je ne m'y connais pas vraiment en codage arduino. J'aimerai avoir votre aide car j'ai un projet à réaliser avec 2 capteur de vibration piezo (pour commencer) et une carte arduino. J'aimerai récupérer le données d'un choc le long d'une tige (ou règles) pour , avec des calcul, savoir la position de l'impact sur la tige.

Bonjour
Il manque enorment d'infos pour t'orienter sur une faisabilité ou pas

les premieres qui me viennent à l'esprit :
longueur de la tige/regle
materiaux de cette regle
milieu dans lequel est positionnée cette regle

Bonjour,
J'aime bien l'idée ... Mais...
Le problème me semble être la précision :
vitesse du son ( Vitesse du son — Wikipédia )
Pour l'acier 5600 m/s
Vitesse horloge : carte uno 16000/s due 84000/s Rpi max 1000000/s
Précision max =>uno 0.35 m due 0.067 m. Pi 0.0056 m
Et encore c'est 1 cycle d'horloge :frowning: et il y a au mini 2 mesures + le traitement du signale.
Question :
vitesse max d'acquisition des piezos en fonction de la carte ?
Y a il moyen de speeder le temps d'acquisition par du hardware... ?

Solution :

  • carte très rapide , code optimisé, matière très lente ex plomb 1600 m/s mais je reste perplex...
  • Ordinateur + carte son + processing ???

Le problème me semble être la précision :

Sans parler des phénomènes d'ondes stationaires.

Oui le traitement des informations des piezo doit être poilu....

cela me rappelle un projet qui a disparu : "sensitive objecte"

Dans cette vidéo j'ai l'impression qu'il n'y a que deux capteurs là c'est très très fort :astonished:

S'il y en a qui se sente reprendre un projet similaire en open source… Je suis joueur ]:smiley:

Veuillez m'excuser de mon temps de réponse mais je n'avais reçu aucune notification pour vos réponse.

Je reviens donc vous solliciter car j'ai quelques début de piste mais cela va dépendre, comme vous l'avez dit, du matériau et je pense que la longueur de celui si va dépendre de la précision de la carte. Malheuresement je n'arrive toujours pas à dissocier les deux signaux obtenus par chacun des capteurs. Sur le logiciel arduino chacun capteur envoi simultanément ce qu'il récupère comme vibration mais je n'arrive pas à savoir lequel correspond à mon premier ou second capteur.

Pour le matériau je pense que le plomb serai en effet ce qu'il y a de plus lent, mais j'ai aussi vu le sable (sec) je ne vois pas très bien comment mettre mon expérience en oeuvre avec du sable mais si vous avec des idées.

Si vous avez des idées de code je suis preneur. Je rame un peu :~

Merci d'avance pour vos réponse et cette fois ci je vais regarder régulièrement pour vous répondre.

QuentinM:
je n'arrive pas à savoir lequel correspond à mon premier ou second capteur.

Ils sont bien branchés chacun sur une pin d'entrée différente ?

Une idee ...
Système actif type sonar
2 capteurs de distance ultra son...
Regardez la lib des capteurs ultrason .(playground )

J'ai bien vérifier les deux capteur sont chacun sur un pin diffèrent.

Sinon pour l'option des capteur de distance, si j'ai bien compris il faudrait que je remplace mes capteur piezo par des capteur de distance, c'est ça ?

QuentinM:
J'ai bien vérifier les deux capteur sont chacun sur un pin diffèrent.

Sinon pour l'option des capteur de distance, si j'ai bien compris il faudrait que je remplace mes capteur piezo par des capteur de distance, c'est ça ?

bonjour
quelles sont les dimensions, materiaux, ...etc, de ton banc de test ?
AMHA et intuitivement
je ne pense pas qu'un arduino soit en mesure de faire du traitement differentiel suffisamment precis pour calculer un point/zone d'intersection utilisable.

envoie ton code et le descriptif du montage!!! ainsi que les signaux reçu

pour mon idée sonar on détourne l'utilisation des capteurs de distances U.S qui sont des piezos !
(ils sont rapide, calcule des distance a partir de 10 cm dans l'air ??? l’électronique est déjà existante et les code/librairie documente)

on peut prendre le problème autrement :
un piezo met en vibration le milieu
un autre piezo écoute la vibration
le code étalonne
le doit modifie la vibration en réception (principe des cordes de guitare)
le code déduit la distance...

je ne peut pas tester en ce moment ... :~

ArtBotHack:
envoie ton code et le descriptif du montage!!! ainsi que les signaux reçu

pour mon idée sonar on détourne l'utilisation des capteurs de distances U.S qui sont des piezos !
(ils sont rapide, calcule des distance a partir de 10 cm dans l'air ??? l’électronique est déjà existante et les code/librairie documente)

on peut prendre le problème autrement :
un piezo met en vibration le milieu
un autre piezo écoute la vibration
le code étalonne
le doit modifie la vibration en réception (principe des cordes de guitare)
le code déduit la distance...

je ne peut pas tester en ce moment ... :~

Le montage est composé de 2 capteur de vibration piezo relier à la carte arduino sur les ports A0 et A1. Pour les signaux obtenus, le problème c'est que je ne récupère que des série de chiffres sur le moniteur qui me donne les valeurs que captent les deux capteur mais toute à la suite.
Le tige sera comme tu me la proposer un tige de plomb d'environ 1m peut être moins.

J'ai quelque problème avec le code je n'arrive même plus a la testé je vous laisse voir : (j'ai récupérer le code pour un sensor sur le site arduino puis je l'ai adapté à mes deux capteur mais je ne connais pas vraiment le langage arduino :/) : cf attach (vous pouvez oublier la variable tension)

Sinon ta deuxième idée me plait pas mal, mais avec ma mauvaise connaissant de langage arduino je ne vais pas aller très loin :confused:
Chez moi je n'ai pas non plus les outils nécessaire pour testé tout cela malheureusement.
Si tu vois des composants qu'il me manque pour mettre en oeuvre l'expérience je suis à ton écoute :slight_smile:

Si le code ne s'affiche pas, ce que j'ai pour l'instant est assez simple je défini mes capteur avec leurs entrées et je demande à la carte de lire ce que je reçois lors d'un choc.

colle ton code entre les balise [ code ] et [ /code ] sans les espaces

pour afficher les 2 capteurs
.....

Serial.println("=====");
Serial.println("capteur 1");
Serial.println(sensor1);
Serial.println("------");
Serial.println("capteur 2");
Serial.println(sensor2);
Serial.println("=====");

Voila ce que j'ai, le problème c'est que sur le moniteur je ne récupère plus rien donc impossible de savoir si ça marche. Avant j'avais au moins des 0 quand je ne brancher aucun capteurs.

Pense tu que je devrais acquérir des capteur de distance US ? Si oui avec quel câbles (ou accessoires) ?

const int sensor1 = A0;// le piezo est connecté au port A0
const int sensor2 = A1;
  



int sensorReading = 0;
int sensorReading2 = 0;
         


void loop() {
  
  sensorReading = analogRead(sensor1);
  
  sensorReading2 = analogRead(sensor2);
  Serial.println("=====");
  Serial.println("capteur 1");
  Serial.println(sensorReading);
  Serial.println("------");
  Serial.println("capteur 2");
  Serial.println(sensorReading2);
  Serial.println("=====");
  

  delay(100);  
}

Il y a bien un Serial.begin dans le setup, et un baudrate réglé dans l'IDE à la même valeur ?

Ah en effet :confused: le baud rate n'était pas bien réglé et j'avais oublier de remettre le serial.begin. Merci

Voila comment cela ce présente dans le moniteur série, maintenant je ne sais pas vraiment comment traiter ces info pour mon problème. PS : j'ai régler le delay à 1000 pour que ce soit lisible pour moi. PS2: le capteur 2 n'est pas relier.

=====
capteur 1
0
------
capteur 2
92
=====
=====
capteur 1
878
------
capteur 2
75
=====
=====
capteur 1
654
------
capteur 2
27
=====
=====
capteur 1
0
------
capteur 2
56
=====
=====
capteur 1
0
------
capteur 2
55
=====

QuentinM:
Voila comment cela ce présente dans le moniteur série, maintenant je ne sais pas vraiment comment traiter ces info pour mon

bonsoir
pour recentrer le (ton) probleme :
tu veux/souhaiterais avec un petit arduino connaitre la position du point d'impact d'un "choc" sur une barre de plomb de l= ~1m
avec 2 capteurs positionnés chacun à une extremité ?
Quelle ordre de grandeur de precision demande/souhaite tu obtenir de cette "mesure" ?

pour rappel "célérité" du plomb= 1200 m/seconde

Artouste:
bonsoir
pour recentrer le (ton) probleme :
tu veux/souhaiterais avec un petit arduino connaitre la position du point d'impact d'un "choc" sur une barre de plomb de l= ~1m
avec 2 capteurs positionnés chacun à une extremité ?
Quelle ordre de grandeur de precision demande/souhaite tu obtenir de cette "mesure" ?

pour rappel "célérité" du plomb= 1200 m/seconde

Oui c'est cela, je souhaiterai (si possible) un précision d'environ 10cm je pense que cela suffirai.