MetroMik – Metronomo digitale con PIC16F1825

Mio figlio ha voluto seguire lezioni di batteria. Quando si esercita a casa necessita per forza di cose di un metronomo e fin’ora utilizzavamo un’applicazione per Android, dal cellulare. Ovviamente dall’esigenza di avere un metronomo al volerlo realizzare da me con un microcontrollore PIC il passo è stato breve anche perchè, ricordo, quando ero piccolo io e mi iscrissi ad un corso di chitarra mi vendettero un metronomo elettronico fatto con un NE555 ad un prezzo che ricordo all’epoca fu esorbitante (forse intorno alle 50mila lire), soldi che tirai fuori io dalle mie “mazzette” e che mi valse un rimprovero da parte di mio padre per il prezzo esagerato. Ricordi che ti stimolano, insomma.

Sponsor

Per questa realizzazione ringrazio una ditta produttrice di scatole per progetti che mi ha fornito alcuni contenitori: La Bahar Enclosures.

BAHAR Enclosures

La BAHAR ha in catalogo tantissimi tipi di contenitori (Project Enclosures) realizzati con plastiche tecniche, ferro, alluminio, contenitori industriali e impermeabili. C’è inoltre una vasta scelta anche riguardo ai colori e ho potuto testare con mano l’alta qualità dei prodotti. La sede operativa della Bahar si trova in Germania, per cui la spedizione dalle nostre parti è rapida. Attualmente è possibile acquistare i loro prodotti su Ebay e su Amazon.

Anatomia di MetroMik

Dato che do sempre un nome ai miei marchingegni, ho deciso di chiamarlo MetroMik perchè è un metronomo e perchè l’ho fatto per Michele. Le caratteristiche di MetroMik sono le seguenti:

  • Alimentato con singola batteria LiPo e circuito di carica
  • Selezione dei BPM da 10 a 999
  • Selezione del tempo: 2/4, ¾, 4/4
  • Menù gestito da encoder rotativo
  • Display led 7 segmenti da 3 cifre
  • Led che lampeggia a tempo
  • Segnalazione batteria scarica su display

In pratica ho messo insieme tutte le nozioni che già ho spiegato qui nel blog negli articoli precedenti, e in particolare:

Lo schema

Il circuito è alimentato da una cella lipo tipo 18650 ed utilizza 4 breakout boards: ovvero quelle schedine che a noi makers piacciono tanto perchè hanno già tutto incluso, ci risparmiano un sacco di tempo nella costruzione e costano pure meno dei singoli componenti! In particolare le BoB utilizzate sono:

  • Un modulo per carica batteria LiPo basato sul TP4056. Il modulo in questione generalmente viene venduto munito di connettore mini o micro-USB per poter caricare la cella LiPo da un normale caricabatterie da cellulare. La scheda però, affianco al connettore USB, ha anche due pad ai quali possono essere saldati dei fili: così ho saldato i fili ad un connettore jack-barrel classico che spunta all’esterno. Di questo tipo di modulo ne esistono due versioni. Quella mostrata nella foto che avete visto cliccando su TP4056 è quella dotata di protezione per la batteria, quest’altro tipo non ha la protezione: vedete che il primo tipo ha dei chip aggiuntivi.
  • Un modulo Step-Up (anche conosciuto come DC-DC Boost) basato su SX1308. Questo modulo accetta in ingresso una tensione minima di 3.2V e la innalza fino a 28 volt circa. In giro c’è scritto che accetta minimo 2V in ingresso ma onestamente a me con meno di 3.2V non innalzava un bel niente. Utilizzo questo modulo per generare una tensione di 10V con cui alimentare l’amplificatore, dopodichè dalla tensione di 10V mi genero la 3.3V con un regolatore lineare LM1117-3.3 (o LD33) per alimentare il microcontrollore PIC e il modulino con i display a LED. Attenzione: il trimmer a bordo serve per regolare la tensione in uscita, se vedete che girando, la tensione non varia mai, girate nell’altro verso! La regolazione va chiaramente fatta prima di collegare il modulo al circuito.
  • Un modulo amplificatore basato su LM386. Ne avevo alcuni per progettini che faccio per i bambini e ho pensato di metterci questo dal momento che il suono, amplificato con un semplice transistor, non mi soddisfaceva.
  • Un modulo con 3 display 7-segmenti, pilotati ognuno da un 74HC595. Trovate maggiori informazioni su questo nell’articolo dove parlo come si pilotano questi display.

Nel circuito c’è il partitore resistivo formato da R1 e R2 con le quali scalo la tensione di batteria per leggerla da un ingresso A/D del microcontrollore. Ho aggiunto una piccola resistenza e un condensatore per eliminare eventuali disturbi. Tutta questa parte di circuiteria più il software sono fatti in modo da fermare le operazioni e segnalare batteria scarica quando la tensione scende sotto i 3.2V in modo da non danneggiare la batteria: in questa condizione vengono disattivate tutte le periferiche, portato a minimo il clock di sistema e sul display lampeggia la scritta BAT LO. 

E’ presente un led, LED1, che segue il ritmo impostato. La rotazione dell’encoder permette di aumentare/diminuire i battiti al minuto o di selezionare il tempo: si passa dalla selezione dei BPM a quella del tempo schiacciando l’encoder. Quando si resta fermi sulla selezione del tempo senza compiere operazioni, dopo un po’ il menù ritorna sulla segnalazione dei BPM. La selezione del tempo serve per dare un suono diverso all’ultima battuta. Dal momento che la generazione del suono avviene durante il loop del programma si nota che il timbro del suono varia col variare della velocità impostata.

Elenco componenti

SiglaComponenteLink per l'acquistoNote
BOB1TP4056 Lipo Charger modulehttps://amzn.to/39zyzGUmeglio scegliere il modello con protezione batteria come quello linkato
BOB2SX1308 DC-DC Boosterhttps://amzn.to/3hFdpd6Alimentare con batteria Lipo e regolare il trimmer a 10V prima di montarlo nel circuito
BOB3Modulo amplificatore con LM386https://amzn.to/2PdQ4mN
BOB4Modulo con 3 display a led 7-segmenti gestiti da 3x74HC595 Vedi l'articolo linkato nella descrizione per maggiori informazioni
BATCella Lipo tipo 18650Attenzione: le batterie LiPo possono essere pericolose se non maneggiate con le opportune precauzioni
J1Connettore Barrel Jack da pannello
U1Regolatore di tensione 3.3V = LM1117-3.3 oppure LD33
U2PIC16F1825Dovete saperlo programmare!
ENCODEREncoder rotativo con pulsantehttps://amzn.to/2P11LwS
SPKAltoparlante da 4Ω 0.5W
LED1Led 5mm Ultraluminoso rosso
C1, C3, C5condensatore 100nF multistrato
C2condensatore elettrolitico 47µF 16V
C4, C7condensatore elettrolitico 10µF 16V
C6condensatore ceramico 150pF
R1Resistenza 1.5KΩ ¼W
R2Resistenza 1.2KΩ ¼W
R3, R4Resistenza 100Ω ¼W
Manopola per encoder
Contenitore Bahar Enclosures modello BMC-70012https://amzn.to/3hI6AYo-A1: grigio
-A3: arancione
-A4: verde

Funzionamento

Nulla può spiegare il funzionamento meglio di un video:

Il contenitore Bahar

Il contenitore Bahar utilizzato (link Amazon) è molto particolare ed adatto per questa applicazione: è un contenitore Handheld, ovvero fatto apposta per stare in mano, ma in più ha una staffa chiudibile che permette di appoggiarlo su un tavolo leggermente inclinato: inutile dire che appena l’ho visto nel catalogo è stato amore a prima vista e tutto il progetto del metronomo è ruotato proprio intorno a questo contenitore:

Al paragrafo galleria è possibile vedere altre foto più dettagliate. Il contenitore in questione ha il codice BMC-70012. A questo codice ne segue un altro per identificare il colore dei fianchetti: A1 per grigio, A3 per arancio e A4 per verde fluo. Le dimensioni esterne sono 141x76x36mm. A questo link c’è tutta la serie dei contenitori serie BMC-D (handheld con staffa richiudibile).

Galleria fotografica

In queste foto è mostrato il MetroMik così come appare alla fine

In queste altre foto sono invece illustrate le fasi costruttive: come si vede il contenitore della Bahar, nonostante tutta la roba che ci ho messo dentro, batteria compresa, pare fatto apposta per strumenti di questo tipo:

Licenza

Per questo progetto, nella sua interezza (schema, PCB, sorgente) ho scelto la licenza Creative Commons BY-SA-NC 4.0, ovvero in parole molto povere:

Si è liberi di condividere il progetto e farne modifiche a patto che (detto brevemente):

  • Sia indicato l’autore originale ed indicate chiaramente le eventuali modifiche fatte
  • Il progetto o qualsiasi sua parte non siano utilizzati a scopi commerciali (non ve lo potete vendere, ne nella sua interezza, ne in una sua parte)
  • La condivisione deve essere fatta allo stesso modo di come l’ho fatta io (stessa licenza)

Il testo completo della licenza è disponibile qui. Chiaramente non c’è nessun tipo di garanzia nè responsabilità: il progetto è fornito a titolo puramente didattico. Questo progetto è apparso anche su Hackster.

Downloads

E’ tutto disponibile sul mio Github a questo indirizzo:

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)