Taula de continguts:

QuizzPi, un joc de trivia Raspberry Pi amb Python: 7 passos (amb imatges)
QuizzPi, un joc de trivia Raspberry Pi amb Python: 7 passos (amb imatges)

Vídeo: QuizzPi, un joc de trivia Raspberry Pi amb Python: 7 passos (amb imatges)

Vídeo: QuizzPi, un joc de trivia Raspberry Pi amb Python: 7 passos (amb imatges)
Vídeo: Writing 2D Games in C using SDL by Thomas Lively 2024, Desembre
Anonim
QuizzPi, un joc de trivia Raspberry Pi amb Python
QuizzPi, un joc de trivia Raspberry Pi amb Python
QuizzPi, un joc de trivia Raspberry Pi amb Python
QuizzPi, un joc de trivia Raspberry Pi amb Python

QuizzPi és un joc de trivia tipus arcade. QuizzPi va néixer perquè tenia la necessitat de divertir-me a la meva filla. Té 7 anys i ja exigeix l’ús de les noves tecnologies, la idea era crear quelcom que fos alhora divertit i educatiu.

Requisits del projecte:

  • Fàcil d'usar
  • Portàtil
  • Fàcil actualitzar el conjunt de preguntes i respostes
  • Taula de puntuacions altes

Es poden configurar diversos elements. Podeu crear la vostra pròpia base de dades de preguntes / respostes o fer servir un dels múltiples servidors que ofereix una base de dades, on decidiu el tipus de preguntes, difícils … Vaig crear per a la meva filla una base de dades de preguntes de primer grau, però podem canvieu la configuració per obtenir preguntes trivia d'un servidor oline. Aquesta versió instructiva obté les preguntes d'una resposta col·laborativa de preguntes i respostes, la base de dades Open Trivia. He triat preguntes de coneixement general, però podeu escollir preguntes sobre cinema, esports o religió.

Disculpeu el meu pobre anglès. Sóc espanyol, però he preferit crear aquesta instrucció en anglès perquè pugui arribar a més gent.

Som-hi!

Pas 1: necessiteu alguns materials i eines …

Necessiteu alguns materials i eines …
Necessiteu alguns materials i eines …

Segur que teniu la major part del material a casa …

  • Raspberry Pi 2/3 amb una targeta SD de 8 GB o més (35 $)
  • LCD Raspberry Pi de 3,5 polzades amb estoig (11 $). Veure (això és opcional, podeu utilitzar qualsevol pantalla que tingueu, només cal que modifiqueu la funda QuizzPi)
  • Bateries. Podeu utilitzar un banc d’energia o podeu utilitzar un paquet de bateries 18650 diy (5 $). En el meu cas, he utilitzat un banc de potència Aukey 5000mah (12 $). Veure
  • Quatre botons arcade. Tinc aquests a casa (3 $, 12 botons per 10 $). Veure
  • Un interruptor d'encès / apagat (0,25 $). Veure
  • Dos connectors USB (0,50 $)
  • Un cable USB / micro USB
  • Un altaveu barat (opcional) (0,25 $). Veure
  • Un amplificador PAM8403 (opcional) (0,80 $). Veure
  • Alguns cables per enllaçar els botons, el connector USB i el commutador d’encès / apagat als pins GPIO (1 $?)
  • Quatre imants de neodimi o podeu utilitzar qualsevol cosa per tancar la porta del darrere. Veure
  • Fusta contraxapada. He utilitzat fusta contraxapada de 5 mm, però podeu utilitzar qualsevol que tingueu a casa (2 $)

També necessiteu algunes eines …

  • Utilitats de soldadura
  • Tornavisos
  • Pistola de cola calenta
  • Impressora 3D (opcional)

Som-hi!

Pas 2: dissenyem un cas QuizzPi interessant …

Dissenyem un cool QuizzPi Case …
Dissenyem un cool QuizzPi Case …
Dissenyem un cool QuizzPi Case …
Dissenyem un cool QuizzPi Case …

El primer que necessitem és saber quants espais necessitem per incloure maquinari (gerd + pantalla + botons + bateria + cables). Tenint en compte les parts descrites en el pas anterior, vaig fer un disseny 3D de la funda amb el dissenyador 3D en línia gratuït Tinkercad (Veure). Si voleu imprimir el model 3D de la funda, podeu descarregar-lo des del fitxer adjunt de la funda QuizzPi..stl.

En aquell moment vaig haver de decidir si imprimeixo el model a la meva impressora 3D o el feia de fusta contraxapada. Vaig pensar que, per a la meva filla, podia dedicar una mica més de temps a fer-ho amb fusta contraxapada. Així que obtinc els plans del model 3D i tallo la fusta.

El següent pas és enganxar les peces en calent …

Pas 3: fabricació de la funda de fusta contraxapada …

S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …
S'està fent el estoig de fusta contraxapada …

Un cop havia tallat totes les parts de fusta contraxapada dels plans, el següent pas és enganxar-les en calent. En algunes juntes poso reforços per fer la caixa més forta. Al bisell dibuixo amb el llapis el contorn de la pantalla LCD i el tallo. Faig quatre forats per als cargols. Si utilitzeu una pantalla diferent, heu de modificar aquesta cosa.

La porta del darrere es tanca amb dos imants enganxats a la porta i dos imants enganxats a la caixa, de manera que evito l’ús de frontisses.

El cas QuizzPi s'ha acabat …

Pas 4: Cablatge de pins GPIO, muntatge de gerds + LCD …

Cablejat de pins GPIO, muntatge de gerds + LCD …
Cablejat de pins GPIO, muntatge de gerds + LCD …
Cablejat de pins GPIO, muntatge de gerds + LCD …
Cablejat de pins GPIO, muntatge de gerds + LCD …
Cablejat de pins GPIO, muntatge de gerds + LCD …
Cablejat de pins GPIO, muntatge de gerds + LCD …

Hem de connectar els botons al Raspberry Pi perquè pugui saber quin botó es prem. Els botons estan connectats als pins GPIO. Necessitem quatre pins GPIO IN més un pin GPIO Gnd. He utilitzat el pin 31 de GPIO (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) i 39 (Gnd) per als botons vermells, grocs, verds i blaus, respectivament. Aquesta pantalla té una interfície SPI. Això significa que està connectat al banc GPIO, de manera que primer he posat cables acabats en quadrat en pins de botons i després he connectat la pantalla LCD.

El següent pas va ser muntar la funda Raspberry + LCD + al marc. Vaig utilitzar els propis cargols de la funda Raspberry Pi.

El QuizzPi està muntat …

Pas 5: bateria, botons, interruptor i connector USB …

Bateria, botons, interruptor i connector USB …
Bateria, botons, interruptor i connector USB …
Bateria, botons, interruptor i connector USB …
Bateria, botons, interruptor i connector USB …
Bateria, botons, interruptor i connector USB …
Bateria, botons, interruptor i connector USB …

Vaig tornar a utilitzar Tinkercad per dissenyar un clip que subjectés el banc de potència a la caixa. Vaig imprimir el clip amb la meva impressora 3D i em vaig unir a la caixa amb una pistola de cola calenta. Adjunto el fitxer.stl del model següent. Si no teniu accés a una impressora 3D, podeu unir-vos al banc de potència amb cinta de velcro.

El següent pas és connectar l’interruptor d’encesa / apagat entre el banc d’energia i el Raspberry Pi. Vaig agafar un cable USB i només vaig tallar el cable d'alimentació, i després vaig soldar un extrem de cable a un pin de l'interruptor d'encesa / apagat i l'altre extrem de cable a l'altre pin de l'interruptor d'encesa / apagat. Per tant, quan l’interruptor d’encesa no passa pel commutador i el gerd està apagat i quan l’interruptor encès passa pel commutador i el gerd està activat.

Quan les descàrregues del banc d'energia són un problema per treure-les el cas per carregar-les, no he volgut treure-les cada vegada per carregar-les. El problema era que el port de càrrega del banc de potència és de tipus C de la USC i només tenia el cable del banc de potència. Així que vaig soldar dos connectors USB femenins i vaig posar la funda. El connector interior per connectar el cable del banc d’alimentació i el connector exterior per connectar un cable d’alimentació USB.

Posar els botons i cablejar-los va ser fàcil. Els botons tenen 2 pins, un pin de cada botó es connecta a un cable comú que va a un pin GPIO de terra i l’altre pin del botó es connecta al seu pin GPIO respectiu del gerd. El diagrama de cablejat es mostra al diagrama adjunt.

El sistema de so es basa en PAM8403, un amplificador de so econòmic. És necessari perquè el so obtingut del jack de Raspberry Pi no és massa potent perquè els altaveus funcionin. Cal alimentar-lo amb 5V o més. A les imatges adjuntes es pot veure com connectar l’amplificador i l’altaveu. Necessitem un connector masculí de 3,5 mm per connectar-nos al connector d’àudio / vídeo del Rapberry. He soldat 3 cables a la presa: àudio, vídeo i terra. El diagrama adjunt mostra el que és el pin de tots. Després he soldat un cable a l’interruptor d’encès / apagat per agafar electricitat i un altre al cable de terra del cable del banc d’alimentació. Després connecto els cables de l’altaveu a les sortides de l’amplificador. El més senzill és assignar el sistema de so al cas. Es pot veure a les imatges.

QuizzPi està muntat, a la darrera foto encara podem veure marques de llapis a la fusta, però és hora de programari … anem a crear un petit motor de proves …

Pas 6: Imatge Rasbian i programació del motor de proves …

Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …
Imatge Rasbian i programació del motor de preguntes …

Premem el botó d’engegada. No passa res. Oh Déu meu! No funciona! Què pot estar malament? Algun cable sense connexió? No us preocupeu, hem d’instal·lar una imatge a la targeta SD …

El motor de preguntes està escrit a Python 3, de manera que necessitem una imatge Raspbian amb el compilador Python instal·lat. En aquest moment hem de tenir en compte el tipus de pantalla que hem instal·lat. La meva pantalla és una interfície SPI i el venedor proporciona una imatge de Raspbian amb tots els controladors de pantalla instal·lats. Aquesta versió de Raspbian també té motor Python. Podeu descarregar aquesta imatge en aquest enllaç.

Si teniu una pantalla HDMI o RCA, podeu descarregar la darrera imatge de Raspbian disponible al lloc raspberrypi.org. Atenció: necessiteu la versió Desktop Rasbian, així que eviteu descarregar la imatge Lite Raspbian. Aquestes imatges contenen un compilador Python.

Per instal·lar la imatge a la targeta SD podem utilitzar qualsevol aplicació. Faig servir Win32diskimager. A continuació, inserim la targeta SD al gerd i premem l’interruptor d’encès / apagat. Funciona! Ara hem de crear un programa Python amb el motor de prova.

El següent pas és descarregar els fitxers del motor de prova. He adjuntat el codi font al fitxer QuizzPi.zip. Baixeu la font i creeu una carpeta al Raspberry Pi:

# mkdir / home / pi / QuizzPi

i descomprimiu el fitxer descarregat en aquesta carpeta.

QuizzPi.zip conté aquests fitxers:

  • QuizzPi.py: conté el codi
  • Fitxers d'imatge PNG: conté una interfície gràfica, podeu canviar-los per personalitzar-los
  • Fitxers de so MP3: podeu canviar-los per personalitzar-los
  • losmejores.txt: conté una taula de puntuacions altes, podeu suprimir-la per inicialitzar la taula
  • Instruccions.txt

No donaré una explicació exhaustiva de com he programat el codi del motor a Python perquè és difícil per a persones sense coneixements de programació. Només han de desar els fitxers al gerd. Les persones amb coneixements de programació podran modificar-lo sense cap explicació;)

Les preguntes i respostes provenen d’una base de dades col·laborativa de Preguntes i respostes anomenada Open Trivia Database, que podeu trobar aquí. Podeu canviar la categoria i la dificultat de les preguntes que canvien una línia al fitxer QuizzPi.py:

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

canviant amb l'URL obtinguda del configurador de l'API

He dissenyat les pantalles del joc a Photoshop, les podeu modificar. Només heu de conservar algunes zones blanques a la pantalla de preguntes, a la pantalla de resultats i a les pantalles de puntuacions més altes, perquè el motor de joc hi escriu.

També podeu personalitzar els sons del joc. Només heu de canviar els fitxers.mp3 per altres que vulgueu, heu de conservar els mateixos noms. Podeu obtenir molts sons de les bases de dades en línia, tinc mines de Free Sound Effects.

Ara heu de modificar Raspbian per executar automàticament QuizzPi. Podeu llegir aquest article on expliqueu com fer-ho:

Hem acabat !!!

Pas 7: demostració …

Image
Image

Per acabar aquest instructiu podeu veure aquest vídeo. Es pot veure que és fàcil d’utilitzar i que la dificultat de les preguntes depèn de vosaltres …

Edició: vídeo actualitzat ara amb so.

Concurs de microcontroladors
Concurs de microcontroladors

Accèssit al concurs de microcontroladors

Recomanat: