ultimo aggiornamento 29 ottobre 2012


 

La scheda qui presentata uno Shield che collegato ad una scheda Arduino permette l'utilizzo del modulo sonoro LPM11162.     Il primo prototipo stato montato utilizzando una Proto Shield V.4.
Sulla scheda presente uno stadio alimentatore, uno di interfaccia per adattamento delle tensioni, tra il processore Arduino e il modulo LPM11162, uno stadio amplificatore, due led di segnalazione, un pulsante di reset del processore.

 

Questa scheda come quella di programmazione sono stati oggetto di due miei articoli apparsi sulla rivista Fare Elettronica, il primo numero rivista n 310 in edicola nell' Aprile 2011, con l'articolo dal titolo "Diamo voce ad ARDUINO"  con presentazione della scheda di programmazione del modulo LPM11162.
Il secondo numero Rivista n 311 in edicola nel maggio 2011, sempre con il titolo "Diamo voce ad ARDUINO" in cui viene presentata la costruzione dello shield per Arduino presente in questa pagina.


Rivista n 310

Rivista n 311

 

  Stadio di alimentazione

Stadio necessario per fornire la tensione di 3.3V per l'alimentazione del modulo LPM11162.    La tensione derivata da quella di +5V fornita dalla scheda Arduino 2009
E' utilizzato il regolatore LM317LZ, la tensione d'uscita dimensionata a 3.3V tramite le due resistenze da 240Ω e 390Ω.

 

LM317LZ Regolatore di tensione regolabile
Piedinatura Datasheet Foto dell'integrato

Stadio adattatore di livelli

Il modulo LPM11162 funziona con una tensione di alimentazione di +3.3V, e anche le comunicazioni seriale e i segnali di reset e busy sono e devono essere a questa tensione, il processore Arduino ha una logica a +5V.
Per questo motivo necessario adattare i livelli uscenti ed entranti dal modulo.
Per quelli entranti (RX - Reset) sufficiente un partitore realizzato con due resistenze che abbassano la tensione.
Per quelli uscenti si sono utilizzati due transistor BC337 che "trasferiscono" il segnale dalla tensione di +3.3V a +5V.
Transistor BC337  (NPN Switching and Amplifier Applications )
Piedinatura Datasheet Foto del transistor (contenitore plastico)

Amplificatore

Il segnale audio analogico in uscita dal pin 9 del modulo LPM11162   connesso ad un amplificatore con  LM386. Questo circuito integrato molto diffuso perch con pochi componenti esterni in grado di pilotare direttamente un piccolo altoparlante, il package un piccolo DIP8 e si tratta di un componente economico.
Lo schema utilizzato nella demoboard il pi semplice realizzabile.      I pin 1 ed 8 sono previsti per una regolazione del guadagno dell'amplificatore nel range 20200.
Se lasciati aperti il guadagno quello minimo, quindi l'ampiezza del segnale sull'altoparlante sar 20 volte quella di ingresso sul pin 3, mentre inserendo come indicato nello schema un condensatore elettrolitico da 10 F l'amplificazione sar pari a 200.
Al pin di ingresso arriva il segnale audio proveniente dal modulo opportunamente attenuato dal trimmer R11 da 10K.
Questa attenuazione necessaria per limitare il valore massimo del segnale ingresso all'LM386 in modo da non far saturare l'uscita. Tramite il trimmer possiamo poi effettuare una regolazione del volume quando necessario.
l condensatore da 47nF e la resistenza da 10Ω in serie sull'uscita dell'amplificatore sono necessari per rendere stabile l'amplificatore come indicato nel datasheet.
C' poi un condensatore di disaccoppiamento in serie all'altoparlante che costituisce un blocco in corrente continua.

LM 386  Low Voltage Audio Power Amplifier
Piedinatura Datasheet Foto dell'integrato

arduino_lpm11162-dettaglio amplificatore.jpg

Modulo LPM1162

Il modulo audio LPM11162 un piccolo componente con una memoria flash interna progettato per memorizzare e riprodurre file wave grazie a pochi semplici comandi seriali.
Le quattro linee RX, TX, Busy, Reset sono connesse al processore Arduino tramite uno stadio di adattamento di livelli.
l'uscita analogica collegata all'amplificatore audio di potenza che pilota un altoparlante.
Per la programmazione del modulo si deve collegare un PC e scaricare all'interno del modulo audio i file wave che saranno riprodotti come sintesi vocale.
Una volta che tramite il PC avremo programmato i messaggi all'interno del modulo audio il microcontrollore dovr soltanto inviare il comando di Play (indicando il nome del file wave da riprodurre) per iniziare la riproduzione del file.

LPM11162 Modulo audio/voce
lpm11162_pin.jpg lpm11162_foto.jpg
Piedinatura Datasheet Foto dell'integrato

Led di segnalazione

Sono disponibili due led connessi alle porti digitali 5 e 6 del processore Arduino, ogni led connesso ad una resistenza limitatrice.

arduino_lpm11162-dettaglio led.jpg

Pulsante di reset

Per effettuare il reset del Processore Arduino presente un pulsante connesso al pin reset del connettore da cui vengono anche prelevate le tensioni +5V e Vin per alimentare il circuito

Foto della scheda montata su Arduino e completa di altoparlante

arduino_lpm11162-10.jpg

Schema elettrico

Elenco componenti

R1,R3,R4,R5,R6,R15

 10kΩ 1/4W
R2  15kΩ 1/4W
R7  1kΩ 1/4W
R8  120Ω 1/4W
R9  150Ω 1/4W
R10  1k5Ω 1/4W
R11  10kΩ Trimmer
R12  10Ω 1/4W
R13  240Ω 1/4W
R14  390Ω 1/4W
C1,C3  100nF Multistrato
C2,C4,C5,C7,C9,C10  10F elettrolitico verticale 35Vl
C6  100F elettrolitico verticale 35Vl
C8  47nF Ceramico
IC1  LPM11162
IC2  LM386
IC3  LM317L
T1,T2  BC337
LED1  Led 3 mm Rosso
LED2  Led 3 mm Verde
RESET  Pulsante da CS
AP  Connettore a 2 poli
Digitale  Pinstrip maschio1X08
Power  Pinstrip maschio 1X06

arduino_lpm11162-03.jpg

 


Files formato EAGLE

Per chi usa il programma EAGLE per disegnare i propri circuiti, ho creato il simbolo con il modello 3d, per ulteriori informazioni vedere la pagina di istruzioni.

Alcune fasi del montaggio

I programmi di gestione

/*
Programma:Test_lpm11162.pde
 Versione: 1.0
 Collaudo modulo LPM11162
 di Adriano Gandolfo
*/
 #include <NewSoftSerial.h>
 NewSoftSerial LPM(4, 7);
void setup() {                
  pinMode (2, INPUT);  // Pin 2 Busy
  pinMode (3, OUTPUT); // Pin 3 RESET
  pinMode (5, OUTPUT);  // Pin 5 LED Play-verde
  pinMode (6, OUTPUT);  // Pin 6 LED Busy-Rosso
  LPM.begin(9600);	// opens serial port, sets data rate to 9600 bps
  delay (1000);
  digitalWrite(3, LOW);   // Reset del modulo LPM11162 
  delay(10);             //Pausa di 10 ms tempo tRL
  digitalWrite(3,HIGH);   //
  delay(600);              // Pausa di 600 ms Tempo tRA
  LPM.print(byte(85)); // Invio carattere di autobaudrate
  delay(150);              // Pausa prima invio del comando Play
}
void loop() 
{
 digitalWrite(5, LOW);   // Spegne led Verde
 digitalWrite(6, LOW);   // Spegne led Rosso
  LPM.print(16,BYTE); // Play
  LPM.print(0,BYTE);
  LPM.print(9,BYTE);
  LPM.print("rosso.wav"); // Pronuncia frase
  delay (3000);
  digitalWrite(6,HIGH);   // Accende led rosso
  delay (500);
  LPM.print(16,BYTE); // Play
  LPM.print(0,BYTE);
  LPM.print(9,BYTE);
  LPM.print("verde.wav"); // Pronuncia frase
  delay (2000);
  digitalWrite(5,HIGH);   // Accende led Verde
  delay (2000);
}

 

/*
Programma:Test_lpm11162_v1.pde
 Versione: 1.0
 Collaudo modulo LPM11162
 di Adriano Gandolfo
 */
#include <NewSoftSerial.h>
#include <LPM11162.h>
LPM11162 AudioModule;

void setup()
{
  //Begin parameters: rx pin, tx pin, reset pin, busy pin, baudrate.
  AudioModule.begin(4, 7, 3, 2, 9600);
  pinMode (5, OUTPUT);  // Pin 5 LED Play-verde
  pinMode (6, OUTPUT);  // Pin 6 LED Busy-Rosso
}
void loop()
{
  digitalWrite(5, LOW);   // Spegne led Verde
  digitalWrite(6, LOW);   // Spegne led Rosso
  AudioModule.volume(50);
  AudioModule.play("rosso.wav"); // Pronuncia frase
  delay (2000);
  digitalWrite(6,HIGH);   // Accende led rosso
  delay (500);
  AudioModule.play("verde.wav"); // Pronuncia frase
  delay (2000);
  digitalWrite(5,HIGH);   // Accende led Verde
  delay (2000);
}

 

Elenco revisioni
29/10/2012 Aggiornato pagina
23/02/2011 Aggiornato pagina con inserimento foto e materiale del prototipo
17/09/2010 Emissione preliminare