Switzerland
Offline
Sr. Member
Karma: 12
Posts: 423
|
 |
« Reply #30 on: March 10, 2013, 12:16:20 pm » |
..... me serve un filtro per analizzare il picco del battito di mani in modo da poter verificare e quindi attivare i led quindi mi serve per forza l'analogico
Scusa, se capisco bene ... tu vorresti fare un " analisi" del segnale analogico e discriminare un battito di mani da un altro rumore di pari intensità e durata ( es. una porta che in lontananza sbatte) ? ... la vedo dura  Guglielmo
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3898
Arduino rocks
|
 |
« Reply #31 on: March 10, 2013, 01:47:50 pm » |
Se vuoi discriminare a parità di volume non ne esci. Ti devo accontentare del solo volume, quindi o un battito di mani o un clacson farà attivare. Puoi appunto creare un codice battendo in un certo modo, battito pausa 2sec battito X leo: yes, mio gruppo preferito insieme a Nirvana, guns, litfiba, roba anni 90 
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #33 on: March 11, 2013, 04:11:44 am » |
X leo: yes, mio gruppo preferito insieme a Nirvana, guns, litfiba, roba anni 90  Bravo bravo... sono un metallaro di vecchia data, cresciuto con AC/DC, Irons, Sabbath e poi passato all'epic metal in tempi recenti  FINE OT, promesso 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3898
Arduino rocks
|
 |
« Reply #34 on: March 12, 2013, 05:18:12 pm » |
fine OT, abbiamo appena iniziato  devi assolutamente ascoltare i miei due studio album, e darmi un parere 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3898
Arduino rocks
|
 |
« Reply #35 on: March 12, 2013, 05:20:56 pm » |
e' lo stesso discorso di quello postato prima, questo in meno non ha nessun uscita digitale con seoglia regolabile, quindi lo fai entrare in un analog pin e ti gestisci una attivazione in base ad un determinato livello di suono. Se vuoi creare un codice da riconoscere lo definisci (tipo batti una volta le mani, poi ti fermi 2 secondi, e poi batti altre 3 volte) in questo modo puoi discriminare rumori non voluti
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #36 on: March 12, 2013, 05:32:07 pm » |
fine OT, abbiamo appena iniziato  devi assolutamente ascoltare i miei due studio album, e darmi un parere  Che album? Non dirmi che suoni! 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3898
Arduino rocks
|
 |
« Reply #37 on: March 12, 2013, 05:34:16 pm » |
fine OT, abbiamo appena iniziato  devi assolutamente ascoltare i miei due studio album, e darmi un parere  Che album? Non dirmi che suoni!  yes, strumento a tema con l'elettronica, la batteria, tu suoni ? si fa una band ?  il mio primo album e' stato un progetto solo strumentale, genere prog rock il secondo, classico rock album con testi in italiano
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #38 on: March 12, 2013, 05:37:35 pm » |
tu suoni ?
No, io ascolto. Il mio orecchio è tutto fuorché musicale 
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 57
|
 |
« Reply #39 on: March 20, 2013, 01:20:14 pm » |
Scusate l'assenza ma non ho avuto tempo neanche per respirare. Tornando a noi , dato che dall'ingresso analogico non ho un valore significativo come posso creare un amplificatore di segnale da mettere all'uscita dell'analogico ?
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7340
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #40 on: March 20, 2013, 01:28:22 pm » |
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 57
|
 |
« Reply #41 on: March 20, 2013, 04:13:36 pm » |
Scusate ok il primo ot va bene ma ora siam passati a tutto all'infuori dell'argomento da me iniziato... Perfavore parlatene via messaggi personali. Grazie
Per quanto riguarda il calpper sono riuscito a far funzionare quello blu , da 28 di base con un rumore acuto passa a 1023. Come mai non mi legge i valori intermedi ? Io vorrei che fosse piu' sensibile.... Se invece di maggiore di 1000 mettessi ad esempio maggiore di 700 avrei piu' sensibilità tagliando le letture al di sotto
|
|
|
|
« Last Edit: March 20, 2013, 05:26:50 pm by waterseven »
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3898
Arduino rocks
|
 |
« Reply #42 on: March 21, 2013, 12:25:05 am » |
Scusa per gli OT, siamo stasi travolti  (x astro, notata la robot sul palo lapdance ?) Per il tuo problema purtroppo non ci aiuti a rispondere, serve foto dei collegamenti e codice usato.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 57
|
 |
« Reply #43 on: March 21, 2013, 04:03:39 am » |
I collegamenti ora sono diretti , ossia modulo connesso con analog ad A0 su arduino e vcc e gnd sempre sulla mega. Il codice che ho usato è il seguente : const int tocPin = A0; // Pin A0: modulo audio const int ledPin = 8; // Pin 13: LED di controllo. const int soglia = 1000; // soglia: valore oltre al quale considerare l'impulso sonoro double elenco[2]; // Sette battiti sono la sequenza che attiva il LED (0-2) double lastSound; // Dopo alcuni secondi di silenzio, cancella la sequenza
void setup() { Serial.begin(9600); // Imposto la connessione seriale pinMode(ledPin, OUTPUT); // Dichiaro ledPin come OUTPUT }
void loop() { // Leggo il valore analogico (da 0 a 1023) del sensore float valoreSensore = analogRead(tocPin); // Se il valore supera la soglia if (valoreSensore >= soglia) { Serial.println(valoreSensore); // Stampo la scritta Serial.println("Toc! Toc!"); // Stampo la scritta registraBattito(); // Registro in elenco il momento in cui viene avvertito il battito valutaSequenza(); // Controllo se la sequenza e' completa delay(100); // Aspetto per non sovraccaricare il buffer della porta seriale } // Sequenza cominciata ma oltre 2 secondi di silenzio: resetto if ( elenco[0] && millis()-lastSound > 2000 ) { resetta(); } }
// Registro il momento in cui viene avvertito il colpo void registraBattito() { double time = millis(); lastSound = millis(); if ( elenco[0]==0 ) { elenco[0] = time; return; } if ( elenco[1]==0 ) { elenco[1] = time; return; }
}
void valutaSequenza() { // Se c'e' il numero corretto di battiti registrati if ( elenco[1] > 0 ) { // Stampa delta, ovvero il tempo trascorso tra un battito e il precedente stampaDelta(); // Verifica il "ritmo" della sequenza di battiTO if ( elenco[1]-elenco[0] >= 200 && elenco[1]-elenco[0] <= 450 ) // 250 success();
// Resetto l'elenco ogni volta che ha registrato 2 battiti resetta(); } }
void resetta() { Serial.println("Resetto."); for ( int n=0; n<=1; n++ ) { elenco[n] = 0; } }
void stampaDelta() { // Mostra il tempo trascorso tra un battito e il precedente for ( int n=0; n<=1; n++ ) { Serial.print("Delta: "); Serial.print(elenco[n]); Serial.print("-"); Serial.print(elenco[n-1]); Serial.print("="); Serial.println(elenco[n]-elenco[n-1]); } }
// Sequenza corretta: il LED si accende void success() { Serial.println("SEQUENZA CORRETTA!!"); if (digitalRead(ledPin)== HIGH){ digitalWrite(ledPin,LOW); } else{ digitalWrite(ledPin,HIGH); } } Funziona perfettamente e va su una determinata frequenza non so come ma se fischio non funziona se do una botta al tavolo neanche se faccio vocalmente ooo ooo imitando il suono delle mani funziona e logicamente anche con le mani per un raggio di 6 mq.... Solo che il battito deve essere leggermente forte quindi volevo sapere se c'è un modo per ricevere dei valori intermedi tra 28 e 1023.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 16
Posts: 1799
|
 |
« Reply #44 on: March 21, 2013, 04:39:34 am » |
come si imita vocalmente il rumore delle mani?  comunquue di basta abbassare il valore della solgia con cui fai l'if: const int soglia = 1000; a const int soglia = 800; è un modulo analogico non è che puoi impostarci qualcos'altro  ps gli AC/DC Spaccano 
|
|
|
|
|
Logged
|
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein
|
|
|
|
|