AUDIO_SHIELD PER ARDUINO – IN KIT

Esaurito

Basata sull’integrato ISD1790PY, questa shield per Arduino (Duemilanove, UNO o Mega), permette di registrare e riprodurre fino a 90 secondi di musica e parlato

SKU: 8190-AUDIO_SHIELD Categoria: Tag:

Basata sull’integrato ISD1790PY, questa shield per Arduino (Duemilanove, UNO o Mega), permette di registrare e riprodurre fino a 90 secondi di musica e parlato. L’accoppiamento ad Arduino รจ reso molto semplice grazie ad un’apposita libreria da caricare nello sketch, che provvede alla gestione del chip vocale ISD. Dispone di vari pulsanti di controllo (REC, PLAY, FWD, ERASE, VOL, ecc), capsula microfonica, una presa jack da c.s. per l’ingresso audio di linea e una presa per l’uscita audio. La registrazione dei messaggi si effettua direttamente tramite la capsula microfonica, l’ingresso audio di linea IN puรฒ essere utile per registrare messaggi o musica provenienti da una fonte esterna (piastre a cassette, lettori MP3, mixer ecc). La durata della registrazione รจ stabilita dalla frequenza di clock dell’oscillatore interno all’ISD1790PY, che scandisce il campionamento; tale frequenza si definisce con il valore della resistenza R4 e nel nostro caso vale 8 kHz. La resistenza puรฒ assumere valori compresi tra 53 kHz e 160 kHz: nel primo caso si eleva la frequenza di campionamento e con essa la qualitร  dell’audio registrato e riprodotto, ma il tempo utile per la registrazione scende a 60 secondi soltanto, mentre nel secondo il campionamento va a 4 kHz, la qualitร  audio peggiora, ma il tempo utile raddoppia rispetto al valore predefinito, passando da 90 a 180 secondi. La shield preleva l’alimentazione dai contatti 5 V e GND di Arduino. Particolarmente utile per attivare dei messaggi a voce al verificarsi di un evento in un impianto di allarme, per un controllo I/O generico e per domotica, oppure per far riprodurre un avviso quando viene rilevato l’approssimarsi di una persona o di un veicolo in una zona. Dimensioni: 69×55 mm.
MONTATA SU ARDUINO…
SKETCH DI ESEMPIO
Il seguente sketch permette di gestire le funzioni della shield.
#include <ISD1700.h>
 
ISD1700 chip(10); // Initialize chipcorder with
   // SS at Arduino’s digital pin 10
                   
 
int apc=0;
                     int vol=0; //volume 0=MAX, 7=min
 
int startAddr=0x10;
                     int endAddr =0x2DF;
                     int inInt=0;
                     void setup()
                     {
   apc = apc | vol; //D0, D1, D2
   
   //apc = apc | 0x8; //D3 comment to disable output monitor during record
   
   apc = apc | 0x50; // D4& D6 select MIC REC
   //apc = apc | 0x00; // D4& D6 select AnaIn REC
   //apc = apc | 0x10; // D4& D6 select MIC + AnaIn REC
   
   apc = apc | 0x80; // D7 AUX ON, comment enable AUD
   
   apc = apc | 0x100; // D8 SPK OFF, comment enable SPK
   
   //apc = apc | 0x200; // D9 Analog OUT OFF, comment enable Analog OUT
   
   //apc = apc | 0x400; // D10 vAlert OFF, comment enable vAlert
   
   apc = apc | 0x800; // D11 EOM ON, comment disable EOM
   
   
   
   Serial.begin(9600);
   Serial.println(“Sketch is starting up”);
   }
 
void loop()
                     {
   char c;
   
   if(Serial.available())
   {
   /* Power Up */
   chip.pu();
   c = Serial.read();
   switch(c)
   {
   case ‘A’:
   Serial.println(chip.rd_apc(), BIN);
   break; 
   case ‘Y’:
   chip.play();
   break;
   case ‘P’:
   chip.stop();
   delay(500);
   break;
   case ‘E’:
   chip.erase();
   delay(500);
   break;
   case ‘R’:
   chip.rec();
   break;
   case ‘F’:
   chip.fwd();
   delay(500);
   break;
   case ‘Z’:
   chip.g_erase();
   delay(500);
   break;
   case ‘I’:
   Serial.println(chip.devid(), BIN); 
   break;
   case ‘W’: 
   Serial.println(apc, BIN);
   chip.wr_apc2(apc); //
   break;
   case ‘S’: 
   Serial.println(chip.rd_status(), BIN);
   break;
   case ‘>’: 
   startAddr=SerialIn(); 
   Serial.print(“startAddr: “);
   Serial.println(startAddr);
   break; 
   case ‘<‘: 
   endAddr=SerialIn(); 
   Serial.print(“endAddr: “);
   Serial.println(endAddr);
   break; 
   case ‘y’:
   chip.set_play(startAddr,endAddr);
   break;
   case ‘r’:
   //chip.set_erase(startAddr,endAddr);
   //delay(500);
   chip.set_rec(startAddr,endAddr);
   break;
   case ‘e’:
   chip.set_erase(startAddr,endAddr);
   delay(500);
   break;
   
   }
   Serial.print(“Status—> “);
   Serial.print(chip.CMD_ERR()? “CMD_ERR “: “OK “);
   Serial.print(chip.PU()? “PU “: “NO PU “);
   Serial.print(chip.RDY()? “RDY “: “Not_RDY “);
   Serial.print(chip.rd_status(), BIN);
   Serial.println();
   delay(1000);
   }
   }
 
int SerialIn(){
   inInt=0;
   
   while (Serial.available() <= 0) 
   {
   delay(300);
   }
   while (Serial.available()) {
   // get the new byte:
   char c = Serial.read(); 
   // add it to the inputString:
   inInt = (inInt*10) + (c-48);
   // if the incoming character is a newline, set a flag
   // so the main loop can do something about it:
   if (c == ‘n’) {
   //stringComplete = true;
   Serial.print(“stringComplete “);
   } 
   }
   //c = Serial.read()-48; 
   //mess(c);
 
 return (inInt);
                       
                       }
                       /*
                       void mess(int num){
   Serial.print(“num: “);
   Serial.println(num);
   startAddr=(0x50*num)+0x10;
   endAddr=(startAddr+0x50)-1;
   Serial.print(“startAddr: “);
   Serial.print(startAddr, HEX);
   Serial.print(” – endAddr: “);
   Serial.println(endAddr, HEX);
   
   }
   */     
 
SCHERMATE DEL SOFTWARE
Software per PC appositamente realizzato da noi per gestire i messaggi all’interno di qualsiasi integrato ISD1700 e programmare gli integrati di tale famiglia; il software consente di caricare nel chip vocale file audio memorizzati nel computer definendo eventualmente anche le locazioni di memoria in cui scriverli o lasciando che sia il PC a decidere come collocarli.
CLICCA SULL’IMMAGINE PER INGRANDIRE
CLICCA SULL’IMMAGINE PER INGRANDIRE
DOCUMENTAZIONE E LINK UTILI
 

 

Documentazione Tecnica
PDF italiano

Menu