Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

LPM11162 Arduino Library
Autore:  LP ELETTRONICA
Contatti: info@lpelettronica.it
          www.lpelettronica.it

LPM11162 Arduino Library


History

 2012-11-12: Nuova release Arduino per IDE 1.x (v.2)
 2011-05-04: Release iniziale per Arduino (v.1)

Indice

LPM11162 Arduino Library LPM11162 Arduino Library

Introduzione

LPM11162 è un modulo audio dotato di memoria flash interna che consente di memorizzare e successivamente riprodurre file audio in formato WAV.

L'interfaccia seriale consente il collegamento diretto ad un PC per la memorizzazione dei file audio. Collegandolo poi ad una scheda con microcontrollore (ad esempio Arduino) è possibile richiamare per nome i singoli file memorizzati e riprodurli istantaneamente sull'uscita analogica.

La LPM11162 Arduino Library rende immediato tutto questo, così la riproduzione di file WAV diventa estremamente semplice.

Funzioni

begin(baudrate)

Configura la libreria e l'hardware per comunicare con il modulo audio LPM11162 con il baudrate selezionato, tipicamente 9600.

end()

All'opposto di begin() rilascia interamente le risorse hardware e software impegnate per la comunicazione con il modulo audio LPM11162, quindi sarà possibile ad esempio sfruttare un pin utilizzato in precedenza per il modulo audio per altre funzioni. In realtà non ha un vero uso pratico, è presente solo per completezza.

play(fileName)

Inizia la riproduzione del file WAV il cui nome è specificato come parametro della funzione, ad esempio "test.wav".

stop()

Interrompe la riproduzione del file WAV che è in corso.

volume(volume)

Regola il livello del volume di riproduzione audio passando un numero tra 0 e 100 come parametro per indicare il volume.

isBusy()

Legge lo stato del pin /BUSY del modulo LPM11162. Questa informazione è utile per sapere se la riproduzione di un file WAV è ancora in corso.

reset(resetLevel)

Pilota direttamente il pin /RESET del modulo LPM11162. Generalmente non usata, ma può essere utile in qualche caso particolare.

synch()

Verifica la presenza del collegamento con il Toolkit per la programmazione dei file WAV sul modulo LPM11162. Il collegamento avviene attraverso la COM virtuale dedicata ad Arduino grazie alla quale i dati possono transitare sulla porta USB di Arduino. Se il collegamento con il Toolkit è presente è possibile entrare in modalità Bridge chiamando la funzione bridge(). In questa modalità Arduino farà da ponte tra i dati ricevuti dal PC sulla porta USB ed il modulo audio LPM11162. Così sarà possibile programmare il modulo audio ed utilizzare tutte le funzioni del Toolkit.

bridge()

Con questa funzione la libreria Arduino entra in modalità Bridge. In questa modalità Arduino realizza un ponte tra la connessione USB di collegamento al PC e le linee di comunicazione del modulo LPM11162. In questo modo il modulo audio può comunicare direttamente con il PC ed è possibile utilizzare il Toolkit per controllare tutte le funzioni del modulo LPM11162, tra cui ovviamente la programmazione dei file WAV. Prima di chiamare la funzione bridge() assicurarsi di aver stabilito la connessione con il Toolkit tramite la funzione synch().

Codice di esempio

Utilizzare la libreria è molto semplice ed il codice di esempio è in genere sufficiente ad illustrare il tutto. La configurazione completa di collegamento tra modulo LPM11162 ed Arduino utilizza 4 linee. Ecco il codice di riferimento:

#include <SoftwareSerial.h>
#include <LPM11162.h>


#define LPM11162_RX     4 //Arduino TX (out)
#define LPM11162_TX     5 //Arduino RX (in)
#define LPM11162_RESET  3 //(out)
#define LPM11162_BUSY   2 //(in)


LPM11162 audio(LPM11162_RX, 
               LPM11162_TX, 
               LPM11162_RESET, 
               LPM11162_BUSY);


void setup()
{
  if ( audio.synch() )
  {
    audio.bridge();
  }

  audio.begin(9600);
  audio.volume(50);
}


void loop()
{
  audio.play("test.wav");

  while( audio.isBusy() );

  delay( 2000 );
}

E' necessario includere due header file: LPM11162.h per l'uso della LPM11162 Arduino Library e SoftwareSerial.h per l'uso della libreria SoftwareSerial alla quale la libreria per il modulo audio si appoggia.

Il passo successivo è dichiarare una istanza del modulo audio LPM11162 con la configurazione dei pin utilizzata:

LPM11162 audio(LPM11162_RX,
               LPM11162_TX,
               LPM11162_RESET,
               LPM11162_BUSY);

Questo significa che d'ora in poi potremo chiamare tutte le funzioni definite all'interno della libreria utilizzando il nome audio. Utilizzando più moduli LPM11162 potremmo dichiarare altre istanze con nomi diversi in modo da poterci riferire a quello desiderato nel chiamare una certa funzione di libreria.

Nel caso in cui la linea opzionale di /BUSY non fosse utilizzata (vedi articolo tecnico AN009) l'inizializzazione dovrebbe essere come segue:

LPM11162 audio(LPM11162_RX,
               LPM11162_TX,
               LPM11162_RESET,
               LPM_NO_PIN);

All'interno della funzione standard di Arduino Setup() dobbiamo collocare le funzioni di inizializzazione che vogliamo chiamare all'avvio del sistema. Nel nostro caso la funzione synch() verifica se è presente un collegamento con il Toolkit tramite la COM virtuale dedicata ad Arduino (connessione USB) ed in caso positivo entra in modalità Bridge chiamando la funzione bridge(). Se invece la connessione con il Toolkit non viene rilevata il codice prosegue chiamando prima la funzione begin() che inizializza il baudrate a 9600 bps e poi la volume() per impostare il livello di volume al 50%.

L'altra funzione standard di Arduino Loop() costituisce il task principale che viene eseguito appunto in loop, cioè ciclicamente dopo l'esecuzione della Setup(). Nell'esempio viene chiamata la funzione di libreria play() assegnando come parametro il nome del file WAV che vogliamo riprodurre (test.wav). Chiamando questa funzione il file audio viene immediatamente riprodotto, poi tramite la funzione isBusy() utilizzata dentor il while si attende il completamento del Play. Infine c'è un delay di 2 sec per poi iniziare nuovamente con una nuova chiamata della Loop().

Schema di collegamento

Collegamento tra LPM11162 ed Arduino

Download

Installazione

L'installazione della libreria è molto semplice:

  • scaricare lo ZIP contenente la libreria
  • chiudere l'ambiente di sviluppo Arduino se in uso
  • scompattare il contenuto dello ZIP all'interno della cartella libraries dell'ambiente Arduino
Contenuto cartella libraries
  • avviare l'ambiente Arduino (IDE 1.x)
  • verificare che la libreria sia stata riconosciuta dall'IDE caricando il codice di esempio
Codice di esempio
  • compilare il codice di esempio cliccando sul pulsante Verifica
Pulsanti all'interno dell'IDE
  • attendere il completamento della compilazione ed assicurarsi che sia avvenuta con successo

Link e riferimenti