Info Clapper

nid69ita:
Scusate l'intromissione, un eventuale prodotto alternativo come questo su robot-italy?
http://www.robot-italy.com/it/breakout-board-for-electret-microphone-1.html
Può essere utile per sentire il rumore del battimani? (logicamente non per discriminare i suoni)

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

Testato:
fine OT, abbiamo appena iniziato :slight_smile:
devi assolutamente ascoltare i miei due studio album, e darmi un parere :slight_smile:

Che album? Non dirmi che suoni! ]:smiley:

leo72:

Testato:
fine OT, abbiamo appena iniziato :slight_smile:
devi assolutamente ascoltare i miei due studio album, e darmi un parere :slight_smile:

Che album? Non dirmi che suoni! ]:smiley:

yes, strumento a tema con l'elettronica, la batteria, tu suoni ? si fa una band ? :slight_smile:
il mio primo album e' stato un progetto solo strumentale, genere prog rock
il secondo, classico rock album con testi in italiano

Testato:
tu suoni ?

No, io ascolto. Il mio orecchio è tutto fuorché musicale :stuck_out_tongue_closed_eyes:

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 ?

Testato:
yes, strumento a tema con l'elettronica, la batteria, tu suoni ? si fa una band ? :slight_smile:

Ecco testato all'opera :smiley: :grin: :smiley:

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

Scusa per gli OT, siamo stasi travolti :slight_smile: (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.

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.

come si imita vocalmente il rumore delle mani? :fearful:
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 :grin:

ps gli AC/DC Spaccano :stuck_out_tongue_closed_eyes:

ahahah non ti dico ieri sera sembravo un pazzo facevo rumori di ogni genere per vedere la frequenza hahaha Comunque sia lo so che dovrei abbassare la soglia ma il problemaè che mandando in lettura l'analogico sul seriale si distingue chiaramente che ad esempio accendo la tv il segnale rimane 28 batto le mani il segnale arriva a 1023 come se fosse digitale ... non ha vie di mezzo , ho provato a trimmerare ma fa lo stesso gioco , sbalza subito tra minimo e massimo.

waterseven:
ahahah non ti dico ieri sera sembravo un pazzo facevo rumori di ogni genere per vedere la frequenza hahaha Comunque sia lo so che dovrei abbassare la soglia ma il problemaè che mandando in lettura l'analogico sul seriale si distingue chiaramente che ad esempio accendo la tv il segnale rimane 28 batto le mani il segnale arriva a 1023 come se fosse digitale ... non ha vie di mezzo , ho provato a trimmerare ma fa lo stesso gioco , sbalza subito tra minimo e massimo.

allora mi viene da pensare che il filtro sia sulla schedina, il link e quello di robotitaly? perchè non lo riposti ce ne sono un paio nella discussione.

E' questa quella che sto usando e che funziona meglio rispetto a quella rossa !

Per altro qua da anche uscita analogica che digitale , ma io metto in lettura come analogica ma valori intermedi niente ... Si comporta come una digitale ...

Domanda EXTRA:

Ho collegato il relè e il mic all'arduino tramite pilota transistor e alimentazione esterna con gnd in comune. L'arduino viene alimentato dall'usb del pc mentre i componenti da un 12v e 2 A abbassati a 5v tramite un lm7805. Ora al relè è collegata la vcc di una striscia led , la tensione di quest' ultima la prendo sempre dall'alimentatore da 2 ampere quindi anche la gnd. Il punto è , dato che dalle usb si eroga massimo 500mA con la gnd in comune e i carichi diversi tra pc(arduino) e alimentatore(relè, microfono, striscia led ) danneggio il pc in quanto supero i 500ma? (Si tratta solo di test , l'arduino poi avrà alimentazione separata).

a questo punto puo' essere rotto ? anche perche' c'e' poco da fare, servirebbe almeno lo schema elettrico per consigliarti una ricerca guasto guidata.
La descrizione effettivamente parla di due uscite e del trimmer che regola la soglia. ma quel trimmer credo influenzi solo l'uscita digitale, perche' appunto l'analogica la gestisci da codice

Faccio prima allora a comprarne uno nuovo , mi potete consigliare quale acquistare ?

Per altro qua da anche uscita analogica che digitale , ma io metto in lettura come analogica ma valori intermedi niente ... Si comporta come una digitale ...

Avendo solo 3 pin di cui 2 sono alimentazione, non capisco come fai a selezionare l'uscita digitale/analogica.

Ti servirebbe un oscilloscopio, in mancanza scaricati un software che lavora con la scheda sound e svolge perfettamente le funzioni oscilloscopio e analizzatore di spettro FFT.

Ciao.

Riesumo un post.
Ma questo coso dei cinesi potrebbe funzionare?
http://www.ebay.it/itm/Clap-Switch-Suite-DIY-Kits-Electronic-production-/370683138930?pt=LH_DefaultDomain_0&hash=item564e6fd372&_uhb=1#ht_1487wt_954

nid69ita:
Riesumo un post.
Ma questo coso dei cinesi potrebbe funzionare?
http://www.ebay.it/itm/Clap-Switch-Suite-DIY-Kits-Electronic-production-/370683138930?pt=LH_DefaultDomain_0&hash=item564e6fd372&_uhb=1#ht_1487wt_954

Vuoi un parere personale privo di fondamento tecnico (non c'è neanche la possibilità di creare un fondamento tecnico)?
Secondo me non funziona, oggi alle 1.32 di notte, se me lo chiedi domani forse cambio idea. :smiley:

Lo schema dove? lo schema parla, si spiega, e si fa prima a leggere lo schema che il libretto di istruzioni.

Lo so che non sei esperto di Elettronica, ma di informatica, e allora se ti faccio vedere un eseguibile in formato binario o intel hex tu mi sai dire se funziona o meno? :wink:

Ciao.

MauroTec:

nid69ita:
Riesumo un post.
Ma questo coso dei cinesi potrebbe funzionare?
http://www.ebay.it/itm/Clap-Switch-Suite-DIY-Kits-Electronic-production-/370683138930?pt=LH_DefaultDomain_0&hash=item564e6fd372&_uhb=1#ht_1487wt_954

Vuoi un parere personale privo di fondamento tecnico (non c'è neanche la possibilità di creare un fondamento tecnico)?
Secondo me non funziona, oggi alle 1.32 di notte, se me lo chiedi domani forse cambio idea. :smiley:
Lo schema dove? lo schema parla, si spiega, e si fa prima a leggere lo schema che il libretto di istruzioni.
Lo so che non sei esperto di Elettronica, ma di informatica, e allora se ti faccio vedere un eseguibile in formato binario o intel hex tu mi sai dire se funziona o meno? :wink:
Ciao.

Certo che lo capisco, sono il figlio di Bill Gates!!! :grin:
Scherzo naturalmente. Ho capito cosa intendi. Ci ho provato.
Poi ho anche trovato un thread di 7 pagine dove un tipo di napoli ha fatto un sensore applausi, al 3° accende/spegne un rele.
http://arduino.cc/forum/index.php/topic,119655.90.html
Naturalmente con l'aiuto del forum e 8 Kg di suggerimenti. Perciò penso bisogna fare riferimento a quel thread per capire stà cosa del battimani (che è interessante).

Allora , per ora funziona bene devo aggiungere solo una condizione nel caso in cui vi sia una terza lettura attiva blocca l'accensione perchè ho notato che durante una discussione era diventato uno strobo la striscia led haha. A parte questo se la si legge in digitale non c'è modo di isolare la frequenza del battito , se uno peta a ritmo o da due capocciate al muro la luce si accende a prescindere. Serve per forza una lettura analogica dalla quale si taglia una lettura ossia un battito di mani restituisce tot in analogico e cosi dando il range il problema dei fastidi esterni è ridotto all'osso. Ora vorrei capire , dove caovlo trovo un sensore analogico che funzioni a regola ? ..... Possibile che ci son solo cinesate in giro ....