Questo semplice progetto farà felici i vostri bambini (soprattutto i più piccoli) è di semplice realizzazione e di sicuro impatto.
Io l'ho costruito per regalarlo all'asilo dove lavora la mia ragazza, voi fatelo per far felici altri bambini!
Il funzionamento è semplice, sfruttando un sensore di distanza ad ultrasuoni (HC-SR04 1.5 euro su ebay)
l'altoparlante riprodurrà note diverse a seconda della distanza della vostra mano dal sensore.
Ho anche associato un led che si accende per ogni nota.
Quindi con la mano attaccata al sensore si sentirà un DO e si accenderà il led più a sinistra, fino ad arrivare alla massima distanza quando si udirà un SI e si accenderà il led più a destra.
Per controllare il tutto ho usato l'Arduino standalone (potete trovare tutto qui sul blog) e comunque potete usare ugualmente qualsiasi tipo di Arduno.
Spero che vi piaccia, qui di seguito posto lo schema e lo sketch.
Ecco lo sketch da caricare, per farlo funzionare dovete scaricare la libreria NewTone, scompattarla e metterla nella cartella "libraries" che trovate nella directory di installazione dell'IDE di Arduino.
Se ci sono problemi scrivete pure! Spero vi sia piaciuto, ciao!
Segui Daniele Alberti su Google+Io l'ho costruito per regalarlo all'asilo dove lavora la mia ragazza, voi fatelo per far felici altri bambini!
Il funzionamento è semplice, sfruttando un sensore di distanza ad ultrasuoni (HC-SR04 1.5 euro su ebay)
l'altoparlante riprodurrà note diverse a seconda della distanza della vostra mano dal sensore.
Ho anche associato un led che si accende per ogni nota.
Quindi con la mano attaccata al sensore si sentirà un DO e si accenderà il led più a sinistra, fino ad arrivare alla massima distanza quando si udirà un SI e si accenderà il led più a destra.
Per controllare il tutto ho usato l'Arduino standalone (potete trovare tutto qui sul blog) e comunque potete usare ugualmente qualsiasi tipo di Arduno.
Spero che vi piaccia, qui di seguito posto lo schema e lo sketch.
Ecco lo sketch da caricare, per farlo funzionare dovete scaricare la libreria NewTone, scompattarla e metterla nella cartella "libraries" che trovate nella directory di installazione dell'IDE di Arduino.
- #include <NewTone.h>
- int triggerPort = 7;
- int echoPort = 8;
- int DO = 13;
- int RE = 12;
- int MI = 11;
- int FA = 10;
- int SOL = 9;
- int LA = 3;
- int SI = 2;
- void setup() {
- pinMode( DO, OUTPUT);
- pinMode( RE, OUTPUT);
- pinMode( MI, OUTPUT);
- pinMode( FA, OUTPUT);
- pinMode( SOL, OUTPUT);
- pinMode( LA, OUTPUT);
- pinMode( SI, OUTPUT);
- pinMode( triggerPort, OUTPUT );
- pinMode( echoPort, INPUT );
- }
- void loop() {
- //porta bassa l'uscita del trigger
- digitalWrite( triggerPort, LOW );
- //invia un impulso di 10microsec su trigger
- digitalWrite( triggerPort, HIGH );
- delayMicroseconds( 10 );
- digitalWrite( triggerPort, LOW );
- long duration = pulseIn( echoPort, HIGH );
- long r = 0.034 * duration / 2;
- digitalWrite (DO, LOW);
- digitalWrite (RE, LOW);
- digitalWrite (MI, LOW);
- digitalWrite (FA, LOW);
- digitalWrite (SOL, LOW);
- digitalWrite (LA, LOW);
- digitalWrite (SI, LOW);
- if ( r < 5) {
- tone(6, 523, 400);
- digitalWrite (DO, HIGH);
- }
- else{
- if ( r < 10 && r > 7) {
- tone(6, 587, 400);
- digitalWrite (RE, HIGH);
- }
- else{
- if ( r < 15 && r > 12) {
- tone(6, 659, 400);
- digitalWrite (MI, HIGH);
- }
- else{
- if ( r < 20 && r > 17) {
- tone(6, 698, 400);
- digitalWrite (FA, HIGH);
- }
- else{
- if ( r < 25 && r > 22) {
- tone(6, 784, 400);
- digitalWrite (SOL, HIGH);
- }
- else{
- if ( r < 30 && r > 27) {
- tone(6, 880, 400);
- digitalWrite (LA, HIGH);
- }
- else{
- if ( r < 35 && r > 32) {
- tone(6, 988, 400);
- digitalWrite (SI, HIGH);
- }
- else{
- }
- }
- }
- }
- }
- }
- }
- delay( 15 );
- }
Se ci sono problemi scrivete pure! Spero vi sia piaciuto, ciao!
fatto!!!!!!!!!!!!!. riuscto bene!!!!!............grazie Daniele
RispondiEliminaChe bello, mi mandi una foto? :)
Eliminaho fatto il prototipo su breadbord... se vuoi ti mando la foto di quello...
Eliminaciao
Pensavo il progetto finito, beh quando lo completi mandamela! :)
Eliminaok!
RispondiEliminascusa Daniele... ma quella cosa in basso con un potenziometro... almeno mi sembra.. cos'è?...
RispondiEliminaÈ l'interruttore x accendere il gioco. :)
Eliminaah... grazie.... :-O
RispondiEliminascusa signor Daniele, e se si volesse mettere un potenziometro per variare la sensibilità del sensore di distanza ad ultrasuoni ? e specialmente cosa dovrei variare nel programma (oltre che aggiungere una variabile intendo)?
RispondiEliminaSignor Daniele no dai.. :) dammi del tu! :)
EliminaComunque cosa intendi per "variare la sensibilità"?
Ciao,
RispondiEliminaGrazie per il tuo progetto molto bello, ma vi è la possibilità di regolare il volume visto che recupererò una cassa di uno stereo
Grazie
Ciao, ho aggiornato lo schema perchè c'era un piccolo errore.
EliminaOra prima dell'altoparlante ho messo una resistenza da 100 Ohm. Se vuoi variare il volume devi variare quella resistenza ( puoi anche sostituirla con un potenziometro)
Grazie essendo alle prime armi ... Non sapevo come fare
RispondiEliminaFigurati è sempre un piacere ;)
EliminaCiao Daniele, purtroppo sono alle prime armi e nonostante ho seguito passo passo il progetto i led non si accendono, da cosa puo dipendere?
RispondiEliminaCiao,
Eliminaprova prima ad accendere i led con l'esempio "blink" che trovi sotto file, examples, basic, blink.
In questo modo puoi verificare se i led sono collegati correttamente, ciao!
Fantastico, lo costruisco subito per mio figlio,
RispondiEliminala struttura la realizzerò con la stampante 3d appena costruita :D
Puoi spiegare come viene alimentato? E' a batterie giusto? Nelle foto intravedo un altro componente sembra un potenziometro o sbaglio?
Grazie
Ciao sarà contento ;)
EliminaSi sono batterie, quello è un interruttore a pulsante che accende il gioco (scollega/collega il positivo dalle batterie al circuito)
Comunque se utilizzi un Arduino "intero" puoi alimentarlo anche con un Power Bank tramite la porta USB. Ciao!
Perfetto grazie, poi guardando meglio mi sono accorto, infatti ho già acquistato il sensore hc più un interruttore :)
EliminaGrazie ancora per la bellissima idea!!
buon lavoro può caricare di nuovo la biblioteca
RispondiElimina404 non riesce e la necessità di programmare
Ciao, grazie della segnalazione, ho corretto il link!
EliminaCiao, nonostante abbia scritto codici e fatto collegamenti su bredboard e scheda Arduino mi esce scritto, al caricamento del codice, questa dicitura:
RispondiEliminaError compiling for board Arduino/Genuino Uno.
Da cosa puo dipendere?
grazie in anticipo
Ciao, ti da solo quella dicitura o altro?
EliminaHo risolto, chiedo venia! Ci sono stati problemi nel download. Se volessi inserire un potenziometro per variare la luminosità dei 7 led? It is possible? :)
EliminaScusi per le mille domande
Purtroppo non essendo uscite analogiche non puoi ridurre la luminosità dei led dall'arduino.
EliminaPotresti pensare di mettere un potenziometro per ogni led, ma mi sembra esagerato. Forse sarebbe possibile mettendo un mosfet tra il catodo dei led e GND, e pilotarlo con un'uscita PWM, ma é da provare la cosa.
Purtroppo non mi viene in mente altro al momento.
ok, sono riuscito ad usare un solo potenziometro per variare la luminosità dei 7 led.
EliminaVorrei complicare un po il progetto utilizzando un secondo potenziometro che mi controlli il volume dello speaker. Ho provato ma il suono risulta essere abbastanza disturbato; ha suggerimenti?
grazie ancora per la disponibilità
Risulta distrurbato mebtme ruoti il potenziamento o anche quando e fermo?
EliminaSolo quando ruoto il potenziometro. Sto provando a rimapparlo ma resta sempre disturbato il suono.
EliminaÈ normale, devi usare un potenziometro per audio, oppure con una fotoresistenza e un led pilotato in pwm
Elimina