Table des matières:

Laser Tag infrarouge avec Raspberry Pi Zero : 6 étapes (avec photos)
Laser Tag infrarouge avec Raspberry Pi Zero : 6 étapes (avec photos)

Vidéo: Laser Tag infrarouge avec Raspberry Pi Zero : 6 étapes (avec photos)

Vidéo: Laser Tag infrarouge avec Raspberry Pi Zero : 6 étapes (avec photos)
Vidéo: Домино Робот с Мировым Рекордом (100k домино за 24 часа) 2024, Juillet
Anonim
Laser Tag infrarouge avec Raspberry Pi Zero
Laser Tag infrarouge avec Raspberry Pi Zero

Ce Instructable vous guidera tout au long du processus de création d'un jeu de balise laser infrarouge à l'aide d'un ordinateur serveur de base et d'un Raspberry Pi zéro pour chaque joueur. Le projet s'appuie fortement sur une connexion Wifi pour communiquer avec le serveur, ce qui fait du Pi un excellent candidat.

Le serveur utilisé dans ce projet était un vieil ordinateur de bureau avec Linux. L'ordinateur n'a pas besoin d'être spécial et pourrait probablement même être exécuté à partir d'un Raspberry Pi 3. Le serveur et chacun des pi zéro doivent être connectés au même réseau pendant le jeu.

Étape 1: Matériaux

Matériaux
Matériaux
Matériaux
Matériaux

La description et quelques liens pour les matériaux nécessaires sont indiqués ci-dessous. La liste des matériaux ci-dessous est pour 3 pistolets.

  • Ordinateur serveur (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Au moins 4 Go de carte SD (3) Amazon
  • Émetteur LED IR (3)
  • Récepteur IR (6)
  • DEL rouge (3)
  • DEL bleue (3)
  • LED verte (3)
  • Avertisseur passif (3)
  • Bouton poussoir (6)
  • Écran LCD 16x2 avec adaptateur I2C (3) Amazon
  • Batterie portable (3)
  • Câble micro vers USB normal (3)
  • PN2222 Transistor (3)
  • 100Ω Résistance (3)
  • Résistance 1kΩ (9)

Éléments facultatifs:

  • Gilet (3)
  • Rallonge de câble ruban (3) Amazon

Dans ce projet, nous avons fini par prendre l'émetteur IR LED d'un ancien ensemble de pistolets laser tag qui avaient un cône noir autour de l'émetteur pour aider à affiner le tir de chaque pistolet. Cependant, tout émetteur général devrait fonctionner.

En plus des éléments énumérés ci-dessus, les pistolets laser eux-mêmes ont été imprimés en 3D. Ce projet nécessiterait donc également l'accès à une imprimante 3D et à du filament. Dans l'ensemble, pour trois armes, le total s'élevait à environ 350 $.

Étape 2: configuration du serveur

Configuration du serveur
Configuration du serveur
Configuration du serveur
Configuration du serveur
Configuration du serveur
Configuration du serveur

La première chose nécessaire pour configurer le serveur est d'installer le service Broker Mosquitto MQTT. Mosquitto est le service qui fournit un cadre de communication entre chacun des appareils du jeu. Cela permet au serveur d'envoyer des messages à chacun des Pis connectés au service. Dans le terminal, exécutez les commandes suivantes.

sudo apt-get mise à jour

sudo apt-get mise à niveau sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Certaines des interfaces graphiques du serveur ont été créées à l'aide d'un concepteur d'interface graphique appelé Pygubu. Cela peut être installé en exécutant:

pip3 installer pygubu

Plus d'informations sur pygubu peuvent être trouvées sur

Une fois MQTT et Pygubu installés, créez un nouveau répertoire et copiez les fichiers joints. Le répertoire doit inclure:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • auto.png
  • ennemis.png
  • laser.jpg

Remarque: Les images jointes utilisées dans ce projet n'ont pas été créées par l'équipe de développement et ne revendiquent donc pas la paternité.

Étape 3: configuration du Raspberry Pi

Configuration du Raspberry Pi
Configuration du Raspberry Pi

Cette étape devra être répétée sur chacun des Raspberry Pis.

1. Installer le système d'exploitation

Tout d'abord, commencez par une nouvelle installation de Raspbian. Nous vous recommandons d'utiliser la version Lite car elle est moins facile à gérer pour le Pi, mais l'une ou l'autre version devrait fonctionner correctement. Le téléchargement peut être trouvé sur

2. Installez MQTT

Ensuite, nous devons installer le service de courtier MQTT. Nous utiliserons Mosquitto pour cela. Dans le terminal, exécutez les commandes suivantes.

sudo apt-get mise à jour

sudo apt-get mise à niveau sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Mosquitto est le service qui fournit un cadre de communication entre chacun des appareils du jeu. Cela permet au serveur d'envoyer des messages à chacun des Pis connectés au service.

3. Installez les outils I2C

La commande suivante installera les bibliothèques utilisées pour l'écran LCD.

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

sudo apt-get install rpi.gpio -y

L'adresse i2c devra peut-être être modifiée dans le fichier lcddriver.py. L'adresse peut être trouvée en entrant la commande suivante.

i2cdetect -y 1

4. Installer et configurer LIRC

Créez un nouveau répertoire et téléchargez les fichiers joints à cet emplacement.

La plupart des navigateurs Internet ne téléchargent pas les fichiers sans extensions. Pour contourner ce problème, deux des fichiers ont été téléchargés avec des extensions temporaires. "lircrc.deleteExtension" et "modules.deleteExtension" devraient en fait être sans extension et les fichiers devraient être renommés en "lircrc" et "modules" après avoir été téléchargés avec succès.

Cette étape installe et configure les dépendances du package Linux Infrared Remote Control (LIRC). Pour plus d'informations, consultez le tutoriel de configuration de LIRC sur:

Installez d'abord la bibliothèque, puis copiez les fichiers inclus dans leurs répertoires respectifs, comme indiqué dans les commandes ci-dessous. Enfin, redémarrez le service lircd.

sudo apt-get install python3-lirc -y

À partir du répertoire nouvellement créé, exécutez les commandes suivantes pour déplacer les fichiers de configuration vers leurs emplacements corrects.

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

modules sudo mv /etc/

Redémarrez ensuite le service lircd en exécutant:

sudo /etc/init.d/lircd redémarrer

Ensuite, éditez le fichier /boot/config.txt et ajoutez la ligne suivante

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

Redémarrez votre pi pour permettre aux modifications de prendre effet.

redémarrage sudo

5. Activez I2C et modifiez le CLIENT pour chaque joueur

Ensuite, nous allons activer l'interface I2C. Cela peut être fait en utilisant

sudo raspi-config

et activer l'I2C dans le menu "options d'interface".

6. Modifier le CLIENT du lecteur et le LTSERVER

Le répertoire du jeu devrait maintenant inclure les quatre fichiers restants.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • joueur.py

La dernière étape de la configuration du pi consiste à attribuer à chaque pi un numéro de CLIENT et à ajouter l'emplacement du serveur. Cela se fait en éditant le fichier "player.py" inclus pour chaque pi afin qu'ils aient tous un numéro de CLIENT différent. Le numéro de CLIENT est attribué à la ligne 3 de player.py. Attribuez le premier pi au client "1", le second au "2" et le troisième au client "3".

La ligne LTSERVER doit être remplacée par l'adresse IP du serveur. Ceci est trouvé en tapant 'ifconfig | grep "inet addr" ' dans le terminal de l'ordinateur serveur.

Étape 4: Assemblage du pistolet

Assemblage du pistolet
Assemblage du pistolet
Assemblage du pistolet
Assemblage du pistolet

Procédez au câblage de chacun des pistolets selon le schéma de câblage et le schéma ci-dessus.

Chacun des périphériques est connecté aux broches GPIO suivantes sur le Pi Zero:

  • Avertisseur sonore: GPIO5
  • Déclencheur: GPIO26
  • Recharger: GPIO12
  • Émetteur infrarouge: GPIO25
  • Récepteurs IR: GPIO18
  • LED ROUGE: GPIO17
  • LED VERTE: GPIO27
  • LED BLEUE: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Voir le schéma pour plus de détails.

Si vous le souhaitez, les pistolets laser peuvent être imprimés en 3D à l'aide des fichiers de modèle d'étape inclus. Gardez à l'esprit que deux des fichiers "front1STL. STL" doivent être imprimés.

Étape 5: Jeu

Jouer au jeu
Jouer au jeu
Jouer au jeu
Jouer au jeu
Jouer au jeu
Jouer au jeu

Le jeu est lancé en exécutant le fichier "ltag.py" sur le serveur. Une fois cela fait, chacun des joueurs peut se connecter au serveur en exécutant son fichier "player.py" respectif.

Remarque: après avoir branché la batterie, le démarrage du pi peut prendre jusqu'à une minute.

Il peut également être utile d'ajouter une tâche cron qui exécute automatiquement le fichier player.py une fois que le pi démarre. Nous avons eu du mal à faire fonctionner cela et avons fini par ajouter une ligne au fichier "/etc/rc.local" sur chacun des Pis pour exécuter le fichier "player.py". Cela permet au jeu de démarrer sans avoir à SSH dans le Pi pour exécuter le script du joueur.

Une fois le jeu démarré avec les joueurs prêts, une interface graphique apparaîtra qui permettra de configurer quelques-uns des paramètres du jeu. Le jeu commence après avoir appuyé sur le bouton Démarrer.

Après chaque jeu, une interface graphique de fin apparaîtra avec des statistiques sur le jeu précédent, y compris les tags, les pourcentages globaux et la durée du jeu.

Remarque: En raison des limitations des bibliothèques de logiciels, les emplacements des étiquettes de rapport de précision ne sont pas représentatifs des étiquettes laser réelles. Dans la version actuelle, l'image du rapport de précision du lecteur est purement esthétique dans l'espoir d'une future version avec une implémentation réelle de l'emplacement des balises.

Étape 6: Améliorations futures

Améliorations futures
Améliorations futures
Améliorations futures
Améliorations futures

Dans l'ensemble, le projet a été un grand succès. En cours de route, nous avons pensé à quelques fonctionnalités supplémentaires qui pourraient être ajoutées à une future édition.

  • Conception de gâchette plus robuste pour les pistolets imprimés en 3D
  • Fin du menu déroulant de l'interface graphique pour afficher les statistiques des jeux précédents
  • Plus de récepteurs infrarouges pouvant être attachés aux gilets des joueurs
  • Modes de jeu supplémentaires pouvant être choisis dans l'interface graphique d'avant-match
  • Algorithme de localisation des balises plus précis sur la page des statistiques des joueurs

Conseillé: