Pages: 1 2 [3] 4   Go Down
Author Topic: Info Clapper  (Read 3350 times)
0 Members and 1 Guest are viewing this topic.
Switzerland
Online Online
Faraday Member
**
Karma: 82
Posts: 4192
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

..... 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  smiley-confuse

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-razz
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 57
Posts: 3513
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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)

Logged

my name is IGOR, not AIGOR

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

X leo: yes, mio gruppo preferito insieme a Nirvana, guns, litfiba, roba anni 90  smiley-razz
Bravo bravo... sono un metallaro di vecchia data, cresciuto con AC/DC, Irons, Sabbath e poi passato all'epic metal in tempi recenti  smiley-wink

FINE OT, promesso   smiley-sweat
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fine OT, abbiamo appena iniziato  smiley
devi assolutamente ascoltare i miei due studio album, e darmi un parere  smiley
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

fine OT, abbiamo appena iniziato  smiley
devi assolutamente ascoltare i miei due studio album, e darmi un parere  smiley
Che album? Non dirmi che suoni!  smiley-twist
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fine OT, abbiamo appena iniziato  smiley
devi assolutamente ascoltare i miei due studio album, e darmi un parere  smiley
Che album? Non dirmi che suoni!  smiley-twist
yes, strumento a tema con l'elettronica, la batteria, tu suoni ? si fa una band ?  smiley
il mio primo album e' stato un progetto solo strumentale, genere prog rock
il secondo, classico rock album con testi in italiano
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

tu suoni ?
No, io ascolto. Il mio orecchio è tutto fuorché musicale  smiley-yell
Logged


Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ecco testato all'opera  smiley-grin smiley-mr-green smiley-grin

Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :

Code:
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 Offline
Edison Member
*
Karma: 24
Posts: 2032
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come si imita vocalmente il rumore delle mani? smiley-eek-blue
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  smiley-mr-green

ps gli AC/DC Spaccano  smiley-yell
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Pages: 1 2 [3] 4   Go Up
Jump to: