
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46

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


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



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

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


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



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


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é:
Utilisation du capteur infrarouge avec Arduino : 8 étapes (avec photos)

Utilisation d'un capteur infrarouge avec Arduino : qu'est-ce qu'un capteur infrarouge (alias IR) ? Un capteur IR est un instrument électronique qui scanne les signaux IR dans des plages de fréquences spécifiques définies par les normes et les convertit en signaux électriques sur sa broche de sortie (généralement appelée broche de signal) . Le signal infrarouge
Thermomètre infrarouge laser Arduino : 7 étapes (avec photos)

Thermomètre infrarouge laser Arduino : dans ce projet, je vais vous montrer comment construire un thermomètre infrarouge laser numérique avec un boîtier imprimé en 3D personnalisé
Vivre Avec Nabaztag:Tag:Tag: 14 étapes

Vivre Avec Nabaztag:Tag:Tag: Voilà !Vous avez démonté votre Nabaztag (ou Nabaztag:Tag), débranché, rebranché, vissé, copié le logiciel, paramétré le wifi ?Très bien.Dans ce tutoriel sur va décrire la vie une fois que Nabaztag est branché. C'est parti
Serrure intelligente magnétique avec frappe secrète, capteur infrarouge et application Web : 7 étapes (avec photos)

Serrure intelligente magnétique avec frappe secrète, capteur IR et application Web : si vous aimez ce projet, veuillez me suivre sur Instagram et YouTube. Dans ce projet, je vais construire une serrure magnétique pour mon bureau à domicile, qui s'ouvre si vous connaissez le coup secret. Oh… et il va avoir encore quelques tours dans sa manche. Aimant
Laser Tag Arduino - Duino Tag : 11 étapes (avec photos)

Arduino Laser Tag - Duino Tag : Duino tagger - Introduction générale Duino tag est un système de marquage laser basé sur l'arduino. Enfin un système de marquage laser qui peut être modifié, modifié et piraté jusqu'à ce que vous ayez le système de marquage laser parfait pour les munitions de bureau, les guerres dans les bois et les banlieues