Staross a écrit:
Le problème est certainement l'absence de terre quelque part
peut-etre un appareil dans ma chambre alors, mais c'est pas de ce côté qu'il faut corriger le problème
Staross a écrit:
Si c'est un buzz à 50Hz ça vient certainement du réseau éléctrique. Comment est-ce que tu branche l'arduino à ton ordi pour enregistrer le signal que tu montre au dessus ?
arduino bt = bluetooth
ça me botte bien un truc wireless, je pensais pas que ça serait plus galère
mais arduino bt a l'air un peu sujet aux parasites ambiants on dirait (le buzz augmente quand j'approche mon bras genre - je dois être branché à la terre )
Staross a écrit:
Le filtrage, tu peux le faire numériquement sur l'ordi, le signal au dessus est certainement utilisable tel quel.
en fait non, le débit serial est pas suffisant pour passer un signal audio
si j'envoie toute les valeurs que je peux je loupe déjà 3 frappes sur 4, donc de là à traiter de l'audio
d'après ce que je comprends (faut me corriger sinon) arduino peut lire plus de valeurs si il est pas occupé à les envoyer à l'ordi, du coup le traitement doit plutôt se faire en interne et j'envoie seulement les valeurs qui m'intéresse à l'ordi (via serial - bluetooth)
Hors ligne
Staross a écrit:
Si c'est un buzz à 50Hz ça vient certainement du réseau éléctrique. Comment est-ce que tu branche l'arduino à ton ordi pour enregistrer le signal que tu montre au dessus ?
j'avais pas bien lu ta question
avec des pince crocos j'ai branché le piezo à un jack en entrée micro en + de l'arduino
le buzz pourrait etre dû à la carte son mais en fait si je branche juste le piezo à la carte (en débranchant de l'arduino donc) le buzz et 10x plus faible cqfd
en plus que l'arduino soit alimenté ou pas ne change rien, c'est peut être l'antenne bluetooth qui pourrait être mal isolée ou un truc du genre
Hors ligne
Ok, merci des reponses, si je me lance dans un truc similaire je prendrai un arduino usb pour voir si ca va mieux...
Hors ligne
j'ai à peu près terminé ce projet maintenant je colle des sons là dessus
mais j'ai laissé tomber le bluetooth (usb now)
si c'était à refaire j'essaierai avec des xbee
j'ai pas mal galéré pour fabriquer un preamp à knock qui marche (preamp + redressement + lissage)
voila ce que donne le schéma :
il faut adapter les resistance 1 et 2 en fonction de la sensibilité recherchée
un arduino shield pour 2 piezos
(attention le shield est à l'envers pour gain de place, composants en dessous, contre ceux du arduino)
le code donne un truc dans ce goût là
pas celui que j'utilise : l'évitement du crosstrigger est géré de manière assez tordues dans mon cas (vu que les piezos collés au même élément)
pour un piezo individuel c'est plus simple :
const int piezo_0 = 0; // analog input 0 const int trigger_threshold_0 = 2; // difference with last value so it start to trig const int delay_0 = 30; // pause to avoid multitriggers for one knock during 30ms unsigned long now = 0; unsigned long pause_0 = 0; int triggerValue_0 = 0; int previousValue_0 = 0; int peakValue_0 = 0; int maxValue_0 = 0; void setup() { Serial.begin(9600); } void loop() { now = millis(); if (pause_0 < now - delay_0){ // pause off triggerValue_0 = analogRead(piezo_0); if (triggerValue_0 >= previousValue_0 + trigger_threshold_0) { delayMicroseconds(230); // wait 0.23 ms for peak peakValue_0 = analogRead(piezo_0); if (peakValue_0 > triggerValue_0){ // be sure peak value is higher maxValue_0 = peakValue_0; } else { maxValue_0 = triggerValue_0; } Serial.print("/piezo_0 "); Serial.println(maxValue_0); // send osc message previousValue_0 = maxValue_0; pause_0 = millis(); } else { previousValue_0 = triggerValue_0; } } }
Dernière modification par kro (2011-02-05 09:11:27)
Hors ligne
Pages: 1 2