Tabla de contenido:

Etiqueta láser infrarroja con Raspberry Pi Zero: 6 pasos (con imágenes)
Etiqueta láser infrarroja con Raspberry Pi Zero: 6 pasos (con imágenes)

Video: Etiqueta láser infrarroja con Raspberry Pi Zero: 6 pasos (con imágenes)

Video: Etiqueta láser infrarroja con Raspberry Pi Zero: 6 pasos (con imágenes)
Video: VIDEO ATERRADOR PELÍCULA VHS #shorts #miedo #deepweb #paranormal 2024, Noviembre
Anonim
Etiqueta láser infrarroja con Raspberry Pi Zero
Etiqueta láser infrarroja con Raspberry Pi Zero

Este Instructable recorrerá el proceso para crear un juego de etiqueta láser infrarroja utilizando una computadora servidor base y un cero Raspberry Pi para cada jugador. El proyecto depende en gran medida de una conexión Wifi para comunicarse con el servidor, lo que hace que Pi sea un gran candidato.

El servidor utilizado en este proyecto era una vieja computadora de escritorio con Linux. La computadora no necesita ser nada especial, y probablemente incluso podría ejecutarse desde una Raspberry Pi 3. El servidor y cada uno de los cero pi deben estar conectados a la misma red durante el juego.

Paso 1: Materiales

Materiales
Materiales
Materiales
Materiales

La descripción y algunos enlaces de los materiales necesarios se muestran a continuación. La siguiente lista de materiales es para 3 pistolas.

  • Computadora servidor (1)
  • Frambuesa Pi Zero W (3) Adafruit
  • Tarjeta SD de al menos 4GB (3) Amazon
  • Transmisor de LED IR (3)
  • Receptor de infrarrojos (6) Amazon
  • LED rojo (3)
  • LED azul (3)
  • LED verde (3)
  • Zumbador pasivo (3) Amazon
  • Botón pulsador (6)
  • Pantalla LCD 16x2 con adaptador I2C (3) Amazon
  • Paquete de batería portátil (3) Amazon
  • Cable USB micro a normal (3) Amazon
  • Transistor PN2222 (3)
  • Resistencia de 100Ω (3)
  • Resistencia de 1kΩ (9)

Elementos opcionales:

  • Chaleco (3) Amazon
  • Extensión de cable plano (3) Amazon

En este proyecto, terminamos tomando el transmisor LED de infrarrojos de un conjunto antiguo de pistolas láser que tenían un cono negro alrededor del transmisor para ayudar a reducir el disparo de cada arma. Sin embargo, cualquier transmisor general debería funcionar.

Además de los elementos enumerados anteriormente, las pistolas láser se imprimieron en 3D. Por lo tanto, este proyecto también requeriría acceso a una impresora 3D y un filamento. En general, por tres armas, el total fue de unos 350 dólares.

Paso 2: configuración del servidor

Configuración del servidor
Configuración del servidor
Configuración del servidor
Configuración del servidor
Configuración del servidor
Configuración del servidor

Lo primero que se necesita para configurar el servidor es instalar Mosquitto MQTT Broker Service. Mosquitto es el servicio que proporciona un marco de comunicación entre cada uno de los dispositivos del juego. Esto permite que el servidor envíe mensajes a cada uno de los Pis conectados al servicio. En la terminal, ejecute los siguientes 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

Algunas de las GUI para el servidor se crearon utilizando un diseñador de GUI llamado Pygubu. Esto se puede instalar ejecutando:

pip3 instalar pygubu

Puede encontrar más información sobre pygubu en

Una vez que MQTT y Pygubu estén instalados, cree un nuevo directorio y copie los archivos adjuntos. El directorio debe incluir:

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

Nota: Las imágenes adjuntas utilizadas en este proyecto no fueron creadas por el equipo de desarrollo y, por lo tanto, no reclaman la autoría.

Paso 3: Configuración de Raspberry Pi

Configuración de Raspberry Pi
Configuración de Raspberry Pi

Este paso deberá repetirse en cada uno de los Raspberry Pis.

1. Instale el sistema operativo

Primero, comience con una nueva instalación de Raspbian. Recomendamos usar la versión Lite ya que es menos para que la maneje el Pi, pero cualquiera de las versiones debería funcionar bien. La descarga se puede encontrar en

2. Instale MQTT

A continuación, debemos instalar el servicio de agente de MQTT. Usaremos Mosquitto para esto. En la terminal, ejecute los siguientes 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 es el servicio que proporciona un marco de comunicación entre cada uno de los dispositivos del juego. Esto permite que el servidor envíe mensajes a cada uno de los Pis conectados al servicio.

3. Instale las herramientas I2C

El siguiente comando instalará las bibliotecas que se utilizan para la pantalla LCD.

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

sudo apt-get install rpi.gpio -y

Es posible que deba cambiar la dirección i2c en el archivo lcddriver.py. La dirección se puede encontrar ingresando el siguiente comando.

i2cdetect -y 1

4. Instale y configure LIRC

Cree un nuevo directorio y descargue los archivos adjuntos a esta ubicación.

La mayoría de los navegadores de Internet no descargarán archivos sin extensiones. Para solucionar esto, dos de los archivos se cargaron con extensiones temporales. Tanto "lircrc.deleteExtension" como "modules.deleteExtension" deberían ser sin extensión y los archivos deberían cambiarse de nombre a "lircrc" y "módulos" después de que se hayan descargado correctamente.

Este paso instala y configura las dependencias para el paquete de control remoto por infrarrojos de Linux (LIRC). Para obtener más información, consulte el tutorial para configurar LIRC en:

Primero instale la biblioteca, luego copie los archivos incluidos en sus respectivos directorios como se muestra en los comandos a continuación. Finalmente, reinicie el servicio lircd.

sudo apt-get install python3-lirc -y

Desde el directorio recién creado, ejecute los siguientes comandos para mover los archivos de configuración a sus ubicaciones correctas.

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

módulos sudo mv / etc /

Luego reinicie el servicio lircd ejecutando:

sudo /etc/init.d/lircd reiniciar

A continuación, edite el archivo /boot/config.txt y agregue la siguiente línea

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

Reinicie su pi para permitir que los cambios surtan efecto.

sudo reiniciar

5. Habilite I2C y edite CLIENTE para cada jugador

A continuación, habilitaremos la interfaz I2C. Esto se puede hacer usando

sudo raspi-config

y habilitando el I2C en el menú "Opciones de interfaz".

6. Edite Player CLIENT y LTSERVER

El directorio del juego ahora debería incluir los cuatro archivos restantes.

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

El último paso para configurar el pi es asignar a cada pi un número de CLIENTE y agregar la ubicación del servidor. Esto se hace editando el archivo "player.py" incluido para cada pi para que todos tengan un número de CLIENTE diferente. El número de CLIENTE se asigna en la línea 3 de player.py. Asigne el primer pi como cliente "1", el segundo como "2" y el tercero como cliente "3".

La línea LTSERVER debe cambiarse a la dirección IP del servidor. Esto se encuentra escribiendo 'ifconfig | grep "inet addr" 'en la terminal de la computadora servidor.

Paso 4: Montaje de la pistola

Ensamblaje de pistola
Ensamblaje de pistola
Ensamblaje de pistola
Ensamblaje de pistola

Proceda a cablear cada una de las pistolas de acuerdo con el diagrama de cableado y el esquema anterior.

Cada uno de los periféricos está conectado a los siguientes pines GPIO en el Pi Zero:

  • Zumbador: GPIO5
  • Activador: GPIO26
  • Recargar: GPIO12
  • Transmisor de infrarrojos: GPIO25
  • Receptores de infrarrojos: GPIO18
  • LED ROJO: GPIO17
  • LED VERDE: GPIO27
  • LED AZUL: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Consulte el esquema para obtener más detalles.

Si lo desea, las pistolas láser se pueden imprimir en 3D utilizando los archivos de modelo de pasos incluidos. Tenga en cuenta que se deben imprimir dos de los archivos "front1STL. STL".

Paso 5: Juego

Como se Juega
Como se Juega
Como se Juega
Como se Juega
Como se Juega
Como se Juega

El juego se inicia ejecutando el archivo "ltag.py" en el servidor. Una vez hecho esto, cada uno de los jugadores puede conectarse al servidor ejecutando su respectivo archivo "player.py".

Nota: Después de enchufar la batería, el pi puede tardar hasta un minuto en arrancar.

También puede ser útil agregar un trabajo cron que ejecute automáticamente el archivo player.py una vez que se inicie pi. Nos costó mucho hacer que esto funcionara y terminamos agregando una línea al archivo "/etc/rc.local" en cada uno de los Pis para ejecutar el archivo "player.py". Esto permite que el juego se inicie sin tener que SSH en el Pi para ejecutar el script del jugador.

Una vez que el juego se ha iniciado con los jugadores listos, aparecerá una GUI que permite configurar algunas de las configuraciones del juego. El juego comienza después de que se presiona el botón Inicio.

Después de cada juego, aparecerá una GUI final con estadísticas sobre el juego anterior, incluidas las etiquetas, los porcentajes globales y la duración del juego.

Nota: Debido a las limitaciones de las bibliotecas de software, las ubicaciones de las etiquetas del informe de precisión no son representativas de las etiquetas láser reales. En la versión actual, la imagen del Informe de precisión del jugador es puramente estética con la esperanza de una versión futura con implementación real de la ubicación de la etiqueta.

Paso 6: Mejoras futuras

Mejoras futuras
Mejoras futuras
Mejoras futuras
Mejoras futuras

En general, el proyecto fue un gran éxito. En el camino, pensamos en algunas características adicionales que pueden agregarse a una edición futura.

  • Diseño de gatillo más resistente para las pistolas impresas en 3D
  • Finalizar el menú desplegable de la GUI para mostrar estadísticas de juegos anteriores
  • Más receptores de infrarrojos que se pueden conectar a los chalecos de los jugadores
  • Modos de juego adicionales que se pueden elegir en la GUI previa al juego
  • Algoritmo de ubicación de etiqueta más preciso en la página de estadísticas de los jugadores

Recomendado: