SHIELD DFPLAYER MINI PER WEMOS

Tutorial su Come Interfacciare un Modulo MP3 ad un Microcontrollere Wemos…

 

 

 
 



 

WEMOS D1 MINI

Questo articolo avrebbe potuto esaurirsi con un’immagine e quattro righe di descrizione.Però, poiché su queste pagine non mi risulta si sia mai parlato né di Wemos D1 Mini né di DFPlayer Mini, dedicherò un po’ di tempo per illustrare le caratteristiche di questi moduli. Sono certo incuriosirà molte persone…

http://www.wemos.cc/product/d1-mini.html

Quasi tutti conoscoscono Arduino, una piattaforma basata su microcontroller relativamente semplice da programmare. Dall’hardware Arduino, originariamente nato su processori Atmel ATMega, sono nati innumerevoli cloni e spin-off, ovvero progetti che pur basandosi su architetture hardware e processori completamente diversi, condividono con l’originale Arduino la semplicità e l’ambiente di programmazione (IDE).

Il Wemos D1 Mini è uno di questi spin-off.

A differenza di altri Arduini, basati in genere su microcontrollori Atmel, il cuore del Wemos è… un modulo WiFi!

Tutta la circuiteria del Wemos D1 Mini è infatti costituita da un modulo WiFi ESP-8266 con pochi componenti aggiuntivi. Poiché questo modulo al suo interno comprende un micro di tutto rispetto, gli inventori del Wemos hanno pensato bene di caricarci un bootloader compatibile con l’IDE di Arduino e farne un versatile modulo microcontroller con funzionalità WiFi. Alta cosetta simpatica è che tutto il modulo costa più o meno come un cappuccino con cornetto al tavolo!

Vediamo le principali analogie e differenze tra un Arduino Nano ed un Wemos D1 Mini:

Si può notare che rispetto ad un Arduino classico il Wemos ha una velocità che può essere anche dieci volte maggiore, ed una memoria estremamente più elevata. Di contro possiede meno porte di I/O, cosa facilmente ovviabile utilizzando un extender. Sto giusto progettando una shield che aggiunge 8 porte digitali bidirezionali e otto porte analogiche a 12 bit, che pubblicherò prossimamente.

Ma l’aspetto più rilevante è la presenza del WiFi. Voi direte: ma nei miei progetti non mi serve il WiFi! Poco male, basta ignorarlo. Considerate che il Wemos costa la metà di un Arduino Nano, è molto più potente ed è pure più piccolo…

Anche il Wemos, come l’Arduino Nano, possiede un convertitore USB-Seriale a bordo, cosa che ci semplifica la vita nella programmazione. La stessa porta USB può essere usate per le comunicazioni col computer e per scambiare dati.

Non volendo fare una trattazione completa, rimando al sito del produttore e al sito di Arduino per un informazione approfondita.

Riassumo però alcune note per l’installazione del software necessario per gestire il Wemos:

1) dall’IDE di Arduino, andare su Strumenti>Scheda>Boards manager…

2) Nella finestra di ricerca inserire ESP8266.

3) Scegliere la versione più recente ed installarla.

In questo modo abbiamo installato il supporto per diverse schede basate su ESP826, tra cui appunto il Wemos.

In fase di programmazione dovremmo fare alcune scelte dal menu Strumenti:

SCHEDA: scegliere ovviamente WEMOS D1 R2 & MINI (esiste una versione precedente da non usare, WEMOS D1(retired))

CPU FREQUENCY: 80 o 160 MHz

FLASH SIZE: ci sono due opzioni, 4M(3M SPIFFS) e 4M(1M SPIFFS). In teoria la seconda dovrebbe lasciare liberi 3 MB per il programma, ma in realtà a me entrambe ne lasciano solo 1MB, che in ogni caso sono molti!

UPLOAD SPEED: di tutte le opzioni a me funziona solo la 230400.

PORTA: ovviamente la porta seriale che state usando!

A proposito della porta, il Wemos usa un chip USB CH340, il cui driver va installato appositamente, a meno che non lo abbiate già installato per altri motivi. Il driver si trova in Internet, ma per comodità riporto qui i link:

http://sparks.gogo.co.nz/ch340.html

Per la programmazione non cambia molto rispetto al classico Arduino. Da ricordarsi che:

– Esistono solo le porte da D0 a D8

– Esiste un solo ingresso analogico a 10 bit, A0

– L’uso del modulo WiFi richiede la libreria standard WiFi

– Il LED è collegato alla porta D4 (invece che alla 13 come in Arduino)

– D1 e D2 possono essere usati rispettivamente come SCL e SDA per la comunicazione I2C con la relativa libreria

– D5, D6, D7 e D8 possono essere usati come SCK, MISO, MOSI ed SS del bus SPI con relativa libreria.

Come prma prova del Wemos, la cosa più semplice è usare lo sketch di esempio “blink”, quello che fa lampeggiare il LED, facendo una sola modifica, cambiando il valore “13” del pin di uscita con “D4”. Mi raccomando, D4, non solo “4”, perché il Wemos vuole il nome del pin, non solo il numero!

Eccovi il codice completo dell’esempio, già modificato:

void setup() {

  pinMode(D4, OUTPUT);      // initialize digital pin D4 as an output.

}

void loop() {

  digitalWrite(D4, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);              // wait for a second

  digitalWrite(D4, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);              // wait for a second

} 


Buon divertimento col Wemos!

Aggiornamento dell’ultimo minuto: su sito http://www.wemos.cc è appena stato presentato un nuovo modello, il WEMOS D1 MINI PRO. A differenza del precedente è più sottile e leggero, e possiede 16MB di memoria flash. Tutte le altre caratteristiche sembrano invariate.

 





 
DFPLAYER MINI

https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

Il DFPlayer Mini è un modulo audio, perfetto per riprodurre file MP3 direttamente da una scheda micro SD. A differenza di altre soluzioni audio da interfacciare a microcontrollori, questo modulo è l’unico che io conosca ad offrire una qualità audio ad alto livello ed in stereo.

Il modulo può lavorare anche in maniera indipendente, semplicemente alimentandolo e collegandoci alcuni pulsanti che lo rendono un vero e proprio player MP3.

Il costo non è proprio economicissimo, si trova intorno agli otto-dieci euro, ai quali va aggiunto il costo della microSD, ma le prestazioni sono ottime.

L’uso standalone è molto semplice, e per controllarlo via Arduino si può fare via seriale. Inoltre esiste un’apposita libreria che riduce al minimo il codice da scrivere.

Il modulo presenta 16 piedini, molti dei quali sono inutili per un uso con MCU. Ad esempio i terminali marcati USB+ e USB- servono per usare il modulo come lettore e scrittore di card tramite PC, ADKEY e IO servono per collegare dei pulsanti per il controllo diretto. Sul lato destro quindi l’unico pin che potrebbe essere utile è il pin BUSY, che indica quando il modulo sta riproducendo un suono, ed è collegato al LED presente sul modulo stesso, che si accende drante la riproduzione. Per l’uso dei piedini non utilizzati in questo progetto vi rimando alla documentazione ufficiale linkata in alto.

Sull’altro lato troviamo il TX ed RX, da collegare rispettivamente al RX ed al TX del microcontrollore.

I due terminali marcati DAC_L e DAC_R sono i canali sinistro e destro dell’uscita audio a basso livello. A queste uscite è anche possibile collegare direttamente delle cuffiette.

Infine tra i terminali SPK_1 e SPK_2 possiamo collegare un altoparlante da 4Ω o 8Ω 3W. Il modulo è piccolo, ma ha una bella voce!
 

SHIELD DFPLAYER MINI PER WEMOS D1 MINI

Ed eccoci al cuore dell’articolo.

Per poter usare un modulo audio DFplayer con il Wemos possiamo collegare con fili volanti i segnali essenziali, ovvero alimentazione a 5V, massa, TX, RX e i collegamenti all’altoparlante o all’amplificatore esterno. Opzionalmente possiamo utilizzare il segnale Busy del DFplayer per comunicare al Wemos che un brano audio è in esecuzione.

Oppure possiamo utilizzare la seguente schedina come shield per avere già pronti tutti i collegamenti…

La scheda è pensata per essere realizzata con un PBC monofaccia, anche se per una maggior solidità e facilità di montaggio sarebbe utile un PCB doppia faccia, ancor meglio se con fori metallizzati.

Sulla shield ci sono pochissimi altri componenti, poiché tutto l’essenziale è già presente nel modulo, e per questo mi sembra superfluo pubblicare uno schema elettrico composto di solo due resistenze.

Gli unici segnali da collegare, oltre ai +5V e alla massa, sono TX ed RX. Per lasciare liberi più I/O possibile, la shield utilizza TX ed RX del modulo Wemos, gli stessi che usiamo per la programmazione e la comunicazione tramite la seriale. Poiché i terminali TX/RX del modulo DFplayer sono collegati al Wemos tramite due resistenze da 1kΩ, la comunicazione e la programmazione potranno avvenire anche con la shield collegata, fintanto che non trasmettiamo sequenze di codici che possano essere interpretati come comandi dal DFplayer.

Un segnale del DFplayer che potrebbe tornare utile è il Busy, che indica che il modulo sta riproducendo un brano. Se per qualche motivo volessimo attendere la fine del prano prima di eseguire altri comandi, dobbiamo collegare questa uscita ad uno degli ingressi digitali del Wemos. Per semplificare l’operazione, ho predisposto un ponticello, indicato con BUSY, D0, D5, che ci permetterà di usare l’ingresso D0 oppure D5 per monitorare l’uscita Busy. Lasciando tutto scollegato i terminali D0 e D5 saranno disponibili come I/O per altre attività.

Dalla shield possiamo prelevare sia il segnale ad alto livello per un altoparlante da 4-8Ω (terminali AP) oppure un segnale a basso livello da mandare ad un amplificatore o a degli auricolari. I terminali di questo connettore sono marcati L, R e GND. Sullo stesso connettore è possibile prelevare i +5V, utili per alimentare un piccolo amplificatore.

 

CONCLUSIONE

Bene, adesso sapete qualcosa di più su Wemos e DFplayer. Probabilmente la mia shield non vi interesserà, o forse vi ho dato qualche spunto interessante per i vostri progetti…

Vi do appuntamento al prossimo articolo che si intitolerà “Shield: maschile o femminile?” e tratterà del sesso delle (o degli) shield.

 

Articolo realizzato da Luca Calcinai, lo staf di NE555.IT ringrazia 🙂



 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

3 pensieri su “SHIELD DFPLAYER MINI PER WEMOS

  1. Ciao,
    mi sto interessando al modulo DFP Player e vorrei sapere se ai pin speaker posso collogare un aplificatore ad opamp in conf non invertrnte o meno, se si uno dei pin deve andare all’ingresso dell’opamp e l’altro a massa? l’interrutore al pin key1 può essere sostituito da un sensore di presenza (coppia led fotodiodo) in modo che l’unico audio sulla sd venga riprodotto quando il sensore di presenza eroga segnale ?
    garzie e ciao

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *