salve a tutti , avevo intenzione di relizzare un battimani con arduino, ma non so' da dove cominciare,e se si puo' fare. potete darmi qualche dritta? avevo intenzione di accendere e spegnere le luci del mio garage,con un semplice battito di mani, così per gioco.....grazie per il vostro aiuto
non puoi. devi innanzitutto campionarie quando batti le mani. poi registrare i rumori nel tuo garage e un pc fa il confronto tra la traccia che ascolta e quella memorizzata se rientra nelle tolleranze l'accetta. dovrai anche implementare una soppressione dei disturbi (i microfoni sentono la pioggia per esempio) e un sistema live streaming del controllo (non lavori su 2 tracce registrate ma una registrata ed una live quindi devi tipo registrare in ram nuovo valore senza eliminare i precedenti (togli un byte all'inizio e aggiungi un byte nuovo alla fine facendo si che la durata sia la stessa del tuo campione ed ad ogni modifica di ram guardi se corrisponde il che porta ad una cpu molto veloce)
Ho uno schema senza arduino se ti interessa
superlol:
non puoi. devi innanzitutto campionarie quando batti le mani.
E' molto più semplice di quello che dici e non serve un pc, anzi si realizza senza problemi solo con dell'elettronica analogica, il battito delle mani è un rumore molto forte con un caratteristico picco nello spettro, è sufficiente un filtro passa banda calibrato sulla giusta finestra di frequenze e per un livello abbastanza alto.
Con Arduino si può implementare un filtro digitale che fa la stessa cosa partendo dal campionamento dell'audio tramite un microfono, se poi si mette in mezzo un semplicissimo filtro attivo passa banda, bastano due opamp, non serve nemmeno il filtro digitale, basta calibrarsi sulla livello del segnale analogico misurato.
Penso che si possa fare qualcosa analizzando il suono dall'esterno , quindi prendendo eventualmente in esame i valori ADSR (Attack Decay Sustain Release) delle tensioni captate e raddrizzate.
Quindi potresti fare un modello del battito di mani in base a quanto tempo ci mette la tensione in entrata sul pin, quanto rimane al livello massimo ed in quanto tempo torna a livello basso.
Per evitare falsi trigger, uoi inserire anche una specie di codifica temporale del tipo :
Ricevi un suono
Analizzalo
Corrisponde al modello per più di un tot % ? (non cerchiamo i valori prcisi ma una corrispondenza % )
se si parte il timer ed aspetta un'altro battito entro un secondo
se no scarta il suono e riinizia
Con questo metodo devi battere le mani almeno 2 volte in un secondo, il chè dovrebbe diminuire la possibilità di falsi inneschi.
Tutta questa roba prevede l'uso (avanzato) di interrupt, timers ecc... quindi se sei alle prime armi con arduino , forse dovresti provare altri progetti più semplici
Afrotechmods ha un progetto, sul suo canale Youtube.
Utilizza un Amplificatore Operazionale come comparatore:
Qui aggiunge un rilevatore di picco:
Tu aggiungi un transistor e lo colleghi ad Arduino (:
Io lo triggerei solo sull volume e durata del suono e al limite un filtro come dice Astrobeet.
Hai visto questo?
http://www.instructables.com/community/arduino-secret-knock-lock/ e http://www.instructables.com/community/Arduino-knock-sensor-with-a-twist/
oppure
http://blog.makezine.com/archive/2009/11/secret-knock-detector.html
Secret Knock Detecting Door Lock
Ciao Uwe
Anche a me era venuto in mente l'esempio del Knock sensor postato da Uwe.
Il progettino arduino secret knock lock è uno spettacolo!
eh però il piezo ,in un certo senso fà gia da filtro passaalto, e la propagazione del suono col sensore a contatto è diversa, non credo che lo stesso progetto funzionerebbe se si sistituisse un microfono (anche preamplificato).
secondo me si deve vedere l'utilizzo ed il perche' della realizzaizone per decidere meglio.
se vuoi far chiudere un rele' col battito di mani e basta, non ha senso mettere in campo arduino
se invece arduino gia' fa x cose ed in piu' gli vuoi ggiungere questa cosa qui, cmq non userei arduino per il lavoro, ma solo come output finale, usando quindi un circuito esterno.
se invece e' a scopo di studio,allora procedi pure