Tabla de contenido:

QuizzPi, un juego de preguntas de Raspberry Pi con Python: 7 pasos (con imágenes)
QuizzPi, un juego de preguntas de Raspberry Pi con Python: 7 pasos (con imágenes)

Video: QuizzPi, un juego de preguntas de Raspberry Pi con Python: 7 pasos (con imágenes)

Video: QuizzPi, un juego de preguntas de Raspberry Pi con Python: 7 pasos (con imágenes)
Video: Arduino Trivia Game - Gameplay showcase 2024, Mes de julio
Anonim
QuizzPi, un juego de preguntas de Raspberry Pi con Python
QuizzPi, un juego de preguntas de Raspberry Pi con Python
QuizzPi, un juego de preguntas de Raspberry Pi con Python
QuizzPi, un juego de preguntas de Raspberry Pi con Python

QuizzPi es un juego de preguntas tipo arcade. QuizzPi nació porque tenía la necesidad de darle un entretenimiento a mi hija. Tiene 7 años y ya demanda el uso de nuevas tecnologías, la idea era crear algo divertido y educativo.

Requisitos del proyecto:

  • Fácil de usar
  • Portátil
  • Fácil de actualizar el conjunto de preguntas y respuestas
  • Tabla de puntuaciones altas

Varios elementos son configurables. Puedes crear tu propia base de datos de preguntas / respuestas o puedes usar uno de los múltiples servidores que ofrece una base de datos, donde tú decides el tipo de preguntas, difíciles,… Creé para mi hija una base de datos de preguntas de primer grado, pero podemos cambie la configuración para obtener preguntas de trivia de un servidor oline. Esta versión instructable obtiene las preguntas de preguntas y respuestas colaborativas, la base de datos abierta de preguntas y respuestas. He elegido preguntas de conocimientos generales, pero tú puedes elegir preguntas sobre cine, deportes o religión.

Pido disculpas por mi pobre inglés. Soy español, pero he preferido crear este instructivo en inglés para que pueda llegar a más personas.

¡Vamos!

Paso 1: necesita algunos materiales y herramientas …

Necesita algunos materiales y herramientas …
Necesita algunos materiales y herramientas …

Seguro que tienes la mayor parte del material en casa …

  • Raspberry Pi 2/3 con una tarjeta SD de 8 Gb o más (35 $)
  • LCD Raspberry Pi de 3,5 pulgadas con estuche (11 $). Ver (esto es opcional, puede usar cualquier pantalla que tenga, solo necesita modificar la carcasa de QuizzPi para ello)
  • Baterías. Puede usar un banco de energía o puede usar una batería de bricolaje 18650 (5 $). En mi caso utilicé un banco de energía Aukey 5000mah (12 $). Ver
  • Cuatro botones de arcade. Los tengo en casa (3 $, 12 botones por 10 $). Ver
  • Un interruptor de encendido / apagado (0,25 $). Ver
  • Dos conectores USB (0,50 $)
  • Un cable USB / micro USB
  • Un altavoz barato (opcional) (0,25 $). Ver
  • Un amplificador PAM8403 (opcional) (0,80 $). Ver
  • Algunos cables para conectar botones, conector USB e interruptor de encendido / apagado a pines GPIO (1 $?)
  • Cuatro imanes de neodimio o puedes usar cualquier cosa para cerrar la puerta trasera. Ver
  • Madera contrachapada. Usé madera contrachapada de 5 mm, pero puedes usar cualquiera que tengas en casa (2 $)

También necesitas algunas herramientas …

  • Utilidades de soldadura
  • Destornilladores
  • Pistola de silicona
  • Impresora 3D (opcional)

¡Vamos!

Paso 2: Diseñemos un estuche genial para QuizzPi …

Diseñemos un estuche genial para QuizzPi …
Diseñemos un estuche genial para QuizzPi …
Diseñemos un estuche genial para QuizzPi …
Diseñemos un estuche genial para QuizzPi …

Lo primero que necesitamos es saber cuánto espacio necesitamos para incluir hardware (Raspberry + pantalla + botones + batería + cables). Teniendo en cuenta las partes descritas en el paso anterior realicé un diseño 3D de la carcasa utilizando el diseñador 3D online gratuito Tinkercad (Ver). Si quieres imprimir el modelo 3D de la carcasa puedes descargarlo desde el archivo adjunto QuizzPi case.stl.

En ese momento tuve que decidir si imprimir el modelo en mi impresora 3D o hacerlo de madera contrachapada. Pensé que siendo para mi hija podría pasar un poco más de tiempo haciéndolo con madera contrachapada. Así que obtengo los planos del modelo 3D y corto la madera.

El siguiente paso es pegar las piezas en caliente …

Paso 3: Hacer la caja de madera contrachapada …

Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …
Haciendo la caja de madera contrachapada …

Una vez que corté todas las partes de madera contrachapada de los planos, el siguiente paso es pegarlas en caliente. En algunas juntas pongo refuerzos para hacer la caja más fuerte. En el bisel dibujo con el lápiz el contorno de la pantalla LCD y lo recorto. Hago cuatro agujeros para los tornillos. Si usa una pantalla diferente, debe modificar esta cosa.

La puerta trasera se cierra con dos imanes pegados a la puerta y dos imanes pegados a la caja, por lo que evito el uso de bisagras.

El caso QuizzPi está terminado …

Paso 4: Cableado de pines GPIO, montaje de Raspberry + LCD …

Cableado de pines GPIO, montaje de Raspberry + LCD …
Cableado de pines GPIO, montaje de Raspberry + LCD …
Cableado de pines GPIO, montaje de Raspberry + LCD …
Cableado de pines GPIO, montaje de Raspberry + LCD …
Cableado de pines GPIO, montaje de Raspberry + LCD …
Cableado de pines GPIO, montaje de Raspberry + LCD …

Necesitamos conectar los botones a la Raspberry Pi para que pueda saber qué botón se presionó. Los botones están conectados a los pines GPIO. Necesitamos cuatro pines IN GPIO más un pin Gnd GPIO. Usé GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) y 39 (Gnd) para los botones rojo, amarillo, verde y azul respectivamente. Esta pantalla tiene una interfaz SPI. Esto significa que está conectado al banco GPIO, así que primero coloqué los cables terminados en cuadrados en los pines de los botones y luego conecté la pantalla LCD.

El siguiente paso fue montar la carcasa Raspberry + LCD + en el bisel. Usé los propios tornillos de la carcasa de la Raspberry Pi.

El QuizzPi está montado …

Paso 5: Batería, botones, interruptor y conector USB …

Batería, botones, interruptor y conector USB …
Batería, botones, interruptor y conector USB …
Batería, botones, interruptor y conector USB …
Batería, botones, interruptor y conector USB …
Batería, botones, interruptor y conector USB …
Batería, botones, interruptor y conector USB …

Usé Tinkercad nuevamente para diseñar un clip para sujetar el banco de energía a la carcasa. Imprimí el clip con mi impresora 3D y lo uní al estuche con pistola de pegamento caliente. Adjunto el archivo.stl del modelo a continuación. Si no tiene acceso a una impresora 3D, puede unirse al banco de energía con cinta de velcro.

El siguiente paso es conectar el interruptor de encendido / apagado entre el banco de energía y la Raspberry Pi. Tomé un cable USB y corté solo el cable de alimentación, luego soldé un extremo del cable a un pin del interruptor de encendido / apagado y el otro extremo del cable al otro pin del interruptor de encendido / apagado. Entonces, cuando el interruptor de apagado no pasa por el interruptor y la Raspberry está apagada y cuando el interruptor de encendido pasa por el interruptor y la Raspberry está encendida.

Cuando el banco de energía se descarga es un problema sacarlo del estuche para cargarlo, así que no quería sacarlo cada vez para cargarlo. El problema era que el puerto de carga del banco de energía es USC tipo C, y solo tenía el cable del banco de energía. Así que soldé dos conectores USB hembra y los puse en el estuche. El conector interior para conectar el cable del banco de energía y el conector exterior para conectar un cable de alimentación USB.

Colocar los botones y cablearlos fue fácil. Los botones tienen 2 pines, un pin de cada botón se conecta a un cable común que va a un pin GPIO de tierra, y el otro pin del botón se conecta a su respectivo pin GPIO de la frambuesa. El diagrama de cableado se muestra en el diagrama adjunto.

El sistema de sonido se basa en PAM8403, un amplificador de sonido económico. Es necesario porque el sonido que se obtiene del conector de Raspberry Pi no es demasiado potente para que funcione un altavoz. Necesita alimentarlo con 5v o más. En las imágenes adjuntas se puede ver cómo cablear el amplificador y el altavoz. Necesitamos un conector macho de 3,5 mm para conectarlo al conector de audio / video de Rapberry. Soldé 3 cables al conector: audio, video y tierra. El diagrama adjunto muestra qué pin son todos. Luego soldé un cable al interruptor de encendido / apagado para tomar energía y otro cable al cable de tierra del cable del banco de energía. Luego conecto los cables del altavoz a las salidas del amplificador. La parte fácil es asignar el sistema de sonido en el caso. Puedes ver en las imágenes.

QuizzPi está montado, en la última foto todavía podemos ver marcas de lápiz en la madera, pero es el momento del software … vamos a crear un pequeño motor de cuestionarios …

Paso 6: Imagen de Rasbian y programación del motor de cuestionarios …

Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …
Imagen de Rasbian y programación del motor de preguntas …

Pulsamos el botón de encendido. No pasa nada. ¡Ay Dios mío! ¡No funciona! ¿Qué puede estar mal? ¿Algún cable sin conexión? No se preocupe, necesitamos instalar una imagen en la tarjeta SD …

El motor de cuestionarios está escrito en Python 3, por lo que necesitamos una imagen de Raspbian con el compilador de Python instalado. En este punto tenemos que tener en cuenta el tipo de pantalla que tenemos instalada. Mi pantalla es la interfaz SPI y el vendedor ofrece una imagen de Raspbian con todos los controladores de pantalla instalados. Esta versión de Raspbian también tiene un motor Python. Puede descargar esta imagen en este enlace.

Si tiene una pantalla HDMI o RCA, puede descargar la última imagen de Raspbian disponible en el sitio raspberrypi.org. Atención: necesita la versión Desktop Rasbian, así que evite descargar la imagen Lite Raspbian. Estas imágenes contienen el compilador de Python.

Para instalar la imagen en la tarjeta SD podemos utilizar cualquier aplicación. Yo uso Win32diskimager. Luego insertamos la tarjeta SD en la Raspberry y presionamos el interruptor de encendido / apagado. ¡Funciona! Ahora necesitamos crear un programa Python con el motor quizz.

El siguiente paso es descargar los archivos del motor de cuestionarios. He adjuntado el código fuente en el archivo QuizzPi.zip. Descargue la fuente y cree una carpeta en la Raspberry Pi:

# mkdir / home / pi / QuizzPi

y descomprima el archivo descargado en esta carpeta.

QuizzPi.zip contiene estos archivos:

  • QuizzPi.py: contiene el código
  • Archivos de imagen PNG: contiene una interfaz gráfica, puede cambiarlos para personalizarlos
  • Archivos de sonido MP3: puede cambiarlos para personalizarlos
  • losmejores.txt: contiene la tabla de puntajes altos, puede eliminarla para inicializar la tabla
  • Instrucciones.txt

No daré una explicación exhaustiva de cómo he programado el código del motor en Python porque es demasiado difícil para las personas sin conocimientos de programación. Solo necesitan guardar los archivos en la Raspberry. Las personas con conocimientos de programación podrán modificarlo sin explicación alguna;)

Las preguntas y respuestas provienen de una base de datos colaborativa de preguntas y respuestas llamada Open Trivia Database, que puede encontrar aquí. Puede cambiar la categoría y dificultad de las preguntas cambiando una línea en el archivo QuizzPi.py:

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

cambiando con la url obtenida del configurador de api

Diseñé las pantallas del juego en Photoshop, puedes modificarlas. Solo debes conservar algunas áreas blancas en la pantalla de preguntas, en la pantalla de resultados y en las pantallas de puntuaciones altas porque el motor del juego escribe en ellas.

También puedes personalizar los sonidos del juego. Solo debes cambiar los archivos.mp3 por otros que quieras, debes conservar los mismos nombres. Puedes obtener muchos sonidos de bases de datos en línea, yo obtengo minas de Free Sound Effects.

Ahora debes modificar tu Raspbian para ejecutar QuizzPi automáticamente. Puedes leer este artículo donde explica cómo hacerlo:

¡¡¡Hemos terminado!!!

Paso 7: demostración …

Image
Image

Para terminar este instructivo, puedes ver este video. Puedes ver que es fácil de usar y la dificultad de las preguntas depende de ti …

Editar: ¡video actualizado ahora con sonido!

Concurso de microcontroladores
Concurso de microcontroladores

Finalista en el Concurso de Microcontroladores

Recomendado: