Controllo radio per tabellone segnapunti

Salve a tutti, in quest’articolo voglio esporre il progetto che io e un mio compagno abbiamo portato all’esame di maturità.

Si tratta della costruzione di un sistema per il controllo wireless del tabellone segnapunti utilizzato nella nostra ex palestra scolastica.

(clicca sull'immagine per vederla più grande)

Il tabellone segnapunti in questione, costruito da altri allievi nel lontano 1997, è costituito principalmente da 12 shift register SI-SO/PO 74HC595 disposti a cascata. Le loro uscite pilotano, attraverso degli array di transistor Darlington ULN2803, i display a sette segmenti corrispondenti.

I 595 sono divisi in tre sezioni, ognuna delle quali gestisce quattro display: la sezione dedicata al punteggio dei locali, la sezione dedicata al punteggio degli ospiti e la sezione dedicata al conteggio del tempo.

Tale sistema è controllato da 5 linee di comando: dati, clock, strobe locali, strobe ospiti, strobe tempo (più la massa).

La linea dati e quella di clock sono comuni a ciascuna delle tre sezioni, mentre gli strobe sono specifici per ognuna di esse.Ogni colpo di clock fa acquisire al primo buffer di ciascuna delle tre sezioni il dato; a trasmissione ultimata si può inviare un comando di strobe per aggiornare il ramo desiderato.

Lo stadio d’ingresso del tabellone prevedeva, per ogni linea, una resistenza di pull-up, un condensatore di filtro verso massa e un 74HC14 usato per adattare il livello della tensione di comando (12 V) a quello della logica TTL (5 V).

Ecco uno schema che riassume la costituzione interna del tabellone (sulla sinistra è visibile il circuito di alimentazione con un 7805 per la logica TTL e un lm317 per i display a led. In realtà è presente un lm317 per ogni display ma ne è riportato uno solo per semplicità):

(clicca sull'immagine per vederla più grande)

In precedenza il tabellone segnapunti era controllato attraverso la porta parallela di un vecchio computer da un programma scritto in pascal. I segnali in uscita dalla porta parallela venivano “potenziati” da un circuito a MOSFET che alzava la tensione da 5 a 12 V in modo da poterli trasmettere lungo tutti i cento metri di cavo STP che collegavano il tabellone al pc.

Pur funzionando bene questo sistema di controllo aveva numerosi problemi:

  • Il computer era molto vecchio, così come il software ed il linguaggio di programmazione utilizzato per scriverlo. Si sarebbero incontrati numerosi problemi se uno qualsiasi di questi elementi avesse presentato qualche malfunzionamento;
  • Il cavo di trasmissione, essendo molto lungo ed arrotolato intorno alla linea della rete elettrica, era soggetto a numerose interferenze e distorsioni;
  • L’operatore che utilizzava il computer era costretto a starne in prossimità, molto distante dal campo di gioco.

Un altro intervento di manutenzione necessario era la riparazione dell’avvisatore acustico (un vecchio clacson di una seicento) che, da molto tempo, non era più funzionante a causa di un componente della scheda di controllo che si era bruciato.

Il nostro progetto ha operato la sostituzione del computer di gestione con un radioricevitore collegato direttamente allo stadio d’ingresso del tabellone e posto il più vicino possibile ad esso.

Per comandarlo è prevista una stazione di controllo alimentata a batteria e dal basso dispendio energetico. In alternativa è stato realizzato un telecomando che può essere utilizzato per comandare il tabellone nel caso vi sia un guasto alla stazione trasmittente, mentre questa viene riparata.

Il ricevitore controllerà anche un avvisatore acustico di fine tempo che, dato il suo moderato assorbimento (circa 0,5 A @ 230 Vac), sarà dotato di una scheda d’interfaccia e di una connessione di alimentazione 230 Vac dedicata.

Sia i dispositivi di trasmissione che quello di ricezione contengono dei microcontrollori adeguatamente programmati e facilmente riprogrammabili, in modo da aggiungere versatilità e facilità di aggiornamento a tutto il sistema.

Il software per i dispositivi trasmittenti è scritto in assembly, mentre quello del ricevente è scritto in C (ambiente mikroC) a causa delle numerose operazioni di elaborazione che deve compiere e della non trascurabile complessità del codice che renderebbe proibitivo scriverlo in assembly: risulterebbe troppo complicato sia da leggere che da capire e strutturato in modo eccessivamente contorto.