Taula de continguts:

Etiqueta làser d'infrarojos amb Raspberry Pi Zero: 6 passos (amb imatges)
Etiqueta làser d'infrarojos amb Raspberry Pi Zero: 6 passos (amb imatges)

Vídeo: Etiqueta làser d'infrarojos amb Raspberry Pi Zero: 6 passos (amb imatges)

Vídeo: Etiqueta làser d'infrarojos amb Raspberry Pi Zero: 6 passos (amb imatges)
Vídeo: ✅ ✅ DISPOSITIVO DESCONOCIDO✅ ✅ SOLUCION DEFINITIVA 🔊🔊 2024, Juliol
Anonim
Etiqueta làser d'infrarojos amb Raspberry Pi Zero
Etiqueta làser d'infrarojos amb Raspberry Pi Zero

Aquest instructiu recorrerà el procés per crear un joc d’etiquetes làser d’infrarojos mitjançant un ordinador servidor base i un zero de Raspberry Pi per a cada jugador. El projecte depèn en gran mesura d’una connexió Wifi per comunicar-se amb el servidor, cosa que fa del Pi un gran candidat.

El servidor utilitzat en aquest projecte era un antic ordinador de sobretaula amb Linux. L’ordinador no necessita ser especial, i fins i tot es podria executar des d’un Raspberry Pi 3. El servidor i cadascun dels pi zero han d’estar connectats a la mateixa xarxa durant el joc.

Pas 1: materials

Materials
Materials
Materials
Materials

A continuació es mostren la descripció i alguns enllaços dels materials necessaris. La llista de materials següent és per a tres canons.

  • Ordinador servidor (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Targeta SD de 4 GB com a mínim (3) Amazon
  • Transmissor LED IR (3)
  • Receptor IR (6) Amazon
  • LED vermell (3)
  • LED blau (3)
  • LED verd (3)
  • Passive Buzzer (3) Amazon
  • Polsador (6)
  • Pantalla LCD 16x2 amb adaptador I2C (3) Amazon
  • Bateria portàtil (3) Amazon
  • Cable USB micro a normal (3) Amazon
  • PN2222 Transistor (3)
  • Resistència de 100Ω (3)
  • Resistència d'1 kΩ (9)

Elements opcionals:

  • Armilla (3) Amazon
  • Extensió de cable de cinta (3) Amazon

En aquest projecte, vam acabar prenent el transmissor LED IR d’un antic joc de pistoles amb etiqueta làser que tenien un con negre al voltant del transmissor per ajudar a reduir el tret de cada arma. Tot i això, qualsevol transmissor general hauria de funcionar.

A més dels elements enumerats anteriorment, les pròpies pistoles làser es van imprimir en 3D. Per tant, aquest projecte també requeriria l'accés a una impressora 3D i un filament. En general, per a tres canons, el total va arribar als 350 dòlars.

Pas 2: Configuració del servidor

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

El primer que cal per configurar el servidor és instal·lar el servei de broker Mosquitto MQTT. Mosquitto és el servei que proporciona un marc per a la comunicació entre cadascun dels dispositius del joc. Això permet al servidor enviar missatges a cadascun dels Pis connectats al servei. Al terminal, executeu les ordres següents.

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

Algunes de les GUI del servidor es van crear mitjançant un dissenyador de GUI anomenat Pygubu. Això es pot instal·lar executant:

pip3 instal·la pygubu

Podeu trobar més informació sobre pygubu a

Un cop instal·lats MQTT i Pygubu, creeu un directori nou i copieu els fitxers adjunts. El directori ha d'incloure:

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

Nota: Les imatges adjuntes utilitzades en aquest projecte no les ha creat l’equip de desenvolupament i, per tant, no reclama l’autoria.

Pas 3: Configuració de Raspberry Pi

Configuració de Raspberry Pi
Configuració de Raspberry Pi

Aquest pas s’haurà de repetir a cadascun dels Raspberry Pis.

1. Instal·leu el sistema operatiu

Primer, comenceu amb una nova instal·lació de Raspbian. Us recomanem que utilitzeu la versió Lite, ja que el Pi no pot manejar-la, però qualsevol versió hauria de funcionar bé. La descàrrega es pot trobar a

2. Instal·leu MQTT

A continuació, hem d’instal·lar el servei d’agent MQTT. Utilitzarem Mosquitto per a això. Al terminal, executeu les ordres següents.

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 és el servei que proporciona un marc per a la comunicació entre cadascun dels dispositius del joc. Això permet al servidor enviar missatges a cadascun dels Pis connectats al servei.

3. Instal·leu Eines I2C

L'ordre següent instal·larà les biblioteques que s'utilitzen per a la pantalla LCD.

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

sudo apt-get install rpi.gpio -y

És possible que s’hagi de canviar l’adreça i2c al fitxer lcddriver.py. Es pot trobar l'adreça introduint l'ordre següent.

i2cdetect -y 1

4. Instal·leu i configureu LIRC

Creeu un directori nou i descarregueu els fitxers adjunts a aquesta ubicació.

La majoria dels navegadors d’Internet no baixaran fitxers sense extensions. Per solucionar-ho, es van penjar dos dels fitxers amb extensions temporals. Tant el "lircrc.deleteExtension" com el "modules.deleteExtension" no haurien de tenir extensió i els fitxers haurien de canviar-se el nom a "lircrc" i "modules" després de descarregar-los correctament.

Aquest pas instal·la i configura les dependències del paquet Linux Infrared Remote Control (LIRC). Per obtenir més informació, consulteu el tutorial per configurar LIRC a:

Primer instal·leu la biblioteca i, a continuació, copieu els fitxers inclosos als seus respectius directoris tal com es mostra a les ordres següents. Finalment, reinicieu el servei lircd.

sudo apt-get install python3-lirc -y

Des del directori nou creat, executeu les ordres següents per moure els fitxers de configuració a les seves ubicacions correctes.

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

mòduls sudo mv / etc /

A continuació, reinicieu el servei lircd executant:

sudo /etc/init.d/lircd reiniciar

A continuació, editeu el fitxer /boot/config.txt i afegiu la línia següent

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

Reinicieu el pi per permetre que els canvis tinguin efecte.

sudo reiniciar

5. Activeu I2C i editeu CLIENT per a cada jugador

A continuació, habilitarem la interfície I2C. Això es pot fer mitjançant

sudo raspi-config

i habilitant l'I2C al menú "opcions d'interfície".

6. Editeu Player CLIENT i LTSERVER

El directori del joc ara hauria d’incloure els quatre fitxers restants.

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

L’últim pas per configurar el pi és assignar a cada pi un número de CLIENT i afegir la ubicació del servidor. Això es fa editant el fitxer "player.py" inclòs per a cada pi de manera que tinguin un número de CLIENT diferent. El número de CLIENT s’assigna a la línia 3 de player.py. Assigneu el primer pi a ser client "1", el segon a "2" i el tercer a ser client "3".

La línia LTSERVER s'ha de canviar a l'adreça IP del servidor. Això es troba escrivint 'ifconfig | grep "inet addr" 'al terminal de l'ordinador servidor.

Pas 4: Muntatge de la pistola

Muntatge de pistola
Muntatge de pistola
Muntatge de pistola
Muntatge de pistola

Procediu a connectar cadascuna de les pistoles segons el diagrama de cablejat i l'esquema anterior.

Cadascun dels perifèrics està connectat als pins GPIO següents del Pi Zero:

  • Zumbador: GPIO5
  • Activador: GPIO26
  • Torna a carregar: GPIO12
  • Transmissor IR: GPIO25
  • Receptor IR: GPIO18
  • LED VERMELL: GPIO17
  • LED VERD: GPIO27
  • LED BLAU: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Consulteu l’esquema per obtenir més detalls.

Si es vol, les pistoles làser es poden imprimir en 3D mitjançant els fitxers de models de passos inclosos. Recordeu que cal imprimir dos dels fitxers "front1STL. STL".

Pas 5: joc

Joc
Joc
Joc
Joc
Joc
Joc

El joc s’inicia executant el fitxer "ltag.py" al servidor. Un cop fet això, cadascun dels jugadors es pot connectar al servidor executant el seu fitxer "player.py" respectiu.

Nota: Després d'endollar la bateria, pot trigar fins a un minut a arrencar el pi.

També pot ser útil afegir un treball cron que executi automàticament el fitxer player.py un cop s'iniciï el pi. Ens va costar molt que això funcionés i vam acabar afegint una línia al fitxer "/etc/rc.local" de cadascun dels pis per executar el fitxer "player.py". Això permet iniciar el joc sense haver d’entrar SSH als Pi’s per executar el guió del jugador.

Un cop començat el joc amb els jugadors preparats, apareixerà una GUI que permet configurar algunes de les opcions del joc. El joc comença després de prémer el botó Inici.

Després de cada joc, apareixerà una GUI final amb estadístiques sobre el joc anterior, incloses etiquetes, percentatges globals i durada del joc.

Nota: a causa de les limitacions de les biblioteques de programari, les ubicacions de les etiquetes de l'informe de precisió no són representatives de les etiquetes làser reals. A la versió actual, la imatge de l’Informe de precisió del reproductor és exclusivament estètica, amb l’esperança d’una versió futura amb implementació real de la ubicació de l’etiqueta.

Pas 6: Millores futures

Millores futures
Millores futures
Millores futures
Millores futures

En general, el projecte va ser un èxit important. Al llarg del camí, hem pensat en algunes de les funcions addicionals que es poden afegir a una futura edició.

  • Disseny de gallet més resistent per a les pistoles impreses en 3D
  • Finalització del menú desplegable de la GUI per mostrar estadístiques de jocs passats
  • Més receptors d'infrarojos que es podrien fixar a les armilles dels jugadors
  • Modes de joc addicionals que es poden triar a la GUI Pregame
  • Algorisme de localització d’etiquetes més precís a la pàgina d’estadístiques dels jugadors

Recomanat: