Tombola High-Tech: Unione di Tradizione e Tecnologia con TomBingo

Una rivisitazione elettronica della Tombola o del Bingo che unisce tradizione e tecnologia per un divertimento coinvolgente.

Probabilmente non tutti conoscono le curiose origini del gioco della Tombola, nato a Napoli nel XVIII secolo, durante il regno dei Borboni.

Il Re Carlo di Borbone, che voleva stabilire il controllo pubblico sul gioco del Lotto, al fine di bloccare il proliferarsi di bische clandestine, si scontrรฒ con il frate domenicano Gregorio Maria Rocco, molto benvoluto dal popolo, il quale perรฒ auspicava lโ€™abolizione ed il divieto della pratica del gioco del Lotto, che egli riteneva immorale e causa di traviamento dei fedeli dal credo religioso.

Alla fine trovarono un compromesso che stabiliva il divieto di gioco nel solo periodo natalizio.

Da questa situazione nacque il gioco della Tombola, che, in sostituzione al gioco del Lotto, veniva organizzata nelle case durante le festivitร  di Natale. Il Bingo si puรฒ considerare la versione americana della Tombola, ma con le caratteristiche del gioco dโ€™azzardo, non a caso in Italia รจ permesso solo in apposite sale autorizzate dallo Stato.

Conoscendo le tipiche problematiche di una partita domestica a Tombola, in cui la confusione spesso genera dubbi sui numeri chiamati o usciti in precedenza, oppure gli โ€œincidentiโ€ che capitano per la momentanea perdita di un bussolotto con un numero, con tutto ciรฒ che ne consegue, abbiamo pensato ad una soluzione elettronica che ci garantisse prima di tutto la necessaria casualitร  e poi la certezza del numero estratto e dei numeri chiamati in precedenza, per le verifiche in caso di vincita o di distrazione del concorrente.

Lโ€™eccellente risultato che mostriamo in Fig. 1 รจ stato ottenuto utilizzando un microcontrollore come cuore del circuito, due piccoli display e due tabelloni esterni con display di grandi dimensioni, per lโ€™indicazione del nuovo numero estratto e 90 LED per lโ€™indicazione fissa dei numeri giร  estratti.

Fig. 1 Il TomBingo completo.

 

Scheme elettrico della Logica del TOMBINGO

La logica di controllo del nostro TomBingo si basa su un microcontrollore ATmega328P-PU, il cuore del celeberrimo Arduino Uno, configurato con un quarzo esterno da 16 MHz.

Il micro รจ stato opportunamente programmato per generare, alla pressione del pulsante START (P1), un numero casuale da 1 a 90, che sarร  istantaneamente mostrato sui due piccoli display DSP1 e DSP2 e, contemporaneamente, sui due tabelloni esterni, ognuno costituito da due display giganti, mediante una codifica inviata tramite protocollo I2C (connettore CN2).

Inoltre il microcontrollore invierร , sempre tramite I2C (connettore CN1), le istruzioni per pilotare la matrice di 90 LED, in modo da accendere quello corrispondente al numero appena estratto e, contemporaneamente, tutti quelli chiamati in precedenza. Il pilotaggio dei LED รจ possibile grazie alla memorizzazione dei numeri estratti in un array, che viene letto ad ogni ciclo di aggiornamento.

A fine partita il pulsante RESET (P2) permetterร  di azzerare lโ€™elenco dei numeri chiamati, mostrare โ€œ0โ€ sui display ed iniziare una nuova partita. I due piccoli display DSP1 e DSP2 hanno il catodo comune collegato a massa tramite un resistore che limita la corrente di scorrimento nei LED che costituiscono i sette segmenti, mentre ogni singolo anodo รจ pilotato direttamente da un pin digitale del micro.

Schema elettrico del Tabellone

Il tabellone รจ costituito da due circuiti, uno per le prime 5 colonne (sezione sinistra) e lโ€™altro per le restanti 5 colonne (sezione destra), i rispettivi PCB sono uniti tra loro mediante una coppia di connettori maschio-femmina da 13 pin, a formare quindi un unico tabellone di 10 colonne e 9 righe.

Spieghiamo il funzionamento del tabellone, considerandolo come un unico circuito; per facilitarne la lettura abbiamo disegnato lo schema completo omettendo i due connettori, lo riportiamo in Fig. 2.

 

Fig. 2 Schema elettrico unificato del tabellone LED completo.

 

Le istruzioni I2C arrivano contemporaneamente ai due integrati U1 e U2, due MCP23017 che svolgono la funzione di expander I/O a 16 bit; in pratica ogni integrato dispone di 16 uscite che possono essere pilotate per via seriale (I2C) mediante opportune combinazioni di bit, quindi con valori 0 o 1, in cui il valore 1 serve per pilotare lโ€™anodo del LED ed il valore 0 per pilotare il catodo.

Poichรฉ non si poteva certo pensare di gestire 180 uscite separate (quindi un totale di ben 15 integrati), abbiamo fatto ricorso alla tecnica del multiplexing, riuscendo cosรฌ ad utilizzarne solo 2.

Un paio di esempi chiariranno meglio la tecnica.

Prendiamo la prima riga di LED LD1รทLD10, come si vede chiaramente dallo schema, tutti i loro anodi sono uniti assieme e sono pilotati dal pin GPA0 di U1, mentre i 10 catodi sono pilotati da altrettanti pin distribuiti tra i due integrati U1 e U2 e precisamente GPB0รทGPB4 di U1 e GPB0รทGPB4 di U2.

Lโ€™accensione di un LED richiede lo scorrimento di una corrente dal suo anodo verso il suo catodo, quindi il pin che pilota lโ€™anodo deve trovarsi a livello High, mentre quello che pilota il catodo deve trovarsi a livello Low, qualsiasi altra combinazione manterrร  il LED spento.

Per esempio, per accendere il LED LD3 occorre che GPA0/U1 sia a livello High e GPB2/U1 sia a livello Low, mentre per accendere il LED LD9 occorre che GPA0/U1 sia a livello High e GPB3/U2 sia a livello Low; se devono restare accesi solo questi due LED tutti gli altri GPB di U1 e U2 devono trovarsi a livello High.

Se si trattasse di una sola fila di LED la cosa sarebbe molto semplice, come abbiamo appena visto, ma la struttura a matrice, se non pilotata opportunamente, farebbe accendere sempre tutti i LED di una stessa colonna.

Ecco che ci viene in aiuto la tecnica del multiplexing.

Essa consiste nel pilotare, a grande velocitร , ognuno dei LED da accendere, singolarmente, lโ€™uno dopo lโ€™altro, mantenendo spenti gli altri 89.

In pratica se eseguissimo questa operazione al ritmo di 1 secondo (1 Hz) vedremmo accendere ogni singolo LED in base alla sequenza di estrazione, ma non sarebbe possibile vedere contemporaneamente accesi tutti i LED corrispondenti ai numeri estratti.

Invece questa operazione viene eseguita alla massima velocitร  prevista per lโ€™I2C, che รจ di ben 400 kHz, e il resto lo fa lโ€™occhio umano, mediante il cosiddetto fenomeno della persistenza retinica, in virtรน della quale lโ€™occhio che visualizza unโ€™immagine la mantiene memorizzata per un certo periodo di tempo, facendo sรฌ che tutta la sequenza di accensioni appaia come unโ€™accensione unica.

Questa cosa diventa evidente dopo lโ€™accensione di circa 50-60 LED (dipende da chi li osserva), allorchรฉ essi iniziano a mostrare un leggero sfarfallio, segno appunto che ognuno di essi si sta accendendo e spegnendo molto rapidamente.

Lo sfarfallio aumenta con lโ€™aumentare dei numeri estratti, tuttavia questo effetto non crea alcuna difficoltร  nella lettura del tabellone, anche perchรฉ, statisticamente, una tombolata alla quale partecipano almeno 6 giocatori viene completata tipicamente dopo 60-70 estrazioni e maggiore รจ il numero di giocatori e maggiore รจ la probabilitร  che la โ€œTombola!โ€ venga chiamata con meno estrazioni.

Una nota importante riguardo i LED: devono necessariamente essere del tipo ad alta luminositร , in quanto il multiplexer tende a ridurla, e i LED normali potrebbero non emettere luce sufficiente per una buona visibilitร .

Ogni riga di LED presenta un resistore da 22 ohm, che ha la funzione di limitare la corrente di alimentazione dei LED; in condizioni normali ogni singolo LED dovrebbe avere un proprio resistore, ma in questo caso, come abbiamo chiarito prima, ogni LED, in un dato istante, viene acceso da solo, ed รจ solo per il fenomeno della persistenza visiva che li vediamo accesi tutti contemporaneamente, quindi questa soluzione va benissimo.

Schema elettrico dei tabelloni esterni

Ognuno dei due tabelloni esterni รจ costituito da due display di grandi dimensioni ad anodo comune, pilotati entrambi da un unico MCP23017; questa volta non serve il multiplexing, in quanto, considerando come un singolo LED ognuno dei sette segmenti che compongono il display (quindi 14 in tutto), sono sufficienti 14 delle 16 porte dellโ€™integrato.

Trattandosi di display ad anodo comune, tutti gli anodi dei sette segmenti sono stabilmente collegati alla tensione di alimentazione specifica (6 V) mediante i pin 1 e 5 di ogni singolo display; i catodi del primo display (DSP1, quello di sinistra, cifra piรน significativa) sono collegati ai pin GPA0รท6 di U1 e i catodi del secondo display (DSP2) ai pin GPB0รท6 di U1.

La coppia di display deve mostrare di volta in volta solo il numero estratto, quindi il microcontrollore deve soltanto stabilire quali di questi 14 pin devono essere settati su Low, per accendere i relativi segmenti, e quali su High, per tenere spenti quelli che non servono.

Un esempio: se il numero estratto รจ il 18, il numero 1 deve essere visualizzato su DSP1, quindi devono accendersi i segmenti โ€œbโ€ e โ€œcโ€ (vedi Fig. 3), invece il numero 8 deve essere visualizzato su DSP2, del quale devono accendersi tutti i sette segmenti.

Fig. 3 Segmenti di un display.

 

Per ottenere questa combinazione il microcontrollore deve attivare nellโ€™MPC23017 (U1) lo stato Low sui pin GPA1-GPA2 e tutti quelli da GPB0 a GPB6, viceversa i pin GPA0 e GPA3รทGPA6 saranno impostati su High, per mantenere spenti i segmenti di DSP1 inutilizzati.

A questo punto resta da chiarire come faccia il microcontrollore a comunicare, su un unico bus I2C, con i due MCP23017 del tabellone dei LED e con i due MCP23017 dei due tabelloni esterni.

La risposta ci viene data dal datasheet di questo integrato, che spiega come sia possibile usarne diversi collegati alla stessa linea, semplicemente impostando per ognuno di essi un indirizzo diverso.

Per eseguire questa operazione occorre settare correttamente i pin A2-A1-A0 (corrispondenti rispettivamente ai pin fisici 17-16-15 dellโ€™integrato), secondo la configurazione fornita dal datasheet, che riportiamo in Fig. 4.

Fig.4 Indirizzi dellโ€™MCP23017.

 

Come si vede lโ€™indirizzo dellโ€™integrato si basa sul corrispondente valore esadecimale di una combinazione di 7 bit, dei quali i primi 3 meno significativi (partendo da destra) sono A0-A1-A2, quindi quelli modificabili da noi, mentre gli altri 4 sono fissi e impostati su โ€œ0100โ€.

Se consideriamo inizialmente A2-A1-A0 uguali a 0 abbiamo un valore di base โ€œ0100000โ€ che corrisponde a โ€œ0x20โ€ esadecimale, questa cosa รจ facilmente verificabile cercando su Internet la voce โ€œconvertitore binario esadecimaleโ€.

La condizione esattamente opposta รจ data da A2-A1-A0 uguali a 1, con un valore binario โ€œ0100111โ€ che corrisponde invece a โ€œ0x27โ€ esadecimale.

Considerando le varie combinazioni dei 3 bit, sappiamo che possiamo disporre di 2ยณ=8 valori possibili, quindi da โ€œ0x20โ€ a โ€œ0x27โ€.

Vediamo quali abbiamo usato nei nostri circuiti.

Lโ€™integrato U1 della parte sinistra del tabellone ha i tre pin settati a 0 (tutti collegati a massa) quindi il suo indirizzo รจ โ€œ0x20โ€; lโ€™integrato U2 invece ha i tre pin settati a 1 (tutti collegati a +5V) quindi il suo indirizzo รจ โ€œ0x27โ€.

Nel caso dei due blocchi di display giganti, avendo realizzato un unico PCB identico per entrambi, abbiamo previsto dei jumper a saldare che, in fase di montaggio, dovranno essere settati mediante una goccia di stagno, vedremo piรน avanti come; per ora รจ sufficiente sapere che uno dei due avrร  A2-A1-A0 su 0-1-1 quindi โ€œ0x23โ€ e lโ€™altro avrร  A2-A1-A0 su 1-0-1 quindi โ€œ0x25โ€.

Unโ€™altra nota riguardante il bus I2C: comโ€™รจ ormai noto a chiunque lo abbia usato almeno una volta, i suoi due segnali SDA e SCL richiedono lโ€™ausilio di una corrente, specialmente quando le informazioni viaggiano via cavo, come nel nostro caso.

Questa funzione viene svolta da due resistori di pull-up che, nel nostro caso, sono posizionati sul PCB della parte destra del tabellone dei LED, si tratta delle R12 e R13; non ha importanza in quale punto delle linee esse siano collocate, lโ€™importante รจ che siano presenti.

Chiudiamo la parte relativa agli schemi elettrici del TomBingo con la motivazione della presenza del modulo step-up nello schema del tabellone con i display giganti.

I segmenti dei display da noi adottati in realtร  sono costituiti ognuno da tre LED in serie, che richiedono una tensione di circa 6 V per funzionare correttamente.

Il nostro intero circuito รจ invece alimentato a 5 V, quindi abbiamo dovuto aggiungere questo piccolo modulo (8300-YXA347 su futuranet.it) per elevare la tensione di 1 V ed alimentare la coppia di display.

Poichรฉ li alimentiamo esattamente con la tensione richiesta dal costruttore, non servono i classici resistori di limitazione in serie ai LED.

Montaggio del TOMBINGO

A titolo di curiositร  in Fig. 5 mostriamo il prototipo base su breadboard col quale abbiamo testato i collegamenti ed il firmware, prima di passare al disegno degli schemi elettrici definitivi e dei relativi PCB professionali; a dimostrazione che dietro ogni progetto presentato sulla nostra rivista cโ€™รจ sempre molto lavoro di progettazione e di test, per raggiungere il miglior risultato possibile!

Fig. 5 Prototipo base del TomBingo.

 

Per la realizzazione dei PCB necessari per realizzare il TomBingo, abbiamo messo, nella sezione download della pagina di presentazione di questo numero della rivista tutti i necessari file gerber, ricordiamo che รจ attivo il servizio realizzazione PCB a prezzi molto contenuti.

Una volta in possesso dei PCB, le semplici regole per il montaggio dei componenti sono sempre le stesse, si inizia dai componenti piรน bassi: resistori, zoccoli degli integrati, quarzo, condensatori e via via quelli piรน alti.

Di seguito daremo alcune indicazioni specifiche per i vari PCB; le misure di distanziamento che indicheremo sono riferite al successivo montaggio nei contenitori che abbiamo previsto, che potranno essere realizzati mediante una stampante 3D.

Ovviamente se saranno adottate soluzioni diverse bisognerร  regolarsi di conseguenza.

Tutti i componenti della parte Logica vanno montati sul piano superiore del relativo PCB, ad eccezione del connettore CN1, che va montato sul piano inferiore, come da serigrafia, in modo da farlo corrispondere con lโ€™equivalente della parte sinistra del tabellone dei LED.

I due deviatori a pulsante vanno saldati direttamente sul PCB, al contrario dei due piccoli display, per i quali conviene prevedere due strisce di header femmina, in modo che la loro superficie arrivi a 16 mm dalla superficie del PCB, allo stesso livello della parte terminale della filettatura dei pulsanti; in tal modo si troveranno esattamente a filo del pannello, una volta montato tutto nel contenitore.

Sul PCB della parte sinistra del tabellone bisogna montare tutti i componenti sulla faccia inferiore del PCB, come da serigrafia, quindi resistori, zoccolo del circuito integrato e connettore CN1.

Il connettore CN2 puรฒ essere montato indifferentemente sulla faccia superiore o inferiore, a patto di fare la stessa cosa con quello del PCB della parte destra.

Invece tutti i 45 LED andranno montati sulla faccia superiore; poichรฉ i LED devono avere tutti la stessa altezza, per fuoriuscire dal pannello in modo omogeneo, noi abbiamo usato questo sistema: abbiamo montato nei quattro fori di fissaggio del PCB altrettanti distanziali da 15-16 mm, rivolti verso lโ€™alto, quindi sulla faccia superiore del PCB, quindi abbiamo inserito i LED nei rispettivi fori (ATTENZIONE alla polaritร !) ed abbiamo capovolto il PCB, in tal modo i LED sono scesi fino a toccare la superficie del piano di lavoro tutti alla stessa altezza; quindi abbiamo saldato un solo reoforo per ogni LED, cosรฌ da poter verificare il corretto posizionamento ed apportare i correttivi ove necessario; a quel punto abbiamo saldato tutti i reofori ancora liberi, ottenendo una perfetta omogeneitร  di altezza.

Per il PCB della parte destra occorre seguire le stesse indicazioni della parte sinistra, quindi resistori e zoccolo dellโ€™integrato sulla faccia superiore del PCB, il connettore CN3 sulla stessa faccia del CN2 della parte sinistra, i 45 LED sulla faccia superiore, come visto in precedenza.

Il nostro progetto, come spiegato in precedenza, prevede due tabelloni esterni, ognuno costituito da due display giganti ma, volendo adottarne solo uno, la cosa รจ fattibilissima.

La prima operazione da fare รจ quella di impostare lโ€™indirizzo dellโ€™MCP23017 (vedi spiegazione teorica nella sezione degli schemi elettrici).

Come abbiamo visto, uno dei due tabelloni va settato su 0x23 e lโ€™altro su 0x25.

Queste due condizioni si ottengono rispettivamente con: A0=1, A1=1, A2=0 e A0=1, A1=0, A2=1.

Poichรฉ A0 รจ sempre su 1, abbiamo collegato il pin 15 direttamente al positivo dellโ€™alimentazione, mentre per A1 e A2 abbiamo previsto due jumper a saldare con tre pad ciascuno.

Il pad centrale di sinistra รจ collegato al pin 17 (A2), mentre quello di destra al pin 16 (A1).

I pad laterali posti alla sinistra del centrale sono collegati a massa, mentre i due laterali posti a destra sono collegati al positivo di alimentazione.

Quindi, per attribuire il valore 1 ad un pin occorre depositare una goccia di stagno tra il pad centrale e quello di destra, mentre per attribuirgli il valore 0 occorre depositare una goccia di stagno tra il pad centrale e quello di sinistra.

In Fig. 6 abbiamo riportato il particolare dei due PCB settati correttamente: a sinistra quello con A2=0 e A1=1 (indirizzo 0x23) e a destra quello con A2=1 e A1=0 (indirizzo 0x25).

 

Fig. 6 Set degli indirizzi dei tabelloni esterni.

 

Bisogna fare attenzione a due cose:

La prima, la piรน importante, รจ evitare assolutamente di mettere in corto tutti e tre i pad del singolo jumper, perchรฉ significherebbe chiaramente cortocircuitare lโ€™alimentazione!

La seconda รจ rispettare queste due combinazioni, altrimenti si attribuirebbero indirizzi che creerebbero problemi.

Infatti, se ipoteticamente si impostasse A2=1 e A1=1, si replicherebbe lโ€™indirizzo dellโ€™integrato presente sulla parte destra del tabellone dei LED (0x27), creando un conflitto tra i due integrati; settando invece A2=0 e A1=0 si otterrebbe un indirizzo 0x21 non previsto nel firmware e i due display non funzionerebbero correttamente.

Tutti i componenti vanno montati sulla faccia superiore del PCB, ad eccezione del modulo step-up, che va montato sulla faccia inferiore.

Prima del montaggio, perรฒ, il modulo dovrร  essere correttamente tarato, applicando una tensione di 5V agli ingressi Vin+ e Vin- (ATTENZIONE alla polaritร !) e agendo sul trimmer di precisione fino ad ottenere sui pin Vout+ e Vout- una tensione di 6 V.

Un buon sistema per montare il modulo sul PCB รจ quello di inserire nei suoi quattro forellini altrettanti pin strip e saldarli sul lato componenti, e poi innestare gli strip nei fori del PCB del display, saldandoli sul lato componenti di questโ€™ultimo, ma facendo molta ATTENZIONE a far combaciare le serigrafie Vin e Vout del modulo con quelle del PCB, altrimenti il modulo si danneggerร  irrimediabilmente! (Fig. 7)

Per quanto riguarda i display, bisognerร  usare degli header a basso profilo come zoccoli, per far sรฌ che la loro superficie venga distanziata dalla faccia superiore del PCB di circa 15 mm, cosรฌ verranno a trovarsi a filo della mascherina dello specifico contenitore previsto (Fig. 8).

 

Fig.7 Il modulo montato sulla faccia inferiore del PCB.

Fig. 8
PCB dei display giganti con zoccolo, IDC ed header.

Il Firmware

Alcune indicazioni sul firmware che abbiamo scritto per questo progetto. Aprendo il file Tombingo.ino dallโ€™IDE Arduino troverete 5 schede:

  1. Tombingo: รจ la sezione principale, nella quale sono incluse le librerie <Wire.h> e <MCP23017.h>; seguono lโ€™attribuzione degli indirizzi per i vari MCP23017, alcune variabili, e la dichiarazione dei pin usati per pilotare i due display interni della Logica. Nel Setup vengono inizializzati i collegamenti I2C, per i quali il comando โ€œWire.setClock(400000L)โ€ setta la massima velocitร  possibile (400 kHz), lo stato iniziale delle porte degli MCP23017 ed i pin del microcontrollore; inoltre viene attivata la sequenza random per le estrazioni dei numeri, collegandola al pin analogico A0; infine vengono eseguite le istruzioni per mostrare allโ€™accensione, sui display interni e/o esterni, il numero โ€œ0โ€ o โ€œ00โ€ (leggi piรน avanti); queste opzioni si possono disabilitare commentando le relative righe, ma consigliamo di lasciarne attiva una per avere sempre conferma della corretta accensione dellโ€™apparecchio. Nel Loop ci sono la routine di estrazione casuale del numero, lโ€™impostazione di un blocco del pulsante START per 3 secondi dopo ogni estrazione, per evitare sovrapposizioni dei numeri, e una routine che mostra sui display tre linee orizzontali e accende tutti i LED, quando sono stati chiamati tutti i 90 numeri del tabellone.
  2. Display: contiene tutte le combinazioni binarie delle porte del microcontrollore che pilotano i due piccoli display interni, in modo da accendere i segmenti corretti per ogni numero chiamato. Nelle prime righe di questa scheda รจ presente la doppia combinazione per lo โ€œ0โ€, รจ possibile cioรจ decidere se allโ€™accensione e ad ogni nuovo inizio partita lo โ€œ0โ€ debba essere mostrato su entrambi i display o solo sulla cifra meno significativa (quella a destra); di default รจ settato il doppio โ€œ0โ€, per ottenere lโ€™altra opzione bisogna commentare le due righe attive e decommentare le due precedenti.
  3. Display_EXT: contiene tutte le combinazioni binarie delle porte dellโ€™MCP23017 che gestisce la coppia di display di ogni tabellone esterno, in modo da accendere i segmenti corretti per ogni numero chiamato. Per ogni numero esistono due righe per โ€œmcp3โ€ e due righe per โ€œmcp4โ€, che corrispondono rispettivamente agli indirizzi 0x23 e 0x25, quindi รจ giร  tutto predisposto per pilotare uno o due tabelloni esterni. Anche in questa scheda esiste la possibilitร  di scegliere tra le opzioni di accensione โ€œ0โ€ o โ€œ00โ€, come spiegato in precedenza per i display piccoli, solo che in questo caso le righe da commentare o decommentare sono quattro.
  4. Estrazione: ci sono le operazioni necessarie per scartare i numeri giร  estratti e memorizzare il primo nuovo numero; infatti la chiamata random dei numeri non garantisce lโ€™univocitร , per cui ogni numero potrebbe essere estratto piรน volte durante il gioco, ecco perchรฉ ogni nuovo numero viene memorizzato in un array e dopo ogni estrazione il numero viene confrontato con quelli giร  presenti nellโ€™array stesso: se cโ€™รจ viene scartato e il programma chiama automaticamente un altro numero, se invece non cโ€™รจ viene memorizzato a sua volta.
  5. Matrice: contiene tutte le combinazioni binarie delle porte dei due MCP23017 che gestiscono i 90 LED del pannello, in modo da accendere e mantenere accesi quelli corrispondenti ai numeri estratti.

Collegamenti dell’elettronica

I vari connettori IDC a 8 pin presenti nei PCB di Logica, parte sinistra del tabellone dei LED e tabelloni esterni servono per trasportare lโ€™alimentazione principale ed i segnali I2C dalla Logica agli altri circuiti. Questi i collegamenti da effettuare:
1. CN1 Logica con CN1 parte sinistra del tabellone dei LED;
2. CN2 Logica con CN1 dei due tabelloni esterni con i display giganti.

Bisogna quindi realizzare due cavetti piattina, uno lungo 3,5 cm (o quanto serve nel caso si usi un contenitore diverso) con due spinotti IDC femmina alle due estremitร , e lโ€™altro lungo in tutto 45 cm con due spinotti IDC femmina alle due estremitร  piรน uno allโ€™interno, distanziato di circa 19 cm da uno qualsiasi dei due capi esterni.

Gli spinotti devono essere orientati tutti allo stesso modo, altrimenti i segnali saranno invertiti, con conseguenze imprevedibili.

In Fig. 9 si possono vedere i due cavetti realizzati per il nostro prototipo.

Fig. 9 Cavetti di collegamento.

 

Osservando attentamente la foto si vede chiaramente che tutte le linguette di riferimento degli spinotti sono orientate verso destra. Per quanto riguarda i collegamenti dei due cavetti tra i tre circuiti si puรฒ far riferimento alla Fig. 10.

Fig. 10 Schema di cablaggio

 

Una volta completato il montaggio di tutti i PCB, lโ€™ultima operazione da fare รจ di inserire i circuiti integrati ed i vari display nei rispettivi zoccoli o header. Il solo microcontrollore dovrร  essere preventivamente programmato, mediante tecnica ISP, utilizzando lo sketch presente nella solita sezione download, oppure potrร  essere acquistato giร  programmato sul sito futuranet.it.

Collaudo

Il nostro TomBingo assorbe una corrente massima di circa 420 mA se si usano i display esterni, altrimenti essa scende a circa 50 mA.

Nel primo caso รจ necessario un alimentatore da parete con uscita stabilizzata di 5 V 1รท2 A, nel secondo caso potrebbe essere alimentato con un pacco di 4 batterie tipo AA ricaricabili in serie (1,2 V x 4 = 4,8 V) oppure 3 batterie tipo AA non ricaricabili ad alta energia in serie (1,5 V x 3 = 4,5 V).

Anche se la tensione finale รจ inferiore ai 5 V richiesti, il circuito funzionerร  ugualmente, senza particolari problemi.

Peraltro, diminuirร  anche la corrente assorbita (35 mA circa nel caso di 4,5 V), aumentando lโ€™autonomia.

Lโ€™alimentatore esterno puรฒ essere il modello 8822-AL5V2A (reperibile su futuranet.it) che ha ben 2 A di corrente erogabile, ad un costo molto contenuto.

Il test del nostro TomBingo รจ piuttosto semplice:

Una volta effettuati i collegamenti, come da schema, fornire lโ€™alimentazione alla presa PLUG DC e istantaneamente le tre coppie di display mostreranno il numero โ€œ0โ€ o โ€œ00โ€ (in base a come sarร  stato impostato il firmware), che, essendo un numero non previsto nei due giochi, svolge semplicemente la funzione di โ€œspiaโ€ di accensione e di test positivo.

Qualsiasi altra situazione, display spenti o che mostrano caratteri casuali o altri valori, sarร  indicativa della presenza di un problema, quindi occorrerร  spegnere immediatamente e verificare tutto.

Come ulteriore prova si dovrร  premere il pulsante START e uscirร  il primo numero casuale, che sarร  mostrato su tutti i display, mentre sul tabellone si accenderร  il LED corrispondente.

Premendo infine il pulsante RESET il LED acceso si spegnerร  ed i display mostreranno di nuovo lo 0.

Per testare il funzionamento dei 90 LED, occorre premere e mantenere premuto il pulsante START: ogni 3 secondi sarร  estratto un nuovo numero e si accenderร  il relativo LED.

Se non dovesse accendersi, bisogna prendere nota del numero per poi controllare alla fine quelli che non vanno.

Comunque le uniche possibilitร  di errore sono una mancata saldatura di uno dei reofori o lโ€™inversione del LED stesso.

Contenitori

Abbiamo disegnato, espressamente per questo progetto, due box:

Uno per la Logica ed il tabellone dei LED, ed un altro per il tabellone esterno con i display giganti, con due supporti che permetteranno lโ€™aggancio fisico al box principale e la sua rotazione.

Il box principale presenta:

  • Due fori per lo spinotto dellโ€™alimentatore e per il connettore IDC.
  • Una mascherina superiore giร  dotata dei 90 fori per i LED da 3 mm, per il doppio display piccolo e per i due deviatori a pulsante.
  • Lateralmente, sia a destra che a sinistra, due piccoli fori per il fissaggio dei supporti dei box dei tabelloni esterni mediante 4 viti M3 con relativi dadi.

Il box di ogni tabellone esterno (bisognerร  realizzarne due) presenta:

  • Un foro laterale per il connettore IDC.
  • Due piccoli fori per il supporto.
  • Una mascherina con un riquadro dal quale dovranno sporgere i due display giganti.

Per la realizzazione di questi box mediante stampa 3D, abbiamo caricato tutti i necessari file STL nella sezione download.

Chi non fosse dotato di questo tipo di periferica potrร  richiedere la stampa al service di futuranet.it.

Poichรฉ la mascherina del box principale non ha una serigrafia, occorrerร  crearla, ad esempio stampando i 90 numeri e i due testi START/RESET su un foglio adesivo, applicandolo poi alla mascherina.

Una eccellente alternativa, quella che si puรฒ osservare nelle nostre foto, รจ offerta sempre dallo stesso service e consiste nella preparazione di una mascherina in plexiglass con tanto di serigrafia, mediante incisione al laser, studiata espressamente per il box principale.

In Fig. 11 abbiamo riportato tutti i box ed i supporti da noi stampati, mentre in Fig. 12 si puรฒ vedere la mascherina incisa al laser.

Fig. 11 Box e supporti stampati in 3D.

 

 

Fig. 12 Mascherina tabellone dei LED incisa al laser.

 

A questo punto resta solo da assemblare i vari circuiti nei rispettivi box. Vediamo qualche dettaglio.

Il PCB della Logica andrร  fissato esclusivamente alla mascherina mediante i due dadi in dotazione ai deviatori a pulsante (Fig. 13) e questo garantirร  la perfetta corrispondenza del connettore di alimentazione e di quello IDC con i fori presenti sul box principale.

Fig. 13 Fissaggio PCB Logica alla mascherina.

 

I due PCB del tabellone dei LED non necessitano di alcun fissaggio, ma solo di 8 distanziali da 25 mm da inserire nei relativi fori: garantiranno al PCB lโ€™altezza utile per far fuoriuscire i 90 LED dai fori della mascherina, e questo sarร  piรน che sufficiente a mantenere tutto ben bloccato nel box (Fig. 14).

Fig. 14 Il tabellone dei LED con i distanziali.

 

Il PCB dei display giganti invece dovrร  essere fissato sul fondo del suo box, mediante 4 distanziali da 15 mm in corrispondenza dei quali occorrerร  praticare 4 fori da 3 mm di diametro, per far passare le viti filettate (Fig. 15); la lunghezza dei distanziali รจ obbligata dalla posizione dellโ€™apertura laterale per il connettore ICD, altrimenti non combacerร .

Fig. 15 Il tabellone esterno nel box.

 

Come sempre, se non saranno adottati i nostri file stl, ovviamente poi ci si regolerร  di conseguenza. A fine assemblaggio i due tabelloni esterni potranno essere facilmente ruotati in qualsiasi direzione facilitando cosรฌ il compito di chi effettuerร  lโ€™estrazione, perchรฉ il numero sarร  ben visibile a chiunque. Non ci resta che augurarvi buon divertimento col nostro TomBingo!

 

Download

Lascia un commento

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

Menu