Riconoscimento colori con TCS3200 e DFPlayer mini

In un precedente articolo si è utilizzato il sensore TCS3200 per il riconoscimento dei colori (vedere TCS3200 sensore colore – Caratteristiche).
Il progetto qui illustrato permette di riconoscere i colori primari e di comunicare tramite i file audio registrati nella memoria Mini SD il colore trovato tramite un alktoparlante.

TCS3200 Sensore di colore – Descrizione

Il sensore di colore TCS3200 è un convertitore luce-frequenza, è composto da 16 fotodiodi con filtri blu, 16 con filtri verdi, 16 con filtri rossi e 16 non filtrati. Tutti i fotodiodi dello stesso colore sono collegati in parallelo. Quando un oggetto è posto frontalmente al modulo, ad una distanza non superiore a 10 mm, questo viene illuminato dai 4 LED bianchi e la luce riflessa andrà a colpire i 64 fotodiodi, ottenendo in uscita un’onda quadra (Duty cycle 50%) con una frequenza direttamente proporzionale all’intensità della luce riflessa.

TCS3200 riconoscimento colori

Informazioni più approfondite sul sensore possono essere trovate nell’articolo TCS3200 sensore colore – Caratteristiche

Foto del modulo prodotto dalla SUNFOUNDER

Altri modelli di sensore

Il sensore di colore TCS3200 per il riconoscimento colori è stato utilizzato da altri produttori per creare i propri moduli. Sotto sono riportate alcune versioni

Dove trovare il sensore TCS3200

Il sensore utilizzato nell’articolo è prodotto dalla SUNFOUNDER, ma come riportato nel paragrafo precedente, il sensore di colore TCS3200 è stato implementato in modulo prodotto da altre aziende.

Uno di questi è il modulo che può essere acquistato presso il sito Homotix,  codice prodotto HMTTCS3200., oppure codice HMTTCS3200P.

Il sensore può essere trovato anche presso il sito FUTURA ELETTRONICA, il codice prodotto è 2846-SENSORECOLORE2.

Esempio di utilizzo del sensore

Per l’applicazione mostrata in questo articolo collegheremo il sensore TCS3200, tramite il circuito mostrato in seguito, utilizzeremo una scheda Arduino UNO (originale o clone), a cui collegheremo il sensore TCS3200, un modulo DFPlayer Mini e un led RGB tipo WS2812 .
Sono inoltre necessari: una resistenza da 1KΩ, una breadboard e dei cavetti colorati di tipo M/M-M/F a seconda dei pin a cui sono da collegare.
Per ulteriori informazioni vedere gli articoli DFPlayer Mini Riproduttore MP3 per Arduino WS2812B LED RGB a controllo digitale

Riassunto materiale necessario

Scheda Arduino UNO TCS3200 sensore colore
TCS3200 riconoscimento colori
Modulo DFPlayer Mini Led RGB WS2812B
Cavi colorati M/M M/F Breadboard
Resistenze Altoparlante 8 Ω 0,5 W

1 x 1KΩ (marrone , nero, rosso)

Ourpcb

Descrizione del Led WS2812B

La presenza del chip interno, permette ai led RGB tipo WS2812B di essere programmati per emettere diversi colori tramite un protocollo ad 1 bit. Per il pilotaggio sono utilizzati solo 3 pin, due per l’alimentazione (+5V e GND) e uno per la programmazione.
Con questi led è possibile accendere con differenti colori, per esempio, delle strisce di led formate da uno sino a 500 led contemporaneamente (frequenza di trasmissione dei dati 400 kHz). L’unico limite sono le resistenze dei fili che portano l’alimentazione e la velocità con cui vogliamo cambiare i colori dei led.
Per altre informazioni vedere l’articolo WS2812B LED RGB a controllo digitale

Descrizione modulo DFPLayer Mini

In rete è presente la pagina wiki che riporta tutte le principali informazioni che permettono di utilizzare in modo semplice il lettore proposto. Nell’immagine sottostante è riportato il pinout, che come visibile, dispone di 16 pin di connessione; i pin sono inerenti l’alimentazione, il collegamento dello speaker e dei pulsanti con cui inviare comandi al DFPlayer mini per lavorare anche senza un microcontrollore. Sono poi presenti i pin RX-TX per la gestione da microcontrollore esterno.
Per altre informazioni vedere l’articolo DFPlayer Mini Riproduttore MP3 per Arduino

DFPlayer Riproduttore MP3 Arduino

Caratteristiche

  • Frequenze di campionamento supportate (kHz): 8 / 11.025 / 12/16 / 22.05 / 24/32 / 44.1 / 48
  • Uscita DAC a 24 bit, supporto per gamma dinamica 90 dB, supporto SNR 85 dB
  • Supporta pienamente FAT16, file system FAT32, supporto massimo 32G della scheda TF, supporto 32G di disco U, 64M byte NORFLASH
  • Vasta varietà di modalità di controllo, modalità di controllo I/O, modalità seriale, modalità di controllo tramite pulsanti
  • Funzione di attesa sonora pubblicitaria, la musica può essere sospesa. quando la pubblicità è finita la musica continua
  • Dati audio ordinati per cartella, supporta fino a 100 cartelle, ogni cartella può contenere fino a 255 canzoni
  • 30 livelli di volume regolabile, 6 livelli EQ regolabili

Schema dei collegamenti

TCS3200 riconoscimento colori

Scaricare schema

Collegamento dei componenti tra Scheda Arduino e breadboard

Dettaglio modulo DFPLayer Mini

Dettaglio led WS2812B

Listato del programma

Segue lo Sketch del programma per utilizzare il TCS3200 per il riconoscimento dei colori.
Per il suo corretto funzionamento occorre che siano caricate le opportune librerie: per la gestione del modulo DFPlayer Mini e per la gestione del led RGB WS2812B.
Per la gestione del sensore non occorrono librerie.

Le librerie Arduino.h, SoftwareSerial.h sono già presenti nell’IDE, le altre sono: Adafruit NeoPixel e DFRobotDFPalyerMini

Per vedere come caricare una libreria  si faccia riferimento all’articolo Arduino – Tutorial, come installare una libreria.
All’interno del modulo si dovranno caricare i relativi file audio, utilizzando una microSD, formattata in formato FAT16 o FAT32 della dimensione massima di  32G. I file da caricare sono in formato WAV.

Scarica file audio

Una volta lanciato il programma, quando si mostrerà la superficie colorata al sensore, il led RGB GB WS2812B riprodurrà il colore riconosciuto mentre l’altoparlante lo comunicherà a voce.
In questa demo il programma è impostato per tre colori primari: rosso, verde e blu.

Download program

Filmato che mostra il funzionamento del programma

Versione con modulo audio JQ6500

E’ disponibile lo stesso progetto che utilizza però un diverso modulo audio, in questo caso il JQ6500.
Nel progetto una volta riconosciuto il colore, viene acceso opportunamente un led RGB e si comunica a voce tramite i file audio registrati su un modulo  JQ6500 il colore trovato.
Vedere articolo Sensore colore TCS3200 e modulo audio JQ6500