Índice:

Tag de laser infravermelho com Raspberry Pi Zero: 6 etapas (com imagens)
Tag de laser infravermelho com Raspberry Pi Zero: 6 etapas (com imagens)

Vídeo: Tag de laser infravermelho com Raspberry Pi Zero: 6 etapas (com imagens)

Vídeo: Tag de laser infravermelho com Raspberry Pi Zero: 6 etapas (com imagens)
Vídeo: Essa é a solução para aquele seu vizinho bom de roda! 🤣 2024, Julho
Anonim
Tag de laser infravermelho com Raspberry Pi Zero
Tag de laser infravermelho com Raspberry Pi Zero

Este Instructable irá percorrer o processo de criação de um jogo Infrared Laser Tag usando um computador servidor de base e um Raspberry Pi zero para cada jogador. O projeto depende muito de uma conexão Wifi para se comunicar com o servidor, o que torna o Pi um ótimo candidato.

O servidor usado neste projeto era um computador desktop antigo com Linux. O computador não precisa ser nada especial e provavelmente poderia até ser executado a partir de um Raspberry Pi 3. O servidor e cada um dos pi zeros devem estar conectados à mesma rede durante o jogo.

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais

A descrição e alguns links para os materiais necessários são mostrados abaixo. A lista de materiais abaixo é para 3 armas.

  • Computador Servidor (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Cartão SD de pelo menos 4GB (3) Amazon
  • Transmissor IR LED (3)
  • Receptor IR (6) Amazon
  • LED vermelho (3)
  • LED azul (3)
  • LED verde (3)
  • Buzzer Passivo (3) Amazon
  • Botão (6)
  • Tela LCD 16x2 com adaptador I2C (3) Amazon
  • Pacote de bateria portátil (3) Amazon
  • Cabo USB Micro para Regular (3) Amazon
  • Transistor PN2222 (3)
  • Resistor 100Ω (3)
  • Resistor 1kΩ (9)

Itens opcionais:

  • Colete (3) Amazon
  • Extensão de cabo de fita (3) Amazon

Neste projeto, acabamos pegando o transmissor IR LED de um antigo conjunto de armas de laser tag que tinha um cone preto ao redor do transmissor para ajudar a estreitar o disparo de cada arma. No entanto, qualquer transmissor geral deve funcionar.

Além dos itens listados acima, as próprias armas laser foram impressas em 3D. Este projeto, portanto, também exigiria acesso a uma impressora 3D e filamento. No geral, para três armas, o total chegou a cerca de US $ 350.

Etapa 2: configuração do servidor

Configuração do servidor
Configuração do servidor
Configuração do servidor
Configuração do servidor
Configuração do servidor
Configuração do servidor

A primeira coisa necessária para configurar o servidor é instalar o Mosquitto MQTT Broker Service. Mosquitto é o serviço que fornece uma estrutura para a comunicação entre cada um dos dispositivos do jogo. Isso permite que o servidor envie mensagens para cada um dos Pis conectados ao serviço. No terminal, execute os seguintes comandos.

sudo apt-get update

sudo apt-get upgrade sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Algumas das GUI's para o servidor foram criadas usando um designer de GUI chamado Pygubu. Isso pode ser instalado executando:

pip3 install pygubu

Mais informações sobre pygubu podem ser encontradas em

Depois que o MQTT e o Pygubu estiverem instalados, crie um novo diretório e copie os arquivos anexados. O diretório deve incluir:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • inimigos.png
  • laser.jpg

Nota: As imagens anexas usadas neste projeto não foram criadas pela equipe de desenvolvimento e, portanto, não reivindicam a autoria.

Etapa 3: configuração do Raspberry Pi

Configuração do Raspberry Pi
Configuração do Raspberry Pi

Esta etapa precisará ser repetida em cada um dos Raspberry Pis.

1. Instale o sistema operacional

Primeiro, comece com uma nova instalação do Raspbian. Recomendamos usar a versão Lite, pois é menos para o Pi manipular, mas qualquer uma das versões deve funcionar bem. O download pode ser encontrado em

2. Instale MQTT

Em seguida, precisamos instalar o serviço do broker MQTT. Estaremos usando Mosquitto para isso. No terminal, execute os seguintes comandos.

sudo apt-get update

sudo apt-get upgrade sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Mosquitto é o serviço que fornece uma estrutura para a comunicação entre cada um dos dispositivos do jogo. Isso permite que o servidor envie mensagens para cada um dos Pis conectados ao serviço.

3. Instale as ferramentas I2C

O comando a seguir instalará bibliotecas que são usadas para a tela LCD.

sudo apt-get install -y python3-smbus i2c-tools

sudo apt-get install rpi.gpio -y

O endereço i2c pode precisar ser alterado no arquivo lcddriver.py. O endereço pode ser encontrado digitando o seguinte comando.

i2cdetect -y 1

4. Instale e configure o LIRC

Crie um novo diretório e baixe os arquivos anexados neste local.

A maioria dos navegadores de Internet não baixa arquivos sem extensões. Para contornar isso, dois dos arquivos foram carregados com extensões temporárias. Ambos "lircrc.deleteExtension" e "modules.deleteExtension" devem de fato ser sem extensão e os arquivos devem ser renomeados para "lircrc" e "módulos" após terem sido baixados com sucesso.

Esta etapa instala e configura as dependências do pacote Linux Infrared Remote Control (LIRC). Para obter mais informações, consulte o tutorial para configurar o LIRC em:

Primeiro instale a biblioteca e, em seguida, copie os arquivos incluídos em seus respectivos diretórios, conforme mostrado nos comandos abaixo. Finalmente, reinicie o serviço lircd.

sudo apt-get install python3-lirc -y

No diretório recém-criado, execute os seguintes comandos para mover os arquivos de configuração para seus locais corretos.

sudo mv lircd.conf hardware.conf lircrc lirc_options.conf / etc / lirc /

módulos sudo mv / etc /

Em seguida, reinicie o serviço lircd executando:

sudo /etc/init.d/lircd restart

Em seguida, edite o arquivo /boot/config.txt e adicione a seguinte linha

dtoverlay = lirc-rpi, gpio_in_pin = 18, gpio_out_pin = 25

Reinicie seu pi para permitir que as alterações tenham efeito.

sudo reboot

5. Habilite I2C e edite CLIENTE para cada jogador

A seguir, vamos habilitar a interface I2C. Isso pode ser feito usando

sudo raspi-config

e habilitar o I2C no menu "opções de interface".

6. Editar Player CLIENT e LTSERVER

O diretório do jogo agora deve incluir os quatro arquivos restantes.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • player.py

A última etapa da configuração do pi é atribuir a cada pi um número de CLIENTE e adicionar a localização do servidor. Isso é feito editando o arquivo "player.py" incluído para cada pi, de modo que todos tenham um número de CLIENTE diferente. O número do CLIENTE é atribuído na linha 3 de player.py. Atribua o primeiro pi como cliente "1", o segundo como "2" e o terceiro como cliente "3".

A linha LTSERVER deve ser alterada para o endereço IP do servidor. Isso é encontrado digitando 'ifconfig | grep "inet addr" 'no terminal do computador servidor.

Etapa 4: montagem da arma

Conjunto de arma
Conjunto de arma
Conjunto de arma
Conjunto de arma

Prossiga com a fiação de cada uma das armas de acordo com o diagrama de fiação e o esquema acima.

Cada um dos periféricos está conectado aos seguintes pinos GPIO no Pi Zero:

  • Campainha: GPIO5
  • Gatilho: GPIO26
  • Recarregar: GPIO12
  • Transmissor IR: GPIO25
  • Receptores IR: GPIO18
  • LED VERMELHO: GPIO17
  • LED VERDE: GPIO27
  • LED AZUL: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Veja o esquema para mais detalhes.

Se desejado, as armas a laser podem ser impressas em 3D usando os arquivos de modelo de etapas incluídos. Lembre-se de que dois dos arquivos "front1STL. STL" devem ser impressos.

Etapa 5: jogo

Jogo
Jogo
Jogo
Jogo
Jogo
Jogo

O jogo é iniciado executando o arquivo "ltag.py" no servidor. Feito isso, cada um dos jogadores pode se conectar ao servidor executando seu respectivo arquivo "player.py".

Observação: depois de conectar a bateria, pode levar até um minuto para que o pi seja inicializado.

Também pode ser útil adicionar um cron job que executa automaticamente o arquivo player.py assim que o pi é iniciado. Tivemos muita dificuldade em fazer isso funcionar e acabamos adicionando uma linha ao arquivo "/etc/rc.local" em cada um dos Pis para executar o arquivo "player.py". Isso permite que o jogo seja iniciado sem a necessidade de SSH no Pi para executar o script do jogador.

Uma vez que o jogo tenha sido iniciado com os jogadores prontos, uma GUI aparecerá que permite que algumas das configurações do jogo sejam configuradas. O jogo começa depois que o botão Iniciar é pressionado.

Após cada jogo, uma GUI final aparecerá com estatísticas sobre o jogo anterior, incluindo tags, porcentagens globais e duração do jogo.

Nota: Devido às limitações nas bibliotecas de software, as localizações das etiquetas do relatório de precisão não são representativas das etiquetas a laser reais. Na versão atual, a imagem do Relatório de precisão do jogador é puramente estética, na esperança de uma versão futura com implementação de localização de tag real.

Etapa 6: melhorias futuras

Melhorias Futuras
Melhorias Futuras
Melhorias Futuras
Melhorias Futuras

No geral, o projeto foi um grande sucesso. Ao longo do caminho, pensamos em alguns recursos adicionais que podem ser adicionados a uma edição futura.

  • Design de gatilho mais resistente para armas impressas em 3D
  • Encerrando o menu suspenso da GUI para exibir estatísticas de jogos anteriores
  • Mais receptores infravermelhos que podem ser anexados aos coletes dos jogadores
  • Modos de jogo adicionais que podem ser escolhidos na GUI do Pregame
  • Algoritmo de localização de tag mais preciso na página de estatísticas dos jogadores

Recomendado: