Pit Distanziometro Sonoro

PitDistanziometroSonoro è un gioco che in funzione della distanza dall'oggetto emette le note musicali.

Lo sheet e l'idea sono presi dal sito di Daniele Alberti (Gioco Musicale per bambini con Arduino).  Dove trovate tutte le istruzioni, gli schemi e quanto serve per realizzarlo.

 

ozio_gallery_jgallery

 

Cosa serve:

  • Arduino
  • Rilevatore distanza a ultrasuoni
  • Altoparlante
  • Cavetti
  • Resistenza 100 ohm

 

Download:

Codice sorgente:


/*
 25/05/2015 ZappocoS -- semplificazione dell'originale ho tolto i led
 Vedi sito Daniele Alberti www.danielealberti.it
 http://www.danielealberti.it/2013/10/gioco-per-bambini-con-arduino.html#more  
  HC-SR04 ---- Connection
   VCC-5v
   Trig -->  digital pin 7
   Echo -->  digital pin 8
   GND-GND
*/
    #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 );
    }

ZappocoS - 25 maggio 2015