Simples Raspberry Pi Game Pad para jogo de captura de bola – (Parte 36/38)

O Raspberry pi é um minicomputador projetado em uma única placa com todos os componentes essenciais necessários para executar um sistema operacional. A placa é fornecida com um conector RCA que pode ser usado para conectá-la diretamente a uma tela de TV baseada nos padrões PAL e NTSC. A placa também possui uma saída de conector HDMI que pode ser usada para conectar a placa a uma TV HD. Também se pode usar login remoto para acessar o Raspberry pi e visualize a GUI (Text User Interface) na tela do PC. A placa Raspberry pi também é muito fácil de interagir com dispositivos ou circuitos externos por meio de suas pinagens. Isso torna o Raspberry pi uma plataforma adequada para jogar e desenvolver jogos interessantes.

Este artigo discute como desenvolver um jogo gráfico simples usando a linguagem HTML5 e JavaScript e fazer a interface com um hardware de game pad externo personalizado conectado aos pinos da placa Raspberry pi.
((wysiwyg_imageupload:11064:))

Existem oito pinos IO de uso geral nos conectores de 13 * 2 pinos da placa Raspberrypi e entre eles quatro pinos foram selecionados como entrada e os quatro pinos restantes como saída. Os pinos de entrada são conectados ao botão e puxados para baixo usando resistores de 1K. Os pinos de saída são conectados aos LEDs através de outro conjunto de resistores de 1K. Para este projeto, a placa Raspberry pi é carregada com Ubuntu e é acessado remotamente usando VNC. Para acessar os pinos que saem do controlador Broadcom a biblioteca C “bcm2835” foi baixado e instalado.

Este jogo contém quatro bolas cujo movimento pode ser controlado com a ajuda das quatro teclas do gamepad. O jogo pode ser aberto em uma janela do navegador e jogado com a ajuda de quatro botões conectados aos pinos do tabuleiro Raspberry pi. É necessário instalar o navegador “Iceweasel” que é a versão Debian do Firefox. Os comandos a seguir podem instalar o software no Raspberry pi;
sudo apt-get atualização
sudo apt-get install iceweaseeu
O jogo é executado em uma janela do navegador e se comunica com o game pad por meio de um Named Pipe ou FIFO. Existem vários processos em execução que podem ler o game pad e gravar os comandos necessários no FIFO para controlar o jogo. O JavaScript escrito no código do jogo simplesmente lê o FIFO para os dados de controle de entrada.
O processo pai aqui cria quatro processos filhos que são dedicados a cada uma das teclas do gamepad. Sempre que uma tecla é pressionada ou liberada, eles geram um sinal e o enviam ao processo pai com um valor. Este método de enviando um sinal com valor ajuda o processo pai a identificar qual tecla foi pressionada ou liberada.
Diagrama de blocos do gamepad Raspberry pi
Fig. 2: Diagrama de blocos do gamepad Raspberry Pi
O NAMED PIPE ou FIFO precisa ser criado usando o seguinte comando no mesmo diretório onde existem o executável para o código do gamepad escrito em C e os arquivos do jogo HTML escritos em HTML5 e JavaScript.
mkfifo xyz
O FIFO também pode ser criado usando o próprio código adicionando a função mkfifo , open conforme explicado em um artigo anterior documentação.
Assim que o processo pai detecta um pressionamento de tecla a partir do valor recebido junto com o sinal, ele simplesmente escreve um caractere específico correspondente a essa chave no NAMED PIPE ou FIFO. O jogo HTML lerá continuamente o FIFO a cada 500 ms para obter a entrada. Portanto, tanto o código C quanto o arquivo HTML precisam estar em estado de execução. O hardware do gamepad se comunica apenas com o código C e o código C se comunica com o JavaScript usando o NAMED PIPE.
O usuário pode gravar dados no arquivo temporário a partir do próprio terminal usando o comando 'echo' conforme mostrado no exemplo a seguir.
eco abcdef >> /tmp/my_fifo
O processo pai de escrita FIFO é escrito de tal forma que escreverá alguns caracteres específicos no FIFO em resposta aos sinais recebidos dos processos filhos. Os comandos que serão escritos no FIFO para controle do movimento das bolas no jogo estão listados abaixo;
você -> pega a bola na primeira coluna
r -> pegar a bola na segunda coluna
l -> pegar a bola na terceira coluna
d -> pegar a bola na quarta coluna
Esses comandos podem ser escritos no FIFO com a ajuda da função system .

sistema ( “eco você >> xyz );

sistema(“echo r >> xyz );

sistema ( “eco l >> xyz );

sistema( “eco d >> xyz );
Mesmo se houver qualquer pressionamento de tecla, o processo pai grava um caractere 'x' a cada 500ms para manter o JavaScript em execução.

Pontuação do jogo de captura de bola na tela usando Raspberry pi

Fig. 3: Pontuação do jogo de pegar bola na tela usando Raspberry Pi

Diagramas de circuito

Diagrama de circuito de jogo simples de framboesa Pi para jogo de captura de bola

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.