QuizzPi, um jogo de curiosidades do Raspberry Pi com Python: 7 etapas (com imagens)
QuizzPi, um jogo de curiosidades do Raspberry Pi com Python: 7 etapas (com imagens)
Anonim
QuizzPi, um jogo de curiosidades do Raspberry Pi com Python
QuizzPi, um jogo de curiosidades do Raspberry Pi com Python
QuizzPi, um jogo de curiosidades do Raspberry Pi com Python
QuizzPi, um jogo de curiosidades do Raspberry Pi com Python

QuizzPi é um jogo de trivia tipo arcade. O QuizzPi nasceu porque tive a necessidade de divertir a minha filha. Ela tem 7 anos e já exige o uso de novas tecnologias, a ideia era criar algo que fosse divertido e educativo.

Requisitos do projeto:

  • Fácil de usar
  • Portátil
  • Fácil de atualizar o conjunto de perguntas e respostas
  • Tabela de altas pontuações

Vários itens são configuráveis. Você pode criar seu próprio banco de dados de perguntas / respostas ou você pode usar um dos vários servidores que oferece um banco de dados, onde você decide o tipo de perguntas, difícil,… Eu criei para minha filha um banco de dados de perguntas de primeiro grau, mas podemos alterar a configuração para obter perguntas triviais de um servidor oline. Esta versão instrutível obtém as perguntas de perguntas e respostas colaborativas, o Open Trivia Database. Eu escolhi questões de conhecimento geral, mas você pode escolher questões sobre filmes, esportes ou religião.

Peço desculpas pelo meu pobre inglês. Sou espanhol, mas preferi criar este instrutível em inglês para que possa chegar a mais pessoas.

Vamos lá!

Etapa 1: você precisa de alguns materiais e ferramentas …

Você precisa de alguns materiais e ferramentas …
Você precisa de alguns materiais e ferramentas …

Você tem a maior parte do material em casa com certeza …

  • Raspberry Pi 2/3 com um cartão SD de 8 Gb ou mais ($ 35)
  • LCD Raspberry Pi de 3,5 polegadas com estojo (11 $). Veja (isso é opcional, você pode usar qualquer monitor que tiver, você só precisa modificar o caso do QuizzPi para ele)
  • Baterias. Você pode usar um banco de energia ou uma bateria diy 18650 (5 $). No meu caso, usei um banco de energia Aukey 5000mah (12 $). Ver
  • Quatro botões de arcade. Tenho estes em casa (3 $, 12 botões por 10 $). Ver
  • Um botão liga / desliga (0,25 $). Ver
  • Dois conectores USB (0,50 $)
  • Um cabo USB / micro USB
  • Um alto-falante barato (opcional) ($ 0,25). Ver
  • Um amplificador PAM8403 (opcional) ($ 0,80). Ver
  • Alguns fios para ligar botões, conector USB e interruptor liga / desliga para pinos GPIO (1 $?)
  • Quatro ímãs de neodímio ou você pode usar qualquer coisa para fechar a porta dos fundos. Ver
  • Madeira compensada. Usei compensado de 5 mm, mas você pode usar qualquer um que tiver em casa (2 $)

Você também precisa de algumas ferramentas …

  • Utilitários de solda
  • Chaves de fenda
  • Pistola de cola quente
  • Impressora 3D (opcional)

Vamos lá!

Etapa 2: vamos projetar um caso legal do QuizzPi …

Vamos projetar um caso legal do QuizzPi …
Vamos projetar um caso legal do QuizzPi …
Vamos projetar um caso legal do QuizzPi …
Vamos projetar um caso legal do QuizzPi …

A primeira coisa que precisamos é saber quanto espaço precisamos para incluir o hardware (Raspberry + tela + botões + bateria + fios). Levando em consideração as partes descritas na etapa anterior, fiz um design 3D da caixa usando o designer 3D online gratuito Tinkercad (ver)..stl.

Naquele momento, tive que decidir se imprimiria o modelo na minha impressora 3D ou em compensado. Achei que, sendo para minha filha, eu poderia ficar um pouco mais de tempo fazendo de compensado. Pego os planos do modelo 3D e corto a madeira.

A próxima etapa é colar as peças com cola quente …

Etapa 3: fazendo a caixa de madeira compensada …

Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …
Fazendo a caixa de madeira compensada …

Depois de cortar todas as partes de madeira compensada das plantas, o próximo passo é colá-las com cola quente. Em algumas junções coloquei reforços para tornar a caixa mais forte. Na moldura, desenho com o lápis o contorno da tela LCD e recorto. Eu faço quatro furos para os parafusos. Se você usar uma tela diferente, você deve modificar isso.

A porta traseira fecha com dois ímãs colados na porta e dois ímãs colados na caixa, então evito o uso de dobradiças.

O caso QuizzPi está concluído …

Etapa 4: Fiação dos pinos GPIO, montagem do Raspberry + LCD …

Fiação de pinos GPIO, montagem Raspberry + LCD …
Fiação de pinos GPIO, montagem Raspberry + LCD …
Fiação de pinos GPIO, montagem Raspberry + LCD …
Fiação de pinos GPIO, montagem Raspberry + LCD …
Fiação de pinos GPIO, montagem Raspberry + LCD …
Fiação de pinos GPIO, montagem Raspberry + LCD …

Precisamos conectar os botões ao Raspberry Pi para que ele possa saber quais botões foram pressionados. Os botões são conectados aos pinos GPIO. Precisamos de quatro pinos IN GPIO mais um pino Gnd GPIO. Usei GPIO pino 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) e 39 (Gnd) para os botões vermelho, amarelo, verde e azul, respectivamente. Esta tela possui interface SPI. Isso significa que ele está conectado ao banco GPIO, então primeiro coloquei os fios terminados em quadrados nos pinos dos botões e depois conectei a tela LCD.

O próximo passo foi montar a caixa Raspberry + LCD + no painel. Usei os próprios parafusos da capa do Raspberry Pi.

O QuizzPi está montado…

Etapa 5: bateria, botões, interruptor e conector USB …

Bateria, botões, interruptor e conector USB …
Bateria, botões, interruptor e conector USB …
Bateria, botões, interruptor e conector USB …
Bateria, botões, interruptor e conector USB …
Bateria, botões, interruptor e conector USB …
Bateria, botões, interruptor e conector USB …

Usei o Tinkercad novamente para projetar um clipe para prender o banco de potência ao gabinete. Imprimi o clipe com a minha impressora 3D e juntei à caixa com a pistola de cola quente. Anexei o arquivo.stl do modelo abaixo. Se não tiver acesso a uma impressora 3D você pode juntar o banco de energia com fita velcro.

O próximo passo é conectar o botão liga / desliga entre o banco de energia e o Raspberry Pi. Peguei um cabo USB e cortei apenas o fio de alimentação, depois soldei uma extremidade do fio a um pino do botão liga / desliga e a outra ponta do fio ao outro pino do botão liga / desliga. Portanto, quando o interruptor de alimentação não passa pelo interruptor e o Raspberry está desligado e quando o interruptor de alimentação é ligado e o Raspberry está ligado.

Quando o banco de energia descarrega é um problema tirar do gabinete para carregá-lo, então eu não queria tirá-lo toda vez para carregar. O problema era que a porta de carga do banco de potência é USC tipo C e eu só tinha o cabo do banco de potência. Soldei dois conectores USB fêmeas e coloquei no gabinete. O conector interno para conectar o cabo do banco de alimentação e o conector externo para conectar um cabo de alimentação USB.

Colocar os botões e ligá-los foi fácil. Os botões têm 2 pinos, um pino de cada botão se conecta a um cabo comum que vai para um pino GPIO aterrado, e o outro pino do botão se conecta ao seu respectivo pino GPIO do framboesa. O diagrama de fiação é mostrado no diagrama anexo.

O sistema de som é baseado no PAM8403, um amplificador de som barato. É necessário porque o som que sai da tomada do Raspberry Pi não é muito potente para fazer um alto-falante funcionar. Você precisa alimentá-lo com 5v ou mais. Nas imagens anexas você pode ver como conectar o amplificador e o alto-falante. Precisamos de um conector macho de 3,5 mm para conectar ao conector de áudio / vídeo do Rapberry. Soldei 3 fios ao conector: áudio, vídeo e aterramento. O diagrama em anexo mostra o que é o pino de todos. Em seguida, soldei um fio ao interruptor liga / desliga para obter energia e outro fio ao fio terra do cabo do banco de energia. Então eu conecto os fios do alto-falante às saídas do amplificador. A parte fácil é alocar o sistema de som no case. Você pode ver nas imagens.

O QuizzPi está montado, na última foto ainda podemos ver marcas de lápis na madeira, mas é hora do software … vamos criar um minúsculo motor de quiz …

Etapa 6: imagem Rasbian e programação do mecanismo de teste …

Imagem Rasbian e programação do mecanismo de teste …
Imagem Rasbian e programação do mecanismo de teste …
Imagem Rasbian e programação do mecanismo de teste …
Imagem Rasbian e programação do mecanismo de teste …
Imagem Rasbian e programação do motor de teste …
Imagem Rasbian e programação do motor de teste …
Imagem Rasbian e programação do mecanismo de teste …
Imagem Rasbian e programação do mecanismo de teste …

Pressionamos o botão liga / desliga. Nada acontece. Oh meu Deus! Não funciona! O que pode estar errado? Algum cabo sem conexão? Não se preocupe, precisamos instalar uma imagem no cartão SD …

O mecanismo de teste é escrito em Python 3, portanto, precisamos de uma imagem Raspbian com o compilador Python instalado. Neste ponto, devemos levar em consideração o tipo de tela que instalamos. Minha tela é uma interface SPI, e o vendedor dá uma imagem Raspbian com todos os drivers de tela instalados. Esta versão do Raspbian também possui mecanismo Python. Você pode baixar esta imagem neste link.

Se você tem uma tela HDMI ou RCA você pode baixar a última imagem do Raspbian disponível no site raspberrypi.org. Atenção: você precisa da versão Desktop Rasbian, por isso evite baixar a imagem Lite Raspbian. Esta imagem contém o compilador Python.

Para instalar a imagem no cartão SD podemos usar qualquer aplicativo. Eu uso o Win32diskimager. Em seguida, inserimos o cartão SD no Raspberry e pressionamos o botão liga / desliga. Funciona! Agora precisamos criar um programa Python com o motor quizz.

O próximo passo é baixar os arquivos do mecanismo de teste. Anexei o código-fonte no arquivo QuizzPi.zip. Baixe o código-fonte e crie uma pasta no Raspberry Pi:

# mkdir / home / pi / QuizzPi

e descompacte o arquivo baixado nesta pasta.

QuizzPi.zip contém estes arquivos:

  • QuizzPi.py - contém o código
  • Arquivos de imagem-p.webp" />
  • Arquivos de som MP3 - você pode alterar para personalizar
  • losmejores.txt - contém a tabela de recordes, você pode excluí-lo para inicializar a tabela
  • Instruções.txt

Não vou dar uma explicação exaustiva de como programei o código do motor em Python porque é muito difícil para pessoas sem conhecimento de programação. Eles só precisam salvar os arquivos no Raspberry. Pessoas com conhecimento de programação serão capazes de modificá-lo sem qualquer explicação;)

As perguntas e respostas são de um banco de dados colaborativo de perguntas e respostas chamado Open Trivia Database, que você pode encontrar aqui. Você pode alterar a categoria e dificuldade das questões mudando uma linha no arquivo QuizzPi.py:

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

alterando com a url obtida do configurador de API

Eu projetei as telas do jogo no Photoshop, você pode modificá-las. Você só deve preservar algumas áreas em branco na tela da pergunta, na tela de resultados e nas telas de altas pontuações porque o motor do jogo escreve nelas.

Você também pode personalizar os sons do jogo. Você só deve alterar os arquivos.mp3 por outros que você deseja, você deve preservar os mesmos nomes. Você pode obter muitos sons de bancos de dados online, eu recebo minas do Free Sound Effects.

Agora você deve modificar seu Raspbian para executar o QuizzPi automaticamente. Você pode ler este artigo onde explica como fazer isso:

Terminamos!!!

Etapa 7: Demonstração …

Image
Image

Para terminar este instrutível você pode ver este vídeo. Você pode ver que é fácil de usar e a dificuldade das perguntas depende de você …

Editar: vídeo atualizado agora com som!

Concurso de Microcontroladores
Concurso de Microcontroladores

Vice-campeão no concurso de microcontroladores

Recomendado: