LED Racing guida completa hardware e montaggio della pista per la gara

Le prove di abilità sono sempre una sfida entusiasmante perché consentono di confrontare i propri riflessi con quelli di un computer o di altri giocatori.

In questo contesto si colloca il gioco che vi proponiamo in questo articolo, che abbiamo battezzato LED Racing perché si tratta di far correre, su un circuito virtuale a otto formato da anelli di diodi luminosi RGB NeoPixel, un punto luminoso che rappresenta la propria “macchina da corsa” cercando di arrivare per primi, superando gli altri tre concorrenti (perché il gioco prevede un massimo di quattro giocatori) in velocità.

Ciascun giocatore dispone di un pulsante, premendo il quale fa avanzare il proprio punto luminoso sulla pista di un passo per ogni pressione e rilascio. Invero, ogni pressione del pulsante determina la “spinta” della pallina virtuale formata dai LED RGB, nel senso che il punto luminoso corrispondente avanza inizialmente veloce e poi, se il pulsante non viene premuto, rallenta e si arresta.

Questo, in sintesi, lo svolgimento o se preferite il funzionamento, del gioco elettronico che abbiamo realizzato per voi. Se la cosa vi ha stuzzicato a sufficienza, seguiteci quindi nei prossimi paragrafi perché vi descriveremo l’hardware su cui è basato, iniziando dallo schema elettrico che trovate in queste pagine, anzi, dagli schemi delle schede che lo compongono.

Schema elettrico

 

Il nostro LED Racing è composto da una “pista” virtuale costituita da LED RGB sagomata a 8, oltre che da una scheda di controllo (che chiameremo anche “scheda base” perché si trova alla base della pista) interfacciata a quattro pulsanti, che a gioco avviato legge la condizione di ciascuno e comanda l’avanzamento (ossia l’accensione) del diodo luminoso corrispondente, di una posizione in senso orario per ciascuna pressione, sul doppio anello che forma la pista di gioco.

Ciascun pulsante è del tipo normalmente aperto ed è montato su una breakout board che ne facilita la connessione con semplici cavetti jumper o spezzoni di filo in guaina, nonché il fissaggio meccanico. Analizzando lo schema elettrico della scheda (lo trovate in cima a questa pagina) vediamo come l’intera gestione sia stata affidata per praticità a un modulo Arduino Nano nel quale verrà caricato l’apposito sketch; la scheda (siglata U1) provvede alla lettura dei quattro pulsanti attraverso gli I/O digitali D2, D3, D4 e D5, corrispondenti ai tasti P1, P2, P3 e P4. Ciascuna linea è impostata, all’inizializzazione, come ingresso digitale provvisto di pull-up.

Ciascuno dei LED sulla scheda di controllo rappresenta uno dei concorrenti e si illumina quando il punto luminoso del giocatore associato al pulsante corrispondente è avanti rispetto agli altri; questi LED spia dello stato della corsa vengono pilotati da altrettante linee della Arduino Nano, inizializzate come output digitali: si tratta di A2, A1, A0 e D13, assegnate al pilotaggio dei diodi, rispettivamente, LD1, LD2, LD3 e LD4, ciascuno dei quali è provvisto di una propria resistenza di limitazione della corrente diretta. Il circuito di gara virtuale è formato da quattro archi (segmenti) per ciascun cerchio, quindi da 8 segmenti; ciascuno è formato da una serie di LED NeoPixel e pertanto dispone di tre contatti con i quali si connette alla scheda di controllo attraverso il connettore il cui piedino 2 (OUT) fa capo alla linea D6 (output digitale…) che provvederà a inviare le stringhe di comando da parte della Arduino Nano, secondo il protocollo seriale richiesto dallo standard NeoPixel.

Notate che il connettore che realizza il collegamento con i segmenti a LED RGB non è un vero connettore, bensì una serie di contatti ricavati su una sporgenza sagomata in modo da potervi appoggiare un arco per parte; ciò appare più chiaro guardando le foto del prototipo ed il piano di montaggio proposti in queste pagine.

A lato della sporgenza si trovano delle piazzole multiplate che veicolano i 5V, la massa e l’OUT dei dati per i segmenti NeoPixel. La gestione del protocollo di comunicazione seriale con i NeoPixel è implementata nello sketch che viene eseguito nella scheda Arduino nano, grazie all’inclusione della libreria dedicata di Adafruit. Un’ultima linea di I/O della U1, inizializzata come uscita, genera un segnale audio che pilota (attraverso la resistenza R6) la base del transistor NPN T1, il quale amplifica in corrente e in tensione (in potenza, quindi…) l’onda rettangolare prodotta da Arduino Nano, così da alimentare ad impulsi il cicalino piezo senza elettronica siglato BUZ1, la cui funzione è riprodurre le note acustiche utilizzate per segnalare ai concorrenti lo stato del gioco (per esempio l’inizio della manche o la vittoria di chi è arrivato per primo al traguardo).

La resistenza posta in parallelo al cicalino serve perché le pastiglie piezo hanno natura capacitiva e, se alimentate a tensione unidirezionale (come nel nostro caso, dato che il transistor commuta semplicemente la linea di alimentazione a 5V) una volta caricate non vibrano più, neppure se pilotate a impulsi, perché si caricano; invece R7, opportunamente dimensionata in base alla capacità parassita del cicalino, consente la scarica di quest’ultima nelle pause fra un impulso e l’altro della tensione amplificata dal transistor T1. Notate che il cicalino viene pilotato da note acustiche e motivi musicali generati da Arduino Nano, quindi produce suoni di varie tonalità e non la nota acustica del classico cicalino con elettronica, in quanto è di fatto una pastiglia piezoelettrica e si comporta come un piccolo altoparlante.

Possiamo concludere l’analisi dello schema elettrico con la sezione di alimentazione, che fa capo al connettore jack di ingresso siglato +/- PWR e la cui linea positiva giunge, previa l’interposizione del diodo al silicio D1 (che implementa un’efficace protezione dall’inversione di polarità), al piedino Vin della Arduino Nano; due condensatori, ossia l’elettrolitico C2 e il non polarizzato C1, filtrano la linea da disturbi ed eventuale ripple residuo dell’alimentatore utilizzato per far funzionare il circuito.

L’uscita a 5V per gli archi NeoPixel e la sezione del cicalino piezo sono alimentate con i 5Vcc forniti dal regolatore interno della Nano attraverso il pin 5V; la relativa tensione è ben filtrata dai condensatori C3 (condensatore ceramico) e C4 (un elettrolitico) utili a sopprimere o quantomeno attenuare le fluttuazioni della tensione dovute all’assorbimento determinato dall’accensione e allo spegnimento in rapida sequenza dei LED componenti gli anelli della pista NeoPixel. Per l’alimentazione, il circuito richiede una corrente di circa 1A e una tensione continua dell’ordine dei 9V, erogabile da un alimentatore di tipo wall-cube.

La scheda di controllo (base) con Arduino Nano.

 

Schema elettrico scheda led

Approfondiamo adesso la parte di schema elettrico che riguarda proprio gli anelli NeoPixel, ciascuno dei quali è costituito da 60 LED RGB di tipo WS2812 con controller NeoPixel incorporato; i diodi sono suddivisi in quattro gruppi di 15, perché l’anello viene venduto in kit ed è componibile saldando, per unirli meccanicamente e connetterli elettricamente, quattro archi di cerchio.

I 60 LED RGB di bordo possono essere gestiti individualmente e ciascuno può produrre luce con 256 tonalità di ognuno dei tre colori fondamentali, determinando un totale di 16.777.216 colori. Il canale dati per la comunicazione è seriale di tipo One-Wire, quindi si basa su una sola linea bidirezionale che passa da un diodo all’altro, giacché i LED NeoPixel si comandano in cascata.

Ogni LED RGB può essere indirizzato e gestito singolarmente tramite un apposito comando inserito nella stringa seriale, vale a dire che il microcontrollore (nello specifico Arduino Nano) genera un’unica stringa, ripetuta un certo numero di volte al secondo, contenente l’impostazione e il relativo indirizzo del LED/controller che deve effettuarla; la comunicazione avviene a un massimo di 800 kbps.

Il protocollo di comando del sistema Neopixel prevede l’invio di gruppi di tre byte in una stringa di 24 bit, ognuna delle quali contiene lo stato di illuminazione di ciascun colore base (prima gli otto bit del verde, poi quelli del rosso e infine quelli del blu). Maggiore è il numero di LED in cascata, più bassa sarà la frequenza di refresh impostabile e viceversa, fermo restando che nel nostro caso, avendo a che fare con dei punti luminosi fatti scorrere manualmente e con un numero limitato di LED RGB, la cosa è irrilevante.

I due anelli di LED NeoPixel utilizzati per implementare il circuito ad 8 sono uniti attraverso un piccolo circuito stampato descritto nell’apposito schema elettrico riportato in queste pagine (“Schema elettrico LED e pulsanti”) il quale ospita un solo LED RGB che si trova in comune tra i due anelli da 60 LED; questo PCB (che ha la forma ad “I”) dispone di quattro terne di piazzole, due per estremità, che ponticellano la linea a 5V e quella dei dati, che da un lato si chiama DIN (Data IN) e da quello opposto JP.

Notate che non si tratta di un semplice circuito passante perché la linea dati deve entrare nel LED NeoPixel che si trova a bordo e uscire da esso per passare poi all’ingresso dati del primo arco del secondo anello; per quanto riguarda l’estremità superiore, ossia quella che connette il secondo cerchio, l’ingresso dati corrisponde all’uscita dell’ultimo LED RGB del primo anello. L’inserzione del LED di bordo serve a comprendere questo componente nel circuito luminoso e a costituire il punto di passaggio dell’Otto, dall’anello inferiore (quello connesso alla scheda base) a quello superiore.

Realizzazione pratica

Bene, con questo riteniamo conclusa l’analisi circuitale e possiamo concentrarci sulla costruzione del nostro gioco elettronico, per il quale abbiamo previsto due circuiti stampati: il primo ospita l’elettronica di controllo e il secondo realizza l’interconnessione tra i due anelli di LED RGB, semplicemente riportando i contatti +5V, GND e OUT sui suoi due lati e ospitando un LED che fa da congiunzione.

La scheda di congiunzione con a bordo il LED RGB.

 

Adesso dovete provvedere all’assemblaggio dell’insieme: per prima cosa andranno composti i due anelli, pertanto dovete limare il bordo delle estremità dei PCB degli archi in prossimità dei punti di saldatura, cercando di eliminare la parte di circuito in eccesso, arrivando così a filo delle tre piazzole di congiunzione (3 per ciascuna estremità); tale operazione agevolerà la saldatura perché non lascerà spazio apprezzabile tra le piazzole delle estremità di due archi contigui. Unite quindi due archi bloccandoli con delle fascette da fissare alle apposite asole della scheda di controllo, come mostrato nella Fig. 1, quindi stagnandoli nelle piazzole e connettendoli alle rispettive piazzole della scheda base mediante corti spezzoni di filo da introdurre nei fori della scheda base.

Fig. 1 Assemblaggio dei primi due archi di LED sulla scheda base.

 

Fatto ciò si può passare alla preparazione dell’altra metà che compone l’anello NeoPixel: appoggiate due archi di LED su una superficie perfettamente piana tenendo i diodi verso il piano, in modo da avere a portata le piazzole; fra i due archi inserite il piccolo PCB sagomato ad “I” contenente il singolo LED, facendo in modo che al punto “IN” del particolare ad “I” corrisponda il punto “JP” dell’arco e viceversa.

Posizionatelo in modo che la serigrafia sia leggibile dal punto di vista in cui vi trovate; solo dopo potrà essere girato per completare le saldature. Notate che i due archi vanno appoggiati ad un’estremità del piccolo PCB contenente il singolo LED, perché dall’altra dovrete ripetere l’operazione con altri due archi.

Notate altresì che siccome gli archi dell’anello hanno uno spessore differente da quello del circuito di congiunzione contenente il singolo LED, è consigliabile mettere sotto quest’ultimo un pezzo di cartoncino che faccia da spessore. Fatto ciò si possono unire con della lega saldante e spezzoni di filo in rame le piazzole attigue, ossia 5V con 5V, GND con GND e DIN con DI.

Questo va fatto applicando specularmente altri due archi di LED NeoPixel, fino ad ottenere il risultato proposto nella Fig. 2, la quale mostra l’interconnessione tra la piccola scheda ad “I” e i quattro archi: due facenti parte del cerchio in basso e altrettanti per il cerchio in alto. Per chiarezza, nella suddetta Fig. 2 proponiamo la vista da entrambe le facce degli archi, evidenziando sia le saldature, sia l’orientamento della piccola scheda a LED di congiunzione.

Fig. 2 Assemblaggio degli archi di LED attraverso la scheda di congiunzione.

 

Terminata la saldatura dei punti di giunzione, si potranno posizionare i due restanti archi dell’anello periferico (quello non collegato alla scheda di controllo) e unire i due segmenti già saldati alla scheda di controllo con i due rimasti liberi del circuito.

La tecnica è sempre la stessa, ossia si accostano due archi per volta e tenendoli ben fermi si eseguono le saldature di interconnessione aiutandosi con spezzoni di filo in rame per dare continuità. L’insieme assemblato dovrà risultare come mostrato nella Fig. 3, nella quale vedete già inserita la board Arduino Nano nella scheda di controllo.

Fig. 3 Il circuito luminoso a 8 assemblato e collegato alla scheda base.

 

Al termine è opportuno verificare con un tester, commutato sulle misure ohmmetriche a bassa resistenza (test di continuità) che le linee saldate adiacenti non siano in cortocircuito tra loro, nel qual caso bisognerà armarsi di pazienza e saldatore e rimuovere la lega saldante in eccesso.

Una volta verificato il tutto si potrà tenere da parte quanto montato per procedere alla connessione dei pulsanti, che sono quattro tutti uguali tra loro e vanno collegati saldando nelle rispettive piazzole due spezzoni di filo in rame in guaina, ovvero piattina, come vedesi in Fig. 4. Un’estremità di ciascun cavetto dovrà essere saldata sul pulsante, mentre l’altro capo del cavo dovrà essere inserito nel morsetto corrispondente presente sulla scheda base.

Fig. 4 Breakout board contenente il pulsante.

 

Ad ogni morsetto dovrà essere inserito il cavo relativo ad un pulsante giocatore; naturalmente quelli proposti sono i pulsanti che suggeriamo, tuttavia nulla vieta di adottare altri pulsanti “game” un po’ più adatti ai giochi elettronici, come ad esempio quelli Arcade reperibili presso la Futura Elettronica, online su www.futurashop.it, che sono molto robusti e disponibili in vari colori, quindi facilmente abbinabili ai colori dei concorrenti associati ai LED sulla scheda di controllo (blu, rosso, verde, giallo); un esempio è il Pulsante Arcade Verde, codice prodotto COM09341 (https://futuranet.it/prodotto/pulsante-arcade-verde/). Il tutto va collocato su una base in materiale isolante (per esempio un pannello di legno compensato) o meglio ancora in un contenitore, magari a sezione trapezoidale in modo da tenere il circuito luminoso inclinato; scegliete un po’ voi la soluzione che vi è più congeniale.

Svolgimento del gioco

Bene, una volta completato il montaggio e l’assemblaggio del LED Racing è giunto il momento di spiegare come si gioca; una volta applicata l’alimentazione alla scheda di controllo attraverso il jack DC (siglato PWR) nel quale introdurrete lo spinotto di un alimentatore da rete capace di erogare una tensione compresa tra 9V e 12V ed una corrente di almeno 1 A, ovvero collegare un alimentatore con uscita stabilizzata a 5V tramite cavo mini-USB direttamente alla presa mini-USB della scheda Arduino: in questo caso la stessa, tramite la propria linea 5V, alimenterà il resto del circuito sulla scheda base e gli anelli a LED NeoPixel. Durante lo svolgimento del gioco i pulsanti hanno una corrispondenza specifica con il colore del LED che corrisponde al giocatore, ossia:

• P1 = LED verde;
• P2 = LED giallo;
• P3 = LED rosso;
• P4 = LED blu.

Per iniziare una partita, è sufficiente premere uno qualsiasi dei quattro pulsanti, condizione che sta a indicare ad Arduino Nano che i concorrenti sono pronti a partire; il LED corrispondente a bordo della scheda si illuminerà e sulla pista si accenderà un punto a luce blu in corrispondenza del primo LED NeoPixel. Il cicalino emetterà alcuni suoni ad indicare la fase di avvio e alcuni LED si illumineranno in sequenza facendo scorrere sugli anelli dei punti dei colori corrispondenti ai concorrenti.

Quando i LED NeoPixel si spegneranno, la gara potrà avere inizio. Premendo il proprio pulsante, ogni giocatore spingerà il punto luminoso in avanti sulla pista, con questa logica: ogni pressione determina l’avanzamento, come se una pallina ricevesse una spinta, inizialmente rapido e poi a rallentare fino a fermarsi in assenza di ulteriori pigiate. Ogni pressione del pulsante corrispondente rilancerà il punto in avanti. Più velocemente (ossia con maggiore frequenza) si premerà ciascun tasto e più veloce correrà il rispettivo punto luminoso, che accelererà. Durante la fase di gioco, i LED sulla scheda base indicheranno il giocatore che si trova in testa alla gara.

Al completamento di ogni giro, il punto luminoso del concorrente che l’avrà fatto accoderà un ulteriore punto, quindi al secondo giro del giocatore rosso ci sarà sul circuito una fila di due punti di colore rosso, al terzo di tre punti, fino ad arrivare al settimo, in corrispondenza del quale sulla pista luminosa verrà visualizzata una striscia scorrevole di sette LED.

Al completamento dei sette giri previsti, sugli anelli verrà mostrato, attraverso l’accensione del relativo colore, il concorrente vincente.

Lascia un commento

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

Menu