Sommario:

Tag laser a infrarossi con Raspberry Pi Zero: 6 passaggi (con immagini)
Tag laser a infrarossi con Raspberry Pi Zero: 6 passaggi (con immagini)

Video: Tag laser a infrarossi con Raspberry Pi Zero: 6 passaggi (con immagini)

Video: Tag laser a infrarossi con Raspberry Pi Zero: 6 passaggi (con immagini)
Video: High Density 2022 2024, Dicembre
Anonim
Tag laser a infrarossi con Raspberry Pi Zero
Tag laser a infrarossi con Raspberry Pi Zero

Questo Instructable illustrerà il processo per la creazione di un gioco di tag laser a infrarossi utilizzando un computer server di base e uno zero Raspberry Pi per ogni giocatore. Il progetto si basa molto su una connessione Wifi per comunicare con il server, il che rende il Pi un ottimo candidato.

Il server utilizzato in questo progetto era un vecchio computer desktop con Linux. Il computer non ha bisogno di essere niente di speciale e probabilmente potrebbe anche essere eseguito da un Raspberry Pi 3. Il server e ciascuno dei pi zero devono essere collegati alla stessa rete durante il gioco.

Passaggio 1: materiali

Materiali
Materiali
Materiali
Materiali

La descrizione e alcuni collegamenti per i materiali necessari sono mostrati di seguito. L'elenco dei materiali di seguito è per 3 pistole.

  • Computer server (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Scheda SD da almeno 4 GB (3) Amazon
  • Trasmettitore LED IR (3)
  • Ricevitore IR (6) Amazon
  • LED rosso (3)
  • LED blu (3)
  • LED verde (3)
  • Buzzer passivo (3) Amazon
  • Pulsante (6)
  • Schermo LCD 16x2 con adattatore I2C (3) Amazon
  • Batteria portatile (3) Amazon
  • Cavo USB da micro a normale (3) Amazon
  • PN2222 Transistor (3)
  • Resistenza da 100Ω (3)
  • Resistenza da 1kΩ (9)

Articoli opzionali:

  • Gilet (3) Amazon
  • Prolunga cavo a nastro (3) Amazon

In questo progetto, abbiamo finito per prendere il trasmettitore LED IR da un vecchio set di pistole laser tag che avevano un cono nero attorno al trasmettitore per aiutare a restringere il tiro di ogni pistola. Tuttavia, qualsiasi trasmettitore generico dovrebbe funzionare.

Oltre agli articoli sopra elencati, le pistole laser stesse sono state stampate in 3D. Questo progetto richiederebbe quindi anche l'accesso a una stampante 3D e a un filamento. Complessivamente, per tre pistole il totale è stato di circa $ 350.

Passaggio 2: configurazione del server

Configurazione del server
Configurazione del server
Configurazione del server
Configurazione del server
Configurazione del server
Configurazione del server

La prima cosa necessaria per configurare il server è installare il Mosquitto MQTT Broker Service. Mosquitto è il servizio che fornisce un framework per la comunicazione tra ciascuno dei dispositivi del gioco. Ciò consente al server di inviare messaggi a ciascuno dei Pis collegati al servizio. Nel terminale, esegui i seguenti comandi.

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

Alcune delle GUI per il server sono state create utilizzando un designer di GUI chiamato Pygubu. Questo può essere installato eseguendo:

pip3 installa pygubu

Maggiori informazioni su pygubu possono essere trovate su

Una volta installati MQTT e Pygubu, crea una nuova directory e copia i file allegati. La directory dovrebbe includere:

  • ltag.py
  • prepartita.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • nemici.png
  • laser.jpg

Nota: le immagini allegate utilizzate in questo progetto non sono state create dal team di sviluppo e pertanto non rivendicano la paternità.

Passaggio 3: installazione di Raspberry Pi

Configurazione Raspberry Pi
Configurazione Raspberry Pi

Questo passaggio dovrà essere ripetuto su ciascuno dei Raspberry Pi.

1. Installa il sistema operativo

Innanzitutto, inizia con una nuova installazione di Raspbian. Consigliamo di utilizzare la versione Lite in quanto è meno gestibile per il Pi, ma entrambe le versioni dovrebbero funzionare correttamente. Il download può essere trovato su

2. Installa MQTT

Successivamente è necessario installare il servizio broker MQTT. Useremo Mosquitto per questo. Nel terminale, esegui i seguenti comandi.

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 è il servizio che fornisce un framework per la comunicazione tra ciascuno dei dispositivi del gioco. Ciò consente al server di inviare messaggi a ciascuno dei Pis collegati al servizio.

3. Installa gli strumenti I2C

Il seguente comando installerà le librerie utilizzate per lo schermo LCD.

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

sudo apt-get install rpi.gpio -y

Potrebbe essere necessario modificare l'indirizzo i2c nel file lcddriver.py. L'indirizzo può essere trovato immettendo il seguente comando.

i2cdetect -y 1

4. Installa e configura LIRC

Crea una nuova directory e scarica i file allegati in questa posizione.

La maggior parte dei browser Internet non scarica file senza estensioni. Per aggirare questo problema, due dei file sono stati caricati con estensioni temporanee. Sia "lircrc.deleteExtension" che "modules.deleteExtension" dovrebbero infatti essere senza estensione e i file dovrebbero essere rinominati in "lircrc" e "modules" dopo che sono stati scaricati con successo.

Questo passaggio installa e configura le dipendenze per il pacchetto Linux Infrared Remote Control (LIRC). Per maggiori informazioni vedere il tutorial per configurare LIRC su:

Prima installa la libreria, quindi copia i file inclusi nelle rispettive directory come mostrato nei comandi seguenti. Infine, riavvia il servizio lircd.

sudo apt-get install python3-lirc -y

Dalla directory appena creata eseguire i seguenti comandi per spostare i file di configurazione nelle posizioni corrette.

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

sudo mv moduli /etc/

Quindi riavviare il servizio lircd eseguendo:

sudo /etc/init.d/lircd restart

Quindi, modifica il file /boot/config.txt e aggiungi la seguente riga

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

Riavvia il tuo pi per consentire l'applicazione delle modifiche.

sudo reboot

5. Abilita I2C e modifica CLIENT per ogni giocatore

Successivamente, abiliteremo l'interfaccia I2C. Questo può essere fatto usando

sudo raspi-config

e abilitando l'I2C nel menu "opzioni interfaccia".

6. Modifica Player CLIENT e LTSERVER

La directory del gioco dovrebbe ora includere i quattro file rimanenti.

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

L'ultimo passaggio nella configurazione del pi è assegnare a ciascun pi un numero CLIENT e aggiungere la posizione del server. Questo viene fatto modificando il file "player.py" incluso per ogni pi in modo che abbiano tutti un numero CLIENT diverso. Il numero CLIENTE viene assegnato sulla riga 3 di player.py. Assegna il primo pi greco come client "1", il secondo come "2" e il terzo come client "3".

La riga LTSERVER deve essere modificata con l'indirizzo IP del server. Questo si trova digitando 'ifconfig | grep "inet addr" ' nel terminale del computer server.

Passaggio 4: assemblaggio della pistola

Assemblaggio della pistola
Assemblaggio della pistola
Assemblaggio della pistola
Assemblaggio della pistola

Procedere al cablaggio di ciascuna delle pistole secondo lo schema elettrico e lo schema sopra.

Ciascuna delle periferiche è collegata ai seguenti pin GPIO sul Pi Zero:

  • Cicalino: GPIO5
  • Trigger: GPIO26
  • Ricarica: GPIO12
  • Trasmettitore IR: GPIO25
  • Ricevitori IR: GPIO18
  • LED ROSSO: GPIO17
  • LED VERDE: GPIO27
  • LED BLU: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Vedere lo schema per maggiori dettagli.

Se lo si desidera, le pistole laser possono essere stampate in 3D utilizzando i file del modello di passo inclusi. Tieni presente che devono essere stampati due dei file "front1STL. STL".

Passaggio 5: gioco

Gioco
Gioco
Gioco
Gioco
Gioco
Gioco

Il gioco viene avviato eseguendo il file "ltag.py" sul server. Fatto ciò, ciascuno dei giocatori può connettersi al server eseguendo il rispettivo file "player.py".

Nota: dopo aver collegato la batteria, l'avvio del pi potrebbe richiedere fino a un minuto.

Potrebbe anche essere utile aggiungere un cron job che esegua automaticamente il file player.py una volta avviato il pi. Abbiamo avuto difficoltà a farlo funzionare e abbiamo finito per aggiungere una riga al file "/etc/rc.local" su ciascuno dei Pis per eseguire il file "player.py". Ciò consente di avviare il gioco senza dover eseguire SSH nei Pi per eseguire lo script del giocatore.

Una volta che il gioco è stato avviato con i giocatori pronti, apparirà una GUI che consentirà di configurare alcune delle impostazioni di gioco. Il gioco inizia dopo aver premuto il pulsante Start.

Dopo ogni partita, apparirà una GUI finale con le statistiche sulla partita precedente, inclusi i tag, le percentuali globali e la durata del gioco.

Nota: a causa delle limitazioni nelle librerie software, le posizioni dei tag del rapporto di accuratezza non sono rappresentative dei tag laser effettivi. Nella versione attuale, l'immagine del Rapporto sulla precisione del giocatore è puramente estetica nella speranza di una versione futura con l'effettiva implementazione della posizione dei tag.

Passaggio 6: miglioramenti futuri

Miglioramenti futuri
Miglioramenti futuri
Miglioramenti futuri
Miglioramenti futuri

Nel complesso, il progetto è stato un grande successo. Lungo la strada, abbiamo pensato ad alcune funzionalità aggiuntive che potrebbero essere aggiunte a una futura edizione.

  • Design del grilletto più robusto per le pistole stampate in 3D
  • Fine del menu a discesa della GUI per visualizzare le statistiche dei giochi passati
  • Più ricevitori a infrarossi che potrebbero essere attaccati ai giubbotti dei giocatori
  • Modalità di gioco aggiuntive che possono essere scelte nella GUI Pregame
  • Algoritmo di localizzazione dei tag più accurato nella pagina delle statistiche dei giocatori

Consigliato: