Sommario:

QuizzPi, un gioco a quiz Raspberry Pi con Python: 7 passaggi (con immagini)
QuizzPi, un gioco a quiz Raspberry Pi con Python: 7 passaggi (con immagini)

Video: QuizzPi, un gioco a quiz Raspberry Pi con Python: 7 passaggi (con immagini)

Video: QuizzPi, un gioco a quiz Raspberry Pi con Python: 7 passaggi (con immagini)
Video: Sistema di intelligenza artificiale su Raspberry Pi con riconoscimento oggetti con TensorFlow Lite 2024, Dicembre
Anonim
QuizzPi, un gioco a quiz Raspberry Pi con Python
QuizzPi, un gioco a quiz Raspberry Pi con Python
QuizzPi, un gioco a quiz Raspberry Pi con Python
QuizzPi, un gioco a quiz Raspberry Pi con Python

QuizzPi è un gioco a quiz di tipo arcade. QuizzPi è nato perché avevo la necessità di dare a mia figlia un divertimento. Ha 7 anni e già pretende l'uso delle nuove tecnologie, l'idea era quella di creare qualcosa che fosse allo stesso tempo divertente ed educativo.

Requisiti del progetto:

  • Facile da usare
  • Portatile
  • Facile aggiornare il set di domande e risposte
  • Tabella dei punteggi più alti

Più elementi sono configurabili. Puoi creare il tuo database di domande/risposte oppure puoi utilizzare uno dei molteplici server che offre un database, dove decidi il tipo di domande, difficili, … ho creato per mia figlia un database di domande di prima elementare, ma possiamo modificare la configurazione per ottenere domande trivia da un server online. Questa versione istruibile ottiene le domande da domande e risposte collaborative, l'Open Trivia Database. Ho scelto domande di cultura generale, ma puoi scegliere domande su film, sport o religione.

Mi scuso per il mio scarso inglese. Sono spagnolo ma ho preferito creare questo istruttivo in inglese in modo che possa raggiungere più persone.

Andiamo!

Passaggio 1: sono necessari alcuni materiali e strumenti…

Hai bisogno di alcuni materiali e strumenti…
Hai bisogno di alcuni materiali e strumenti…

Hai sicuramente la maggior parte del materiale a casa…

  • Raspberry Pi 2/3 con una scheda SD da 8 Gb o più (35$)
  • LCD Raspberry Pi da 3,5 pollici con custodia (11$). Vedi (questo è facoltativo, puoi usare qualsiasi display che hai, devi solo modificare la custodia QuizzPi per questo)
  • Batterie. Puoi usare un power bank o puoi usare un pacco batteria 18650 fai da te (5 $). Nel mio caso ho usato un power bank Aukey 5000mah (12$). Vedere
  • Quattro pulsanti arcade. Li ho a casa (3$, 12 bottoni per 10$). Vedere
  • Un interruttore on/off (0,25$). Vedere
  • Due connettori USB (0,50$)
  • Un cavo USB/micro USB
  • Un altoparlante economico (opzionale) (0,25 $). Vedere
  • Un amplificatore PAM8403 (opzionale) (0,80$). Vedere
  • Alcuni fili per collegare pulsanti, connettore USB e interruttore on/off ai pin GPIO (1$?)
  • Quattro magneti al neodimio o puoi usare qualsiasi cosa per chiudere la porta sul retro. Vedere
  • compensato. Ho usato compensato da 5 mm ma puoi usare quello che hai a casa (2 $)

Ti servono anche degli strumenti…

  • Utilità di saldatura
  • Cacciaviti
  • Pistola per colla a caldo
  • Stampante 3D (opzionale)

Andiamo!

Passaggio 2: progettiamo una fantastica custodia QuizzPi…

Progettiamo una fantastica custodia QuizzPi…
Progettiamo una fantastica custodia QuizzPi…
Progettiamo una fantastica custodia QuizzPi…
Progettiamo una fantastica custodia QuizzPi…

La prima cosa di cui abbiamo bisogno è sapere di quanto spazio abbiamo bisogno per includere l'hardware (Raspberry + schermo + pulsanti + batteria + cavi). Tenendo conto delle parti descritte nel passaggio precedente ho realizzato un design 3D della custodia utilizzando il designer 3D online gratuito Tinkercad (Vedi). Se desideri stampare il modello 3D della custodia puoi scaricarlo dal file allegato QuizzPi case.stl.

In quel momento dovevo decidere se stampare il modello sulla mia stampante 3D o farlo in compensato. Pensavo che essendo per mia figlia avrei potuto dedicare un po' più di tempo a realizzarla in compensato. Quindi prendo i piani dal modello 3D e taglio il legno.

Il prossimo passo è l'incollaggio a caldo delle parti…

Passaggio 3: realizzare la custodia in compensato…

Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…
Realizzare la cassa in compensato…

Una volta che ho tagliato tutte le parti in compensato dei piani, il passo successivo è incollarle a caldo. In alcune giunzioni metto dei rinforzi per rinforzare la scatola. Nella cornice disegno con la matita il contorno dello schermo LCD e lo taglio. Faccio quattro fori per le viti. Se usi uno schermo diverso devi modificare questa cosa.

La porta posteriore si chiude con due calamite incollate all'anta e due calamite incollate alla cassa, quindi evito l'uso delle cerniere.

Il caso QuizzPi è finito…

Passaggio 4: cablaggio dei pin GPIO, montaggio di Raspberry+LCD…

Cablaggio pin GPIO, montaggio Raspberry+LCD…
Cablaggio pin GPIO, montaggio Raspberry+LCD…
Cablaggio pin GPIO, montaggio Raspberry+LCD…
Cablaggio pin GPIO, montaggio Raspberry+LCD…
Cablaggio pin GPIO, montaggio Raspberry+LCD…
Cablaggio pin GPIO, montaggio Raspberry+LCD…

Dobbiamo collegare i pulsanti al Raspberry Pi in modo che possa sapere quali pulsanti vengono premuti. I pulsanti sono collegati ai pin GPIO. Abbiamo bisogno di quattro pin IN GPIO più un pin Gnd GPIO. Ho usato il pin GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) e 39 (Gnd) rispettivamente per i pulsanti rosso, giallo, verde e blu. Questa schermata ha un'interfaccia SPI. Ciò significa che è collegato al banco GPIO, quindi prima ho messo i fili terminati in quadrato nei pin dei pulsanti e poi ho collegato lo schermo LCD.

Il passo successivo è stato montare la custodia Raspberry+LCD+ sulla cornice. Ho usato le viti del case Raspberry Pi.

Il QuizzPi è montato…

Passaggio 5: batteria, pulsanti, interruttore e connettore USB…

Batteria, pulsanti, interruttore e connettore USB…
Batteria, pulsanti, interruttore e connettore USB…
Batteria, pulsanti, interruttore e connettore USB…
Batteria, pulsanti, interruttore e connettore USB…
Batteria, pulsanti, interruttore e connettore USB…
Batteria, pulsanti, interruttore e connettore USB…

Ho usato di nuovo Tinkercad per progettare una clip per fissare il power bank alla custodia. Ho stampato la clip con la mia stampante 3D e l'ho unita alla custodia con la pistola per colla a caldo. Allego il file.stl del modello sottostante. Se non hai accesso a una stampante 3D puoi unirti al power bank con del nastro in velcro.

Il prossimo passo è collegare l'interruttore on/off tra il power bank e il Raspberry Pi. Ho preso un cavo USB e ho tagliato solo il cavo di alimentazione, quindi ho saldato un'estremità del filo a un pin dell'interruttore on/off e l'altra estremità all'altro pin dell'interruttore on/off. Quindi, quando l'interruttore di accensione non passa attraverso l'interruttore e Raspberry è spento e quando l'interruttore di accensione passa attraverso l'interruttore e Raspberry è acceso.

Quando il power bank si scarica è un problema estrarlo dalla custodia per caricarlo, quindi non volevo estrarlo ogni volta per caricare. Il problema era che la porta di ricarica del power bank è di tipo USC C e avevo solo il cavo del power bank. Quindi ho saldato due connettori USB femmina e li ho inseriti nella custodia. Il connettore interno per collegare il cavo della banca di alimentazione e il connettore esterno per collegare un cavo di alimentazione USB.

Posizionare i pulsanti e cablarli è stato facile. I pulsanti hanno 2 pin, un pin di ogni pulsante si collega a un cavo comune che va a un pin GPIO di terra e l'altro pin del pulsante si collega al rispettivo pin GPIO del lampone. Lo schema elettrico è riportato nello schema allegato.

Il sistema audio è basato su PAM8403, un amplificatore audio economico. È necessario perché il suono proveniente dal jack di Raspberry Pi non è troppo potente per far funzionare un altoparlante. Devi alimentarlo con 5v o più. Nelle immagini allegate potete vedere come cablare l'amplificatore e l'altoparlante. Abbiamo bisogno di un jack maschio da 3,5 mm per il collegamento al jack audio/video del Rapberry. ho saldato 3 fili al jack: audio, video e massa. Il diagramma allegato mostra quale pin è ognuno. Quindi ho saldato un filo all'interruttore On/Off per prendere l'alimentazione e un altro filo al filo di terra dal cavo della banca di alimentazione. Quindi collego i fili dall'altoparlante alle uscite dell'amplificatore. La parte facile è quella di allocare il sistema audio nel caso. Puoi vedere nelle immagini.

QuizzPi è montato, nell'ultima foto si vedono ancora segni di matita sul legno, ma è ora di software… andiamo a creare un minuscolo motore di quiz…

Passaggio 6: immagine Rasbian e programmazione del motore dei quiz…

Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…
Immagine Rasbian e programmazione del motore dei quiz…

Premiamo il pulsante di accensione. Non succede niente. Dio mio! Non funziona! Cosa potrebbe esserci di sbagliato? Qualche cavo senza connessione? Non preoccuparti, dobbiamo installare un'immagine sulla scheda SD…

Il motore dei quiz è scritto in Python 3, quindi abbiamo bisogno di un'immagine Raspbian con il compilatore Python installato. A questo punto dobbiamo tenere conto del tipo di schermo che abbiamo installato. Il mio schermo è un'interfaccia SPI e il venditore fornisce un'immagine Raspbian con tutti i driver dello schermo installati. Questa versione di Raspbian ha anche il motore Python. Puoi scaricare questa immagine in questo link.

Se hai uno schermo HDMI o RCA puoi scaricare l'ultima immagine Raspbian disponibile nel sito raspberrypi.org. Attenzione: è necessaria la versione Desktop Rasbian, quindi evita di scaricare l'immagine Lite Raspbian. Questa immagine contiene il compilatore Python.

Per installare l'immagine sulla scheda SD possiamo utilizzare qualsiasi applicazione. Io uso Win32diskimager. Quindi inseriamo la scheda SD nel Raspberry e premiamo l'interruttore on/off. Funziona! Ora abbiamo bisogno di creare un programma Python con il motore dei quiz.

Il prossimo passo è scaricare i file del motore di quiz. Ho allegato il codice sorgente nel file QuizzPi.zip. Scarica il sorgente e crea una cartella nel Raspberry Pi:

# mkdir /home/pi/QuizzPi

e decomprimi il file scaricato in questa cartella.

QuizzPi.zip contiene questi file:

  • QuizzPi.py - contiene il codice
  • File immagine PNG: contiene un'interfaccia grafica, puoi modificarli per personalizzarli
  • File audio MP3 - puoi cambiare per personalizzare
  • losmejores.txt - contiene la tabella dei punteggi più alti, puoi eliminarla per inizializzare la tabella
  • Istruzioni.txt

Non darò una spiegazione esauriente di come ho programmato il codice motore in Python perché è troppo difficile per le persone senza conoscenze di programmazione. Devono solo salvare i file nel Raspberry. Le persone con conoscenze di programmazione potranno modificarlo senza alcuna spiegazione;)

Domande e risposte provengono da un database collaborativo di domande e risposte chiamato Open Trivia Database, che puoi trovare qui. Puoi cambiare la categoria e la difficoltà delle domande cambiando una riga nel file QuizzPi.py:

#Cargo desde URLurl = 'https://opentdb.com/api.php?amount=10&type=multiple'

cambiando con l'url ottenuto dal configuratore api

Ho progettato le schermate di gioco in Photoshop, puoi modificarle. Devi solo preservare alcune aree bianche nella schermata delle domande, nella schermata dei risultati e nelle schermate dei punteggi più alti perché il motore di gioco scrive su di esse.

Puoi anche personalizzare i suoni del gioco. Devi solo cambiare i file.mp3 da altri che vuoi, devi conservare gli stessi nomi. Puoi ottenere molti suoni dai database online, io ottengo i miei da Free Sound Effects.

Ora devi modificare il tuo Raspbian per eseguire automaticamente QuizzPi. Puoi leggere questo articolo dove spiega come farlo:

Abbiamo finito!!!

Passaggio 7: dimostrazione…

Image
Image

Per finire questo tutorial puoi vedere questo video. Puoi vedere che è facile da usare e la difficoltà delle domande dipende da te…

Modifica: video aggiornato ora con audio!

Concorso Microcontrollori
Concorso Microcontrollori

Secondo classificato al concorso per microcontrollori

Consigliato: