Pulsanti per quiz: un semplice progetto con ESPertino per giocare ai classici giochi della TV

Li abbiamo visti centinaia di volte in TV, durante i giochi a premi, nei quali il primo concorrente che preme il pulsante acquisisce il diritto di rispondere alla domanda del conduttore. Il prototipo proposto è realizzato con la scheda ESPertino ma può essere benissimo implementato anche con altri dispositivi. Esistono diverse soluzioni per concretizzare al meglio il sistema, e alcune di esse prevedono anche l'uso degli interrupt. Vediamone alcune.

I quiz alla TV

Per anni abbiamo assistito, in televisione, ai divertenti e appassionanti giochi a premi pomeridiani e serali, nei quali il presentatore pone le domande a cui deve rispondere il primo concorrente che preme il proprio pulsante. Memorabili sono le puntate del giovedi sera di "Rischiatutto" ( durante gli anni 1970-1974, vedi figura 1), che teneva letteralmente incollati, davanti la TV, milioni di persone grazie alla simpatia e alla professionalità di Mike Bongiorno. Con molta probabilità fu lui l'ideatore di questa casistica di giochi.

Figura 1: il quiz a premi "Rischiatutto" di Mike Bongiorno

Figura 1: il quiz a premi "Rischiatutto" di Mike Bongiorno

Un pulsante per acquisire il diritto di prenotazione alla risposta

Il funzionamento del gioco è molto semplice: l'organizzatore propone e pone una domanda ai concorrenti, che possono essere anche alquanto numerosi. Il primo giocatore che preme il proprio pulsante acquisisce il diritto di rispondere alla domanda, escludendo tutti gli altri. La conquista di tale diritto è testimoniata anche da alcune segnalazioni acustiche e luminose. Tali sistemi di prenotazione possono essere utilizzati anche a casa, negli eventi organizzati con amici e parenti o nelle feste di compleanno dei bambini. Le idee possono essere tante.

Tante soluzioni possibili

In effetti esistono tante soluzioni circuitali per implementare un sistema di prenotazione di risposta. Oggi, con i moderni microcontrollori è, realmente, un gioco da ragazzi allestire tale dispositivo. Sono sufficienti solo un paio di controlli, alcune istruzioni condizionali e decisionali e il gioco è fatto. Ma è possibile realizzare il circuito tramite la vecchia metodologia a componenti discreti, probabilmente più efficace e nel proseguo dell'articolo spiegheremo anche il perché. Con una quantità modesta di circuiti logici, anche tale problematica può essere brillantemente risolta, al prezzo di qualche circuito integrato aggiuntivo e una basetta elettronica più capiente.

La parte hardware

A prima vista, il circuito da realizzare sembrerebbe non presentare alcun problema. In questa tipologia di applicazioni non è critica, infatti, la parte hardware ma solo il firmware e la sua concezione. Esso è composto da alcuni pulsanti, a disposizione di ciascun giocatore, da altrettanti dispositivi luminosi e da un attuatore sonoro, secondo lo schema di principio di cui alla figura 2.

Figura 2: i componenti base in una pulsantiera per giochi a quiz

Figura 2: i componenti base in una pulsantiera per giochi a quiz

Possiamo approntare, facilmente, uno schema elettrico con ESPertino, che riproduca esattamente il prototipo da realizzare. Esso è visibile in figura 3 e comprende i seguenti elementi:

  • tre pulsanti normalmente aperti, uno a disposizione di ciascun concorrente;
  • tre indicatori luminosi, uno per ogni giocatore;
  • un unico segnalatore acustico.
Figura 3: schema elettrico della pulsantiera per quiz

Figura 3: schema elettrico della pulsantiera per quiz

Le porte, con funzionalità d'input, dedicate all'acquisizione dello stato logico dei pulsanti sono, rispettivamente, la GPIO33, la GPIO35 e la GPIO34. Tali porte, in stato di riposo, sono "forzate" a rilevare un livello logico basso grazie ad altrettante resistenze di pull-down da 10k (tale valore non è critico ed esso può essere compreso tra 1k e 1M). In caso di pressione di uno dei pulsanti lo stato logico della relativa porta si pone a livello alto (3.3V), grazie al collegamento diretto, in commutazione, con la fonte di alimentazione.

La segnalazione dell'avvenuta prenotazione del diritto di risposta è affidata, invece, a tre diodi Led, preceduti da altrettante resistenze di limitazione da 120 ohm. Le porte utilizzate, questa volta in funzionalità di output, sono la GPIO00, la GPIO02 e la GPIO04.

Infine, la segnalazione acustica è affidata a un piccolo buzzer collegato alla porta GPIO17 configurata, anch'essa, come uscita.

Prima di tutto l'equità

Perché parliamo di equità e di correttezza nella rilevazione degli eventi? Osserviamo il seguente codice per ESPertino, carichiamolo sulla scheda e collaudiamolo subito, secondo le specifiche tecniche del relativo schema elettrico.

void setup() {
  pinMode(0, OUTPUT);  // Porta per il diodo Led
  pinMode(2, OUTPUT);  // Porta per il diodo Led
  pinMode(4, OUTPUT);  // Porta per il diodo Led
  pinMode(17, OUTPUT); // Porta per il buzzer
  pinMode(33, INPUT);  // Porta per il pulsante
  pinMode(35, INPUT);  // Porta per il pulsante
  pinMode(34, INPUT);  // Porta per il pulsante
  //----Spegne tutte le luci e anche il buzzer------
  digitalWrite(0,LOW);
  digitalWrite(2,LOW);
  digitalWrite(4,LOW);
  digitalWrite(17,LOW);
}
//-------------LOOP----------------
void loop() {
  if(digitalRead(33)==HIGH) {   // Se preme il giocatore 1.......
    digitalWrite(0,HIGH);  // Accende diodo Led  
    digitalWrite(17,HIGH);  // Suona il buzzer
    delay(2000);      
    digitalWrite(0,LOW);  // Spegne diodo Led
    digitalWrite(17,LOW);  // Spegne il buzzer          
  }
  if(digitalRead(35)==HIGH) {   // Se preme il giocatore 2.......
    digitalWrite(2,HIGH);  // Accende diodo Led    
    digitalWrite(17,HIGH);  // Suona il buzzer    
    delay(2000);      
    digitalWrite(2,LOW);  // Spegne diodo Led          
    digitalWrite(17,LOW);  // Spegne il buzzer              
  }
  if(digitalRead(34)==HIGH) {   // Se preme il giocatore 3.......
    digitalWrite(4,HIGH);   // Accende diodo Led 
    digitalWrite(17,HIGH);  // Suona il buzzer    
    delay(2000);      
    digitalWrite(4,LOW);  // Spegne diodo Led
    digitalWrite(17,LOW);  // Spegne il buzzer                        
  }
}

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2299 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

7 Commenti

  1. Mattia73 28 Gennaio 2020
  2. Giordana Francesca Brescia Giordana Francesca Brescia 28 Gennaio 2020
  3. giulioelettronica giulioelettronica 29 Gennaio 2020
  4. Mattia73 29 Gennaio 2020
    • giulioelettronica giulioelettronica 29 Gennaio 2020
      • Mattia73 30 Gennaio 2020
  5. giulioelettronica giulioelettronica 30 Gennaio 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend