WTV020-SD Shield – Progetto completo

In questo articolo viene descritta la costruzione di uno shield per il modulo audio WTV020-SD.
Il modulo permette di riprodurre suoni o voci memorizzate su scheda MicroSD tramite Arduino.

Il PCB è stato progettato con il programma online EasyEDA, mentre stata realizzata tramite il servizio offerto dal sito JLCPCB.

Sito online per creazioni schemi e PCB  Sito produzione PCB

Il modulo WTV020-SD

Se leggiamo il datasheet del modulo possiamo notare che  può lavorare in svariate modalità: MP3, Key (3 group of voice), Key (5 group of voice), Loop play, Two line serial mode.
Di questo modulo è possibile trovare due versioni: WTV020-SD-20S o WTV020-SD-16P, il primo usa schede SD standard ed ha un connettore bifilare a passo ridotto, mentre il secondo, più comune, usa una Micro SD e presenta un package DIL a 16 piedini.
Un modulo simile è quello citato in questo articolo DFPlayer Mini Riproduttore MP3 per Arduino

Questi moduli sono relativamente facili da reperibile in rete, e hanno un costo molto contenuto.
Il modello che sarà utilizzato è il WTV020-SD-16P (datasheet) , e come detto, consente di leggere file audio da una scheda microSD e di trasmetterli con un semplice altoparlante.
Può essere utilizzato sia in modo autonomo con dei pulsanti esterni oppure associato a un controllore come Arduino mediante comunicazione seriale su 2 linee di input/output.
La scheda è estremamente compatta in quanto misura solo 20x18mm, il suo peso è di soli 5 gr, la sua impostazione “a circuito integrato” permette l’installazione su uno zoccolo o su una millefori.
Il cuore del circuito del modulo è l’integrato WTV020SD-20S prodotto dalla Waytronc Electronics Co.,Ltd
NOTA : anche se sul modulo è presente un Jumper che sembra permettere di selezionare l’alimentazione tra i valori di 3,3V o 5V, questa è impostata alla costruzione al valore di 3,3V.
Per maggiori informazioni vedere l’articolo Modulo audio WTV020-SD – Presentazione

Modalità Two line serial mode tramite Arduino

Per il collegamento ad Arduino viene utilizzata la modalità Two line serial mode. In questa modalità è possibile effettuare il comando del modulo tramite comandi inviati da Arduino, la gestione è facilitata dalla disponibilità di una libreria freeware in grado di controllare con pochissimi comandi questo modulo.
Il collegamento necessita di soli 4 segnali: Data, Clock, Reset e Busy.
Sotto è riportato lo schema base del datasheet del modulo

 

Schema elettrico dello shield per WTV020-SD

Sotto è riportato lo schema elettrico dello Shield per modulo audio WTV020-SD.  Questo può essere esaminato accedendo al sito EasyEDA, dove è disponile un programma online. Ecco il link
Per conoscere meglio il programma, leggete anche gli articoli EasyEDA – Guida all’utilizzo del programma.

SiglaDescrizioneQ.tà
U1WTV020SD-16P1
U2Arduino UNO R31
U3Regolatore di tensione lineare L78L331
R1470Ω 5%1
R2330Ω 5%1
VR1Trimmer 500Ω1
C1,C3Consensatore 0,1uF2
C2Consensatore 0,33uF1
D1Disodo 1N40071
BUSYLED ø3 mm Rosso1
PWRLED ø3 mm Verde1
SW2,SW3,SW4,SW1Pulsante 6×6 mm4
P4,P1Pinstrip M-2.54_1x22
P5,P6Pinstrip M-2.54_1x32
P3Pinstrip M-2.54_1x41
P2 per U1Pinstrip F-2.54_1x82
P1 -Arduino Pinstrip F-2.54_1x82
P1 -Arduino Pinstrip F-2.54_1x61
P3 -Arduino Pinstrip F-2.54_1x101

Segue una breve descrizione delle varie sezioni che formano il circuito.

Sezione di alimentazione

La sezione di alimentazione utilizza l’integrato LDO U3 tipo 78L33 (datasheet) che fornisce i 3,3 V per l’alimentazione del modulo WTV020-SD-16P.
Il diodo D1 tipo 1N4004/1N4007 (datasheet) garantisce la protezione dall’inversione di polarità, il diodo PRW segnalerà con la sua accensione la presenta dell’alimentazione.

La sezione di controllo

La sezione di controllo basata sulla scheda Arduino UNO,  riporta l’indicazione delle porte utilizzate dal modulo WTV020-SD-16P e dai tasti presenti.  Dalla scheda, viene anche prelevata l’alimentazione di 5V.

Sezione Modulo Audio WTV020-SD-16P

Nella sezione Modulo audio WTV020-SD-16P (datasheet)  sono indicati i collegamenti verso Arduino per la gestione seriale. E’ presente il led BUSY la cui accensione indica che il modulo sta elaborando un file audio.
Sono indicati i collegamenti con i tasti e i pin di uscita verso l’altoparlante o verso il connettore a cui collegare un modulo amplificatore LM358.
Sull’uscita altoparlante è presente un trimmer che permette di regolare il volume, questo nel caso di gestione tramite Arduino è regolabile con un apposito comando.

Sezione controllo manuale

Nella sezione controllo manuale sono riportati i collegamenti ai 4 pulsanti presenti sullo shield. SW1 e SW2 sono dotati di un ponticello che permette di scegliere se collegarli al modulo audio, oppure alle porte D7 e D6 per altre funzioni. In questo caso, per l’utilizzo occorrerà attivare le resistenze di PUL-UP/PULL-DOWN interne ad Arduino
Normalmente i 4 pulsanti sono collegati ai relativi pin del modulo audio PO2, PO3, PO7 e RESET.
In questo modo è possibile utilizzate il modulo in modalità manuale anche senza l’utilizzo di Arduino.
I pulsanti SW1 e SW2 possono essere collegati tramite un cavallotto alle porte D6 e D7 e possono essere utilizzati secondo le istruzioni inserite nel programma.

Sezione uscita amplificate

Connettore per collegare un eventuale modulo amplificatore basato sull’integrato LM385.

Modifica del circuito del PCB

Il circuito potrà essere modificato o adattato alle proprie esigenze tramite il programma online realizzato da EasyEDA. Sarà inoltre possibile apportare delle modifiche al PCB.

Il progetto completo può essere anche scaricato dal mio account presso OSHWLabutilizzando questo link.

Realizzazione del PCB

Il PCB potrà essere realizzato tramite il servizio offerto dalla JLCPCB, azienda che agisce in sinergia con EasyEDA.

 Il PCB è di tipo a doppia faccia con fori metallizzati

Per le fasi di realizzazione vi consiglio la lettura dei seguenti articoli: Come realizzare i vostri PCB tramite il sito JLCPCB e JLCPCB & EasyEDA-Progettazione, realizzazione, assemblaggio PCB

Busta contente la scatola con i PCB ordinati

Scatola dei PCB

Busta contenete i 5 PCB, numero minimo ordinabile

PCB dello shield per WTV020-SD-16P.

Costruzione

L’assemblaggio del PCB è piuttosto semplice. Occorreranno però alcuni strumenti :

Vedere anche gli articoli:

Saldatore a stilo

Tronchesina

 

Rotoli di satgno

Rotoli di stagno

Fasi di montaggio

Seguono le principali fasi di costruzione dello Shield.  La prima delle quelli è quella di ordinare tutti i componenti che formano lo shield per il modulo WTV020-SD.

Le pin strip F 1×8 si potranno ricavare da pin strip di solito formate da 40 pin, tagliandole con un cutter, in alternativa potranno essere acquistate già della giusta conformazione.
Anche le pin strip M 1×3 e 1×2 possono essere ricavate da pin strip a 40 pin.

Si può iniziare dai componenti a più basso profilo come le resistenze:

  • R1 da 470 Ω: giallo, viola, marrone + un anello di tolleranza oro (5%)
  • R2 da 330 Ω: arancio, arancio, marrone + un anello di tolleranza oro (5%)

Si prosegue con il diodo raddrizzatore D1, facendo attenzione che essendo polarizzato andrà montato facendo riferimento alla banda colorata riportata sull’involucro.

Saldiamo ora i tre condensatori,  due che riportano la sigla 104 e uno con la sigla 334

si prosegue con i 4 pulsanti

passando poi ai due led. Occorre fare attenzione a posizionare il terminale più corto che è in corrispondenza della tacca sull’involucro   con il segno presente sulla serigrafia del PCB. Si salderanno poi anche i trimmer.

Ora possiamo saldare il regolatore di tensione facendo anche in questo caso riferimento alla serigrafia del PCB

Possiamo poi saldare i pin strip vari presenti sul circuito

Si prosegue con le due pin strip 8 pin per  l’installazione del modulo audio

Per ultimo le pin strip passanti che permetteranno il collegamento con la scheda Arduino UNO

Potremo ora posizionare il Modulo audio WTV020-SD-16P, prendendo come riferimento la tacca presente

Per ultimo posizioniamo i cavallotti sulle pin trip come in foto. Il montaggio è ora terminato

Alcune foto del montaggio

Creazione dei file audio

Per poter riprodurre dei brani è necessario realizzare dei file audio compatibili con il modulo e caricarli nella scheda microSD,  questo perché il nostro modulo è in grado di riprodurre solo files in formato .ad4 e .wav.
Per realizzare i file audio è possibile utilizzare uno dei tanti sound editor che si trovano gratuitamente su Internet.
Per creare parole e numeri è più indicato utilizzare un programma di TTS cioè Text To Speech, in questo caso, tutto si semplifica poiché è sufficiente scrivere quello che vogliamo far pronunciare e il programma, utilizzando la sintesi vocale che è la tecnica per la riproduzione artificiale della voce umana, creerà per voi il file che potrà essere salvato in formato wav.
Quello che consiglio, si chiama DSpeech è stato scritto da Dimitrios Coutsoumbas (Dimio).

Il programma  è in grado di leggere il testo scritto, non ha bisogno di essere installato e occupa poca memoria. Permette di salvare l’output sotto forma di un file Wav, Mp3, Aac, Wma o Ogg.
Per scaricarlo e per le istruzioni di come installarlo vedere al seguente link

I file con estensione .ad4 sono file a 4 bit codificati in ADPCM (Adaptive Differential Pulse Code Modulation) è un’estensione della codifica digitale PCM di base, usata largamente nel campionamento, quantizzazione e codifica di segnali audio, soprattutto in campo di telefonia fissa.
Per ottenere la migliore qualità audio .ad4, è meglio rispettare queste caratteristiche:

  • Il suono se stereo dovrebbe essere convertito in mono;
  • La frequenza di campionamento deve essere impostato a 32000Hz;
  • La profondità di bit deve essere impostata a 16;
  • Il livello sonoro non dovrebbe essere superiore a -6db.

Per realizzare questo tipo di file si può utilizzare un programma che risulta ancora compatibile con la versione W10, si tratta del programma SOMOtool.exe, al cui interno c’è un’applicazione UsbRecorder che permette appunto la conversione di file nel formato AD4 compatibile con il modulo.

IMPORTANTE! I files, una volta generati, devono avere il nome nel formato XXXX.ad4, dove le X stanno ad indicare delle cifre in numerazione decimale, da 0000 a 0511. Per cui sulla microSD dovremo avere quindi qualcosa del genere:

0000.ad4
0001.ad4
0002.ad4
0003.ad4
0004.ad4
…..
0511.ad4

L’ordine dei files sarà quello che avremo in riproduzione quando invieremo il comando “next”.

La scheda di memoria SD

Come prima cosa dovremo procurarci una scheda MicroSD in quanto questa non viene fornita con il modulo. Non tutte le schede sono compatibili, in particolare NON sono compatibili le schede SDHC.
Sfortunatamente , la massima capacità della scheda utilizzabile è di 2 GB, non tanto per la sua dimensione ma per la sua reperibilità.
La scheda va poi formattata in formato FAT32, altri tipi di file system o capacità maggiori non sono riconosciuti dal modulo.

Libreria di gestione del modulo

La gestione è facilitata dalla disponibilità di una libreria freeware in grado di controllare con pochissimi comandi questo modulo. La libreria è disponibile presso il link Arduino Library List, l’ultima versione disponibile è la versione 1.4.0.
Per cui fare clic su Sketch> #Includi libreria> Gestione librerie, oppure premere Crtl+Maiusc+l

Arduino Tutorial installare libreria

Il programma verificherà tutte le librerie presenti e mostrerà una casella di ricerca, a questo punto digitare il nome della libreria da caricare,  nel nostro caso “WTV020SD16P“,  in questo modo apparirà la libreria cercata

occorre premere il tasto Installa, Al termine dell’installazione apparirà la dicitura “INSTALLED“, quindi premere il tasto Chiudi per uscire.

Una volta riavviato l’ambiente di programmazione di Arduino, troveremo anche la libreria chiamata Wtv020sd16p, e negli esempi uno sketch completo di tutti i comandi utilizzabili.

Per altre informazioni su come installare una libreria vedere l’articolo Arduino – Tutorial, come installare una libreria

Utilizzo della libreria

Per utilizzare la libreria occorrerà utilizzare il comando #include

poi occorre assegnare il numero dei pin utilizzati per le varie funzioni

A questo punto si potrà creare l’istanza

Sono disponibili i seguenti comandi:

ComandoDescrizione
wtv020sd16p.reset();Esegue il reset del modulo
wtv020sd16p.setVolume(X);Imposta il volume dell'uscita collegata all'altoparlante, dove X è un valore tra 0 e 7.
wtv020sd16p.asyncPlayVoice(X);Manda in esecuzione i file relativo, dove X è un valore tra 0 e 511.
wtv020sd16p.pauseVoice();Arresta la riproduzione del brano, o riprende il brano dopo una pausa.
wtv020sd16p.mute();Ammutolisce il suono durante la riproduzione.
wtv020sd16p.unmute();Riattiva il suono durante la riproduzione
wtv020sd16p.stopVoice();Interrompe la riproduzione del file corrente.

Programma di test

Per testate lo shield, dovremmo istallarlo su una scheda Arduino UNO e collegare un piccolo altoparlante al connettore SPK.

Il programma di test, prevede l’utilizzo di alcuni file audio, che dovremmo salvare sulla scheda MicroSD.
Una volta lanciato il programma il modulo invierà nella giusta sequenza i file .

File audio formato WAV

File audio formato AD4

Alcuni file che mostrano l’utilizzo del modulo WTV020SD16P