Innehållsförteckning:

Infraröd lasermärke med Raspberry Pi Zero: 6 steg (med bilder)
Infraröd lasermärke med Raspberry Pi Zero: 6 steg (med bilder)

Video: Infraröd lasermärke med Raspberry Pi Zero: 6 steg (med bilder)

Video: Infraröd lasermärke med Raspberry Pi Zero: 6 steg (med bilder)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Juli
Anonim
Infraröd lasermärke med Raspberry Pi Zero
Infraröd lasermärke med Raspberry Pi Zero

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

Material
Material
Material
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

Serverinställning
Serverinställning
Serverinställning
Serverinställning
Serverinställning
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

Raspberry Pi Setup
Raspberry Pi Setup

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

Pistolmontering
Pistolmontering
Pistolmontering
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

Spel
Spel
Spel
Spel
Spel
Spel

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

Framtida förbättringar
Framtida förbättringar
Framtida förbättringar
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: