Indholdsfortegnelse:

Infrarød lasermærke med Raspberry Pi Zero: 6 trin (med billeder)
Infrarød lasermærke med Raspberry Pi Zero: 6 trin (med billeder)

Video: Infrarød lasermærke med Raspberry Pi Zero: 6 trin (med billeder)

Video: Infrarød lasermærke med Raspberry Pi Zero: 6 trin (med billeder)
Video: 12 NEW Raspberry Pi Projects you must try!!! 2024, Juni
Anonim
Infrarød laser tag med Raspberry Pi Zero
Infrarød laser tag med Raspberry Pi Zero

Denne instruktør vil gå igennem processen til oprettelse af et infrarødt laser tag -spil ved hjælp af en baseservercomputer og en Raspberry Pi -nul for hver spiller. Projektet er stærkt afhængigt af en Wifi -forbindelse til at kommunikere med serveren, hvilket gør Pi til en god kandidat.

Serveren, der blev brugt i dette projekt, var en gammel stationær computer med Linux. Computeren behøver ikke at være noget særligt og kan sandsynligvis endda køres fra en Raspberry Pi 3. Serveren og hver af pi zero'erne skal være forbundet til det samme netværk under spil.

Trin 1: Materialer

Materialer
Materialer
Materialer
Materialer

Beskrivelsen og nogle links til det nødvendige materiale er vist nedenfor. Materialelisten herunder er for 3 kanoner.

  • Servercomputer (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Mindst 4 GB SD -kort (3) Amazon
  • IR LED -sender (3)
  • IR -modtager (6) Amazon
  • Rød LED (3)
  • Blå LED (3)
  • Grøn LED (3)
  • Passiv summer (3) Amazon
  • Trykknap (6)
  • LCD 16x2 skærm med I2C adapter (3) Amazon
  • Bærbar batteripakke (3) Amazon
  • Mikro til almindeligt USB -kabel (3) Amazon
  • PN2222 Transistor (3)
  • 100Ω modstand (3)
  • 1kΩ Modstand (9)

Valgfrie varer:

  • Vest (3) Amazon
  • Ribbon Cable extension (3) Amazon

I dette projekt endte vi med at tage IR LED -senderen fra et gammelt sæt lasermærkepistoler, der havde en sort kegle omkring senderen for at hjælpe med at indsnævre skuddet på hver pistol. Enhver generel sender skal dog fungere.

Ud over de punkter, der er anført ovenfor, blev laserpistolerne selv 3D -printet. Dette projekt vil derfor også kræve adgang til en 3D -printer og filament. Samlet set for tre kanoner kom det samlede beløb på omkring $ 350.

Trin 2: Serveropsætning

Serveropsætning
Serveropsætning
Serveropsætning
Serveropsætning
Serveropsætning
Serveropsætning

Det første, der er nødvendigt for at konfigurere serveren, er at installere Mosquitto MQTT Broker Service. Mosquitto er den service, der giver en ramme for kommunikation mellem hver af enhederne i spillet. Dette gør det muligt for serveren at sende meddelelser til hver af de Pis, der er forbundet til tjenesten. Kør følgende kommandoer i terminalen.

sudo apt-get opdatering

sudo apt-get opgradering sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Nogle af GUI'erne til serveren blev oprettet ved hjælp af en GUI -designer kaldet Pygubu. Dette kan installeres ved at køre:

pip3 installer pygubu

Flere oplysninger om pygubu findes på

Når MQTT og Pygubu er installeret, skal du oprette et nyt bibliotek og kopiere de vedhæftede filer. Mappen skal indeholde:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • fjender.png
  • laser.jpg

Bemærk: De vedhæftede billeder, der blev brugt i dette projekt, blev ikke oprettet af udviklingsteamet og gør derfor ikke krav på forfatterskab.

Trin 3: Opsætning af Raspberry Pi

Opsætning af hindbær Pi
Opsætning af hindbær Pi

Dette trin skal gentages på hver af Raspberry Pis.

1. Installer operativsystemet

Start først med en ny installation af Raspbian. Vi vil anbefale at bruge Lite -versionen, da det er mindre for Pi at håndtere, men begge versioner burde fungere fint. Downloaden kan findes på

2. Installer MQTT

Dernæst skal vi installere MQTT -mæglerservice. Vi vil bruge Mosquitto til dette. Kør følgende kommandoer i terminalen.

sudo apt-get opdatering

sudo apt-get opgradering sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Mosquitto er den service, der giver en ramme for kommunikation mellem hver af enhederne i spillet. Dette gør det muligt for serveren at sende meddelelser til hver af de Pis, der er forbundet til tjenesten.

3. Installer I2C -værktøjer

Følgende kommando installerer biblioteker, der bruges til LCD -skærmen.

sudo apt-get install -y python3-smbus i2c-værktøjer

sudo apt -get install rpi.gpio -y

I2c -adressen skal muligvis ændres i filen lcddriver.py. Adressen kan findes ved at indtaste følgende kommando.

i2cdetect -y 1

4. Installer og konfigurer LIRC

Opret et nyt bibliotek, og download de vedhæftede filer til denne placering.

De fleste internetbrowsere vil ikke downloade filer uden udvidelser. For at komme uden om dette blev to af filerne uploadet med midlertidige udvidelser. Både "lircrc.deleteExtension" og "modules.deleteExtension" burde faktisk være uden udvidelse, og filerne skal omdøbes til "lircrc" og "modules", efter at de er blevet downloadet.

Dette trin installerer og konfigurerer afhængighederne for pakken Linux Infrared Remote Control (LIRC). For mere information se vejledningen til opsætning af LIRC på:

Installer først biblioteket, og kopier derefter de medfølgende filer til deres respektive biblioteker som vist i kommandoerne herunder. Endelig genstart lircd -tjenesten.

sudo apt-get install python3-lirc -y

Udfør følgende kommandoer fra det nyoprettede bibliotek for at flytte konfigurationsfilerne til deres korrekte placeringer.

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

sudo mv -moduler /etc /

Genstart derefter lircd -tjenesten ved at køre:

sudo /etc/init.d/lircd genstart

Rediger derefter /boot/config.txt -filen, og tilføj følgende linje

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

Genstart din pi for at lade ændringerne træde i kraft.

sudo genstart

5. Aktiver I2C, og rediger KLIENT for hver spiller

Dernæst aktiverer vi I2C -grænsefladen. Dette kan gøres ved hjælp af

sudo raspi-config

og aktivering af I2C i menuen "grænsefladeindstillinger".

6. Rediger Player CLIENT og LTSERVER

Spillemappen skal nu indeholde de fire resterende filer.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • player.py

Det sidste trin i konfigurationen af pi'en er at tildele hvert pi et KLIENT -nummer og tilføje serverens placering. Dette gøres ved at redigere den inkluderede "player.py" -fil for hver pi, så de alle har et andet KLIENT -nummer. KUNDENS nummer tildeles på linje 3 i player.py. Tildel den første pi til at være klient "1", den anden til at være "2" og den tredje til at være klient "3".

LTSERVER -linjen skal ændres til serverens IP -adresse. Dette findes ved at skrive 'ifconfig | grep "inet addr" 'i terminalen på servercomputeren.

Trin 4: Pistolmontering

Pistolmontering
Pistolmontering
Pistolmontering
Pistolmontering

Fortsæt med at tilslutte hver af kanonerne i henhold til ledningsdiagrammet og skematisk ovenfor.

Hver af de eksterne enheder er forbundet til følgende GPIO -ben på Pi Zero:

  • Summer: GPIO5
  • Udløser: GPIO26
  • Genindlæs: GPIO12
  • IR -sender: GPIO25
  • IR -modtagere: GPIO18
  • RØD LED: GPIO17
  • GRØN LED: GPIO27
  • BLÅ LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Se skematisk for flere detaljer.

Hvis det ønskes, kan laserpistoler 3D -printes ved hjælp af de medfølgende trinmodelfiler. Husk, at to af "front1STL. STL" -filerne skal udskrives.

Trin 5: Game Play

Spil
Spil
Spil
Spil
Spil
Spil

Spillet startes ved at køre filen "ltag.py" på serveren. Når dette er gjort, kan hver af spillerne oprette forbindelse til serveren ved at køre deres respektive "player.py" -fil.

Bemærk: Efter tilslutning af batteripakken kan det tage op til et minut, før pi'en starter.

Det kan også være nyttigt at tilføje et cron -job, der automatisk kører filen player.py, når pi'en starter. Vi havde svært ved at få dette til at fungere og endte med at tilføje en linje til filen "/etc/rc.local" på hver af Pis'erne for at køre "player.py" -filen. Dette gør det muligt at starte spillet uden at skulle SSH ind i Pi'erne for at køre spillers script.

Når spillet er startet med spillerne klar, vises en GUI, der gør det muligt at konfigurere et par af spilindstillingerne. Spillet begynder, når der trykkes på Start -knappen.

Efter hvert spil vises en slutende GUI med statistik om det tidligere spil, herunder tags, globale procenter og spilvarighed.

Bemærk: På grund af begrænsninger i softwarebiblioteker er nøjagtighedsrapportens tagplaceringer ikke repræsentative for egentlige lasermærker. I den nuværende version er afspilningsnøjagtighedsrapportbilledet udelukkende til æstetik i håb om en fremtidig version med faktisk implementering af tagplacering.

Trin 6: Fremtidige forbedringer

Fremtidige forbedringer
Fremtidige forbedringer
Fremtidige forbedringer
Fremtidige forbedringer

Samlet set var projektet en stor succes. Undervejs tænkte vi på et par ekstra funktioner, der kan tilføjes til en fremtidig udgave.

  • Stærkere trigger -design til 3D -trykte kanoner
  • Afslutter GUI-rullemenuen for at vise statistik fra tidligere spil
  • Flere infrarøde modtagere, der kunne sættes på spillerens veste
  • Yderligere spiltilstande, der kan vælges i Pregame GUI
  • Mere præcis tagplaceringsalgoritme på spillerens statistikside

Anbefalede: