Innehållsförteckning:
- Steg 1: Material
- Steg 2: Serverinställning
- Steg 3: Installation av Raspberry Pi
- Steg 4: Pistolmontering
- Steg 5: Game Play
- Steg 6: Framtida förbättringar
Video: Infraröd lasermärke med Raspberry Pi Zero: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Denna instruktör kommer att gå igenom processen för att skapa ett infrarött lasertaggspel med en basserver -dator och en Raspberry Pi -noll för varje spelare. Projektet är starkt beroende av en Wifi -anslutning för att kommunicera med servern vilket gör Pi till en bra kandidat.
Servern som användes i detta projekt var en gammal stationär dator med Linux. Datorn behöver inte vara något speciellt och kan troligen till och med köras från en Raspberry Pi 3. Servern och var och en av pi -nollorna måste vara anslutna till samma nätverk under spelets gång.
Steg 1: Material
Beskrivningen och några länkar för det material som behövs visas nedan. Materiallistan nedan gäller 3 vapen.
- Serverdator (1)
- Raspberry Pi Zero W (3) Adafruit
- Minst 4 GB SD -kort (3) Amazon
- IR LED -sändare (3)
- IR -mottagare (6) Amazon
- Röd LED (3)
- Blå LED (3)
- Grön LED (3)
- Passiv summer (3) Amazon
- Tryckknapp (6)
- LCD 16x2 skärm med I2C -adapter (3) Amazon
- Bärbart batteri (3) Amazon
- Micro till vanlig USB -kabel (3) Amazon
- PN2222 Transistor (3)
- 100Ω motstånd (3)
- 1kΩ motstånd (9)
Valfria artiklar:
- Väst (3) Amazon
- Ribbon Cable extension (3) Amazon
I det här projektet slutade vi med att ta IR -LED -sändaren från en gammal uppsättning lasermärkepistoler som hade en svart kon runt sändaren för att begränsa skottet på varje pistol. En generell sändare bör dock fungera.
Förutom föremålen som nämns ovan, var laserpistoler själva 3D -tryckta. Detta projekt skulle därför också kräva tillgång till en 3D -skrivare och filament. Totalt sett för tre vapen uppgick totalen till cirka $ 350.
Steg 2: Serverinställning
Det första som krävs för att konfigurera servern är att installera Mosquitto MQTT Broker Service. Mosquitto är tjänsten som ger en ram för kommunikation mellan var och en av enheterna i spelet. Detta gör att servern kan skicka meddelanden till var och en av de PIS som är anslutna till tjänsten. Kör följande kommandon i terminalen.
sudo apt-get uppdatering
sudo apt-get uppgradering sudo apt-get install mygg -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt
Några av GUI: erna för servern skapades med en GUI -designer som heter Pygubu. Detta kan installeras genom att köra:
pip3 installera pygubu
Mer information om pygubu finns på
När MQTT och Pygubu har installerats skapar du en ny katalog och kopierar de bifogade filerna. Katalogen bör innehålla:
- ltag.py
- pregame.py
- game_statistics.py
- gvars.py
- pygubu.ui
- pygubu_limited.ui
- home.png
- self.png
- fiender.png
- laser.jpg
Obs! De bifogade bilderna som används i detta projekt skapades inte av utvecklingsteamet och gör därför inte anspråk på författarskap.
Steg 3: Installation av Raspberry Pi
Detta steg måste upprepas på var och en av hallonpisarna.
1. Installera operativsystemet
Börja först med en ny installation av Raspbian. Vi rekommenderar att du använder Lite -versionen eftersom det är mindre för Pi att hantera, men båda versionerna borde fungera bra. Nedladdningen finns på
2. Installera MQTT
Därefter måste vi installera MQTT -mäklartjänsten. Vi kommer att använda Mosquitto för detta. Kör följande kommandon i terminalen.
sudo apt-get uppdatering
sudo apt-get uppgradering sudo apt-get install mygg -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt
Mosquitto är tjänsten som ger en ram för kommunikation mellan var och en av enheterna i spelet. Detta gör att servern kan skicka meddelanden till var och en av de PIS som är anslutna till tjänsten.
3. Installera I2C -verktyg
Följande kommando installerar bibliotek som används för LCD -skärmen.
sudo apt-get install -y python3-smbus i2c-verktyg
sudo apt -get install rpi.gpio -y
I2c -adressen kan behöva ändras i filen lcddriver.py. Adressen kan hittas genom att ange följande kommando.
i2cdetect -y 1
4. Installera och konfigurera LIRC
Skapa en ny katalog och ladda ner de bifogade filerna till den här platsen.
De flesta webbläsare laddar inte ner filer utan tillägg. För att komma runt detta laddades två av filerna upp med tillfälliga tillägg. Både "lircrc.deleteExtension" och "modules.deleteExtension" borde i själva verket vara förlängningslösa och filerna bör byta namn till "lircrc" och "modules" efter att de har laddats ner.
Detta steg installerar och konfigurerar beroenden för paketet Linux Infrared Remote Control (LIRC). För mer information, se handledningen för att konfigurera LIRC på:
Installera först biblioteket och kopiera sedan de medföljande filerna till respektive kataloger som visas i kommandona nedan. Slutligen starta om lircd -tjänsten.
sudo apt-get install python3-lirc -y
Utför följande kommandon från den nyskapade katalogen för att flytta konfigurationsfilerna till rätt plats.
sudo mv lircd.conf hardware.conf lircrc lirc_options.conf/etc/lirc/
sudo mv -moduler /etc /
Starta sedan om lircd -tjänsten genom att köra:
sudo /etc/init.d/lircd starta om
Redigera därefter /boot/config.txt -filen och lägg till följande rad
dtoverlay = lirc-rpi, gpio_in_pin = 18, gpio_out_pin = 25
Starta om din pi för att tillåta att ändringarna träder i kraft.
sudo starta om
5. Aktivera I2C och redigera KLIENT för varje spelare
Därefter aktiverar vi I2C -gränssnittet. Detta kan göras med
sudo raspi-config
och aktivera I2C i menyn "gränssnittsalternativ".
6. Redigera Player CLIENT och LTSERVER
Spelkatalogen bör nu innehålla de fyra återstående filerna.
- i2c_lib.py
- lcddriver.py
- ltsounds.py
- player.py
Det sista steget i konfigurationen av pi är att tilldela varje pi ett KLIENT -nummer och lägga till platsen för servern. Detta görs genom att redigera den medföljande "player.py" -filen för varje pi så att alla har ett annat KLIENT -nummer. KUNDENS nummer tilldelas på rad 3 i player.py. Tilldela den första pi som klient "1", den andra till "2" och den tredje till klienten "3".
LTSERVER -raden bör ändras till serverns IP -adress. Detta hittas genom att skriva 'ifconfig | grep "inet addr" 'i terminalen på serverdatorn.
Steg 4: Pistolmontering
Fortsätt att ansluta varje pistol enligt kopplingsschemat och schemat ovan.
Var och en av kringutrustningen är ansluten till följande GPIO -stift på Pi Zero:
- Summer: GPIO5
- Utlösare: GPIO26
- Ladda om: GPIO12
- IR -sändare: GPIO25
- IR -mottagare: GPIO18
- RÖD LED: GPIO17
- GRÖN LED: GPIO27
- BLÅ LED: GPIO22
- I2C_SDA: GPIO2
- I2C_SCL: GPIO3
Se schemat för mer information.
Om så önskas kan laserpistoler 3D -skrivas ut med hjälp av de medföljande stegmodellfilerna. Tänk på att två av "front1STL. STL" -filerna måste skrivas ut.
Steg 5: Game Play
Spelet startas med att köra filen "ltag.py" på servern. När detta är gjort kan var och en av spelarna ansluta till servern genom att köra sin respektive "player.py" -fil.
Obs: Efter att du har anslutit batteriet kan det ta upp till en minut innan pi: n startar.
Det kan också vara användbart att lägga till ett cron -jobb som automatiskt kör filen player.py när pi startar. Vi hade svårt att få detta att fungera och slutade med att vi lade till en rad i "/etc/rc.local" -filen på var och en av Pis för att köra "player.py" -filen. Detta gör att spelet kan startas utan att behöva SSH i Pi: erna för att köra spelarens manus.
När spelet har startats med spelarna redo visas ett GUI som gör att några av spelinställningarna kan konfigureras. Spelet börjar när du trycker på Start -knappen.
Efter varje spel kommer ett avslutande GUI att visas med statistik om det tidigare spelet inklusive taggar, globala procentsatser och spellängd.
Obs! På grund av begränsningar i programvarubibliotek är platserna för noggrannhetsrapporttaggar inte representativa för faktiska lasertaggar. I den nuvarande versionen är avbildningen av Player Accuracy Report enbart för estetik i hopp om en framtida version med faktisk implementering av taggplats.
Steg 6: Framtida förbättringar
Sammantaget var projektet en stor framgång. Längs vägen tänkte vi på några ytterligare funktioner som kan läggas till i en framtida utgåva.
- Starkare triggdesign för 3D -tryckta vapen
- Avslutar GUI-rullgardinsmenyn för att visa statistik från tidigare spel
- Fler infraröda mottagare som kan anslutas till spelarnas västar
- Ytterligare spellägen som kan väljas i Pregame GUI
- Mer exakt taggplaceringsalgoritm på spelarens statistiksida
Rekommenderad:
Infraröd styrd MP3 -spelare: 6 steg (med bilder)
Infraröd kontrollerad MP3 -spelare: Bygg en infraröd fjärrkontroll MP3 -spelare för cirka $ 10 (usd). Den har de vanliga funktionerna: spela, pausa, spela nästa eller föregående, spela en enda låt eller alla låtar. Den har också equalizervariationer och volymkontroll. Allt styrbart via en r
Använda infraröd sensor med Arduino: 8 steg (med bilder)
Använda infraröd sensor med Arduino: Vad är en infraröd (aka IR) sensor? En IR -sensor är ett elektroniskt instrument som skannar IR -signaler i specifika frekvensområden definierade av standarder och omvandlar dem till elektriska signaler på dess utgångsstift (kallas vanligtvis signalstift) . IR -signalen
Arduino laser infraröd termometer: 7 steg (med bilder)
Arduino laser infraröd termometer: I det här projektet kommer jag att visa dig hur man bygger en digital laser infraröd termometer med en anpassad 3D -tryckt kapsling
Arduino Infraröd termometerpistol MDF -fodral: 4 steg (med bilder)
Arduino Infraröd termometerpistol MDF-fodral: Detta projekt är för att göra infraröd termometer med Arduino, kretsen sätts i MDF-fodral som liknar en medicinsk infraröd termometer på marknaden. Sensorens infraröda termometer GY-906 används för att mäta objekttemperatur utan kontakt, det kan betyda
Bygg Kodi / OSMC Infraröd mottagare och återställ hatt för Raspberry Pi: 5 steg (med bilder)
Bygg Kodi / OSMC Infraröd mottagare och Återställ hatt för Raspberry Pi: Bygg en Kodi / OSMC IR -mottagare och Återställ hatt för Raspberry Pi 3 Från ett rum vill jag: Styr Kodi / OSMC som körs på en Raspberry Pi med en fjärrkontroll Se om Raspberry Pi är påslagenOch jag skulle vilja att min familj