Inhaltsverzeichnis:
- Schritt 1: Materialien
- Schritt 2: Server-Setup
- Schritt 3: Raspberry Pi-Setup
- Schritt 4: Pistolenmontage
- Schritt 5: Spiel spielen
- Schritt 6: Zukünftige Verbesserungen
Video: Infrarot-Laser-Tag mit Raspberry Pi Zero - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Instructable führt durch den Prozess zum Erstellen eines Infrarot-Laser-Tag-Spiels mit einem Basisservercomputer und einem Raspberry Pi Zero für jeden Spieler. Das Projekt ist stark auf eine Wifi-Verbindung angewiesen, um mit dem Server zu kommunizieren, was den Pi zu einem großartigen Kandidaten macht.
Der in diesem Projekt verwendete Server war ein alter Desktop-Computer mit Linux. Der Computer muss nichts besonderes sein und könnte wahrscheinlich sogar von einem Raspberry Pi 3 betrieben werden. Der Server und jeder der Pi Zeros muss während des Spiels mit demselben Netzwerk verbunden sein.
Schritt 1: Materialien
Die Beschreibung und einige Links für die benötigten Materialien sind unten aufgeführt. Die folgende Materialliste gilt für 3 Pistolen.
- Server-Computer (1)
- Raspberry Pi Zero W (3) Adafruit
- Mindestens 4 GB SD-Karte (3) Amazon
- IR-LED-Sender (3)
- IR-Empfänger (6) Amazon
- Rote LED (3)
- Blaue LED (3)
- Grüne LED (3)
- Passiver Summer (3) Amazon
- Druckknopf (6)
- 16x2-LCD-Bildschirm mit I2C-Adapter (3) Amazon
- Tragbarer Akku (3) Amazon
- Micro-zu-Normal-USB-Kabel (3) Amazon
- PN2222-Transistor (3)
- 100Ω Widerstand (3)
- 1kΩ Widerstand (9)
Extras:
- Weste (3) Amazon
- Flachbandkabelverlängerung (3) Amazon
In diesem Projekt haben wir den IR-LED-Sender aus einem alten Satz Laser-Tag-Pistolen genommen, die einen schwarzen Kegel um den Sender hatten, um den Schuss jeder Waffe einzuschränken. Jeder allgemeine Sender sollte jedoch funktionieren.
Zusätzlich zu den oben aufgeführten Artikeln wurden die Laserpistolen selbst 3D-gedruckt. Dieses Projekt würde daher auch den Zugang zu einem 3D-Drucker und Filament erfordern. Insgesamt belief sich die Summe für drei Geschütze auf etwa 350 US-Dollar.
Schritt 2: Server-Setup
Das erste, was zum Einrichten des Servers erforderlich ist, ist die Installation des Mosquitto MQTT Broker Service. Mosquitto ist der Dienst, der einen Rahmen für die Kommunikation zwischen den einzelnen Geräten im Spiel bereitstellt. Dies ermöglicht dem Server, Nachrichten an jeden der mit dem Dienst verbundenen Pis zu senden. Führen Sie im Terminal die folgenden Befehle aus.
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
Einige der GUIs für den Server wurden mit einem GUI-Designer namens Pygubu erstellt. Dies kann installiert werden, indem Sie Folgendes ausführen:
pip3 installieren pygubu
Weitere Informationen zu Pygubu finden Sie unter
Sobald MQTT und Pygubu installiert sind, erstellen Sie ein neues Verzeichnis und kopieren Sie die angehängten Dateien. Das Verzeichnis sollte enthalten:
- ltag.py
- pregame.py
- game_statistics.py
- gvars.py
- pygubu.ui
- pygubu_limited.ui
- home.png
- selbst.png
- Feinde.png
- laser.jpg
Hinweis: Die in diesem Projekt verwendeten angehängten Bilder wurden nicht vom Entwicklerteam erstellt und erheben daher keinen Anspruch auf Urheberschaft.
Schritt 3: Raspberry Pi-Setup
Dieser Schritt muss auf jedem der Raspberry Pis wiederholt werden.
1. Betriebssystem installieren
Beginnen Sie zunächst mit einer Neuinstallation von Raspbian. Wir würden empfehlen, die Lite-Version zu verwenden, da sie für den Pi weniger zu handhaben ist, aber beide Versionen sollten gut funktionieren. Den Download finden Sie unter
2. MQTT installieren
Als nächstes müssen wir den MQTT-Broker-Dienst installieren. Dafür verwenden wir Mosquitto. Führen Sie im Terminal die folgenden Befehle aus.
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 ist der Dienst, der einen Rahmen für die Kommunikation zwischen den einzelnen Geräten im Spiel bereitstellt. Dies ermöglicht dem Server, Nachrichten an jeden der mit dem Dienst verbundenen Pis zu senden.
3. I2C-Tools installieren
Der folgende Befehl installiert Bibliotheken, die für den LCD-Bildschirm verwendet werden.
sudo apt-get install -y python3-smbus i2c-tools
sudo apt-get install rpi.gpio -y
Die i2c-Adresse muss möglicherweise in der Datei lcddriver.py geändert werden. Die Adresse kann durch Eingabe des folgenden Befehls ermittelt werden.
i2cdetect -y 1
4. Installieren und konfigurieren Sie LIRC
Erstellen Sie ein neues Verzeichnis und laden Sie die angehängten Dateien an diesen Speicherort herunter.
Die meisten Internetbrowser laden keine Dateien ohne Erweiterungen herunter. Um dies zu umgehen, wurden zwei der Dateien mit temporären Erweiterungen hochgeladen. Sowohl "lircrc.deleteExtension" als auch "modules.deleteExtension" sollten eigentlich ohne Erweiterungen sein und die Dateien sollten nach erfolgreichem Download in "lircrc" und "modules" umbenannt werden.
In diesem Schritt werden die Abhängigkeiten für das Linux Infrared Remote Control (LIRC)-Paket installiert und konfiguriert. Weitere Informationen finden Sie im Tutorial zum Einrichten von LIRC unter:
Installieren Sie zuerst die Bibliothek und kopieren Sie dann die enthaltenen Dateien in die entsprechenden Verzeichnisse, wie in den folgenden Befehlen gezeigt. Starten Sie abschließend den lircd-Dienst neu.
sudo apt-get install python3-lirc -y
Führen Sie im neu erstellten Verzeichnis die folgenden Befehle aus, um die Konfigurationsdateien an die richtigen Speicherorte zu verschieben.
sudo mv lircd.conf hardware.conf lircrc lirc_options.conf /etc/lirc/
sudo mv-Module /etc/
Starten Sie dann den lircd-Dienst neu, indem Sie Folgendes ausführen:
sudo /etc/init.d/lircd restart
Bearbeiten Sie als Nächstes die Datei /boot/config.txt und fügen Sie die folgende Zeile hinzu
dtoverlay=lirc-rpi, gpio_in_pin=18, gpio_out_pin=25
Starten Sie Ihr Pi neu, damit die Änderungen wirksam werden.
sudo neu starten
5. Aktivieren Sie I2C und bearbeiten Sie CLIENT für jeden Spieler
Als nächstes werden wir die I2C-Schnittstelle aktivieren. Dies kann mit
sudo raspi-config
und Aktivieren des I2C im Menü "Schnittstellenoptionen".
6. Player CLIENT und LTSERVER bearbeiten
Das Spielverzeichnis sollte nun die vier verbleibenden Dateien enthalten.
- i2c_lib.py
- lcddriver.py
- ltsounds.py
- spieler.py
Der letzte Schritt bei der Konfiguration des Pi besteht darin, jedem Pi eine CLIENT-Nummer zuzuweisen und den Standort des Servers hinzuzufügen. Dies geschieht durch Bearbeiten der mitgelieferten Datei "player.py" für jeden Pi, sodass sie alle eine andere CLIENT-Nummer haben. Die CLIENT-Nummer wird in Zeile 3 von player.py zugewiesen. Weisen Sie dem ersten Pi Client "1" zu, dem zweiten "2" und dem dritten Client "3".
Die Zeile LTSERVER sollte auf die IP-Adresse des Servers geändert werden. Dies wird durch Eingabe von 'ifconfig |. gefunden grep "inet addr" ' im Terminal des Servercomputers.
Schritt 4: Pistolenmontage
Fahren Sie mit der Verdrahtung jeder der Pistolen gemäß dem obigen Schaltplan und Schaltplan fort.
Jedes der Peripheriegeräte ist mit den folgenden GPIO-Pins des Pi Zero verbunden:
- Summer: GPIO5
- Auslöser: GPIO26
- Nachladen: GPIO12
- IR-Sender: GPIO25
- IR-Empfänger: GPIO18
- ROTE LED: GPIO17
- GRÜNE LED: GPIO27
- BLAUE LED: GPIO22
- I2C_SDA: GPIO2
- I2C_SCL: GPIO3
Weitere Informationen finden Sie im Schaltplan.
Auf Wunsch können die Laserpistolen mit den mitgelieferten Schrittmodelldateien in 3D gedruckt werden. Beachten Sie, dass zwei der Dateien "front1STL. STL" gedruckt werden müssen.
Schritt 5: Spiel spielen
Das Spiel wird durch Ausführen der Datei "ltag.py" auf dem Server gestartet. Sobald dies erledigt ist, kann sich jeder der Spieler mit dem Server verbinden, indem er seine jeweilige Datei "player.py" ausführt.
Hinweis: Nach dem Einstecken des Akkus kann es bis zu einer Minute dauern, bis der Pi hochfährt.
Es kann auch nützlich sein, einen Cron-Job hinzuzufügen, der die Datei player.py automatisch ausführt, sobald das Pi startet. Es fiel uns schwer, dies zum Laufen zu bringen, und am Ende fügten wir der Datei "/etc/rc.local" auf jedem der Pis eine Zeile hinzu, um die Datei "player.py" auszuführen. Dadurch kann das Spiel gestartet werden, ohne dass eine SSH-Verbindung zu den Pis erforderlich ist, um das Player-Skript auszuführen.
Sobald das Spiel mit den bereiten Spielern gestartet wurde, erscheint eine GUI, die es ermöglicht, einige der Spieleinstellungen zu konfigurieren. Das Spiel beginnt, nachdem die Start-Taste gedrückt wurde.
Nach jedem Spiel erscheint eine abschließende GUI mit Statistiken über das vorherige Spiel, einschließlich Tags, globaler Prozentsätze und Spieldauer.
Hinweis: Aufgrund von Einschränkungen in den Softwarebibliotheken sind die Positionen der Tags im Genauigkeitsbericht nicht repräsentativ für die tatsächlichen Laser-Tags. In der aktuellen Version dient das Bild des Player Accuracy Reports nur der Ästhetik in der Hoffnung auf eine zukünftige Version mit tatsächlicher Tag-Location-Implementierung.
Schritt 6: Zukünftige Verbesserungen
Insgesamt war das Projekt ein großer Erfolg. Auf dem Weg dorthin haben wir an einige zusätzliche Funktionen gedacht, die einer zukünftigen Edition hinzugefügt werden könnten.
- Robusteres Abzugsdesign für die 3D-gedruckten Waffen
- Beenden des GUI-Dropdown-Menüs, um Statistiken aus vergangenen Spielen anzuzeigen
- Weitere Infrarot-Empfänger, die an den Westen der Spieler befestigt werden könnten
- Zusätzliche Spielmodi, die in der Pregame-GUI ausgewählt werden können
- Genauerer Algorithmus für die Tag-Position auf der Seite mit den Spielerstatistiken
Empfohlen:
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Wie erstelle ich ein Infrarot-Thermometer?: 9 Schritte
Wie erstelle ich ein Infrarot-Thermometer?: Das Infrarot-Thermometer kann die Oberflächentemperatur eines Objekts messen. Sein Vorteil ist die berührungslose Temperaturmessung, mit der die Temperatur eines weit verbreiteten entfernten Objekts bequem und genau gemessen werden kann.Hier stellen wir
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: 7 Schritte
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: Jetzt zum Detail
Task Zero: 7 Schritte (mit Bildern)
Task Zero: In einer leistungs- und erfolgsbetonten Gesellschaft vergisst man vielleicht, dass es ein Leben neben der Arbeit gibt. Bei Task Zero geht es um die Aufgabe vor der ersten. Aufgabe 0: Schätze dein Privatleben. Verschieben Sie diese Aufgaben nicht, die sich kultivieren