Innholdsfortegnelse:

Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)
Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)

Video: Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)

Video: Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)
Video: Kiosk mode Bruteforce Evasion with Flipper Zero 2024, Juli
Anonim
Infrarød laser tag med Raspberry Pi Zero
Infrarød laser tag med Raspberry Pi Zero

Denne instruksjonsboken vil gå gjennom prosessen for å lage et infrarødt laser tag -spill ved hjelp av en basisserverdatamaskin og en Raspberry Pi -null for hver spiller. Prosjektet er sterkt avhengig av en Wifi -tilkobling for å kommunisere med serveren, noe som gjør Pi til en god kandidat.

Serveren som ble brukt i dette prosjektet var en gammel stasjonær datamaskin med Linux. Datamaskinen trenger ikke å være noe spesielt, og kan trolig til og med kjøres fra en Raspberry Pi 3. Serveren og hver av pi -nullene må være koblet til det samme nettverket under spill.

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer

Beskrivelsen og noen lenker for det nødvendige materialet er vist nedenfor. Materialelisten nedenfor er for 3 kanoner.

  • Server datamaskin (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Minst 4 GB SD -kort (3) Amazon
  • IR LED -sender (3)
  • IR -mottaker (6) Amazon
  • Rød LED (3)
  • Blå LED (3)
  • Grønn LED (3)
  • Passiv summer (3) Amazon
  • Trykknapp (6)
  • LCD 16x2 -skjerm med I2C -adapter (3) Amazon
  • Bærbar batteripakke (3) Amazon
  • Mikro til vanlig USB -kabel (3) Amazon
  • PN2222 Transistor (3)
  • 100Ω motstand (3)
  • 1kΩ motstand (9)

Valgfrie varer:

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

I dette prosjektet endte vi opp med å ta IR LED -senderen fra et gammelt sett med lasermerkepistoler som hadde en svart kjegle rundt senderen for å begrense skuddet til hver pistol. Enhver generell sender skal imidlertid fungere.

I tillegg til elementene som er oppført ovenfor, ble laserpistolene selv 3D -trykt. Dette prosjektet vil derfor også kreve tilgang til en 3D -skriver og filament. Totalt sett, for tre kanoner, kom det totalt på rundt $ 350.

Trinn 2: Serveroppsett

Serveroppsett
Serveroppsett
Serveroppsett
Serveroppsett
Serveroppsett
Serveroppsett

Det første som trengs for å sette opp serveren er å installere Mosquitto MQTT Broker Service. Mosquitto er tjenesten som gir et rammeverk for kommunikasjon mellom hver av enhetene i spillet. Dette gjør at serveren kan sende meldinger til hver av Pisene som er koblet til tjenesten. Kjør følgende kommandoer i terminalen.

sudo apt-get oppdatering

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

Noen av GUI -ene for serveren ble opprettet ved hjelp av en GUI -designer kalt Pygubu. Dette kan installeres ved å kjøre:

pip3 installer pygubu

Mer informasjon om pygubu finner du på

Når MQTT og Pygubu er installert, oppretter du en ny katalog og kopierer de vedlagte filene. Katalogen bør inneholde:

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

Merk: De vedlagte bildene som ble brukt i dette prosjektet ble ikke opprettet av utviklingsteamet og krever derfor ikke forfatterskap.

Trinn 3: Oppsett av Raspberry Pi

Oppsett av bringebær Pi
Oppsett av bringebær Pi

Dette trinnet må gjentas på hver av bringebærpisene.

1. Installer operativsystemet

Start først med en ny installasjon av Raspbian. Vi vil anbefale å bruke Lite -versjonen ettersom det er mindre for Pi å håndtere, men begge versjonene skal fungere fint. Nedlastingen finner du på

2. Installer MQTT

Deretter må vi installere meglertjenesten MQTT. Vi kommer til å bruke Mosquitto til dette. Kjør følgende kommandoer i terminalen.

sudo apt-get oppdatering

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

Mosquitto er tjenesten som gir et rammeverk for kommunikasjon mellom hver av enhetene i spillet. Dette gjør at serveren kan sende meldinger til hver av Pisene som er koblet til tjenesten.

3. Installer I2C Tools

Følgende kommando installerer biblioteker som brukes til LCD -skjermen.

sudo apt-get install -y python3-smbus i2c-verktøy

sudo apt -get install rpi.gpio -y

I2c -adressen må kanskje endres i lcddriver.py -filen. Adressen finner du ved å skrive inn følgende kommando.

i2cdetect -y 1

4. Installer og konfigurer LIRC

Lag en ny katalog og last ned de vedlagte filene til dette stedet.

De fleste nettlesere vil ikke laste ned filer uten utvidelser. For å unngå dette ble to av filene lastet opp med midlertidige utvidelser. Både "lircrc.deleteExtension" og "modules.deleteExtension" burde faktisk være utvidelsesløse, og filene bør gi nytt navn til "lircrc" og "modules" etter at de har blitt lastet ned.

Dette trinnet installerer og konfigurerer avhengighetene for pakken Linux Infrared Remote Control (LIRC). For mer informasjon, se opplæringen for å sette opp LIRC på:

Installer først biblioteket, og kopier deretter de medfølgende filene til de respektive katalogene som vist i kommandoene nedenfor. Til slutt starter du lircd -tjenesten på nytt.

sudo apt-get install python3-lirc -y

Utfør følgende kommandoer fra den nyopprettede katalogen for å flytte konfigurasjonsfilene til de riktige plasseringene.

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

sudo mv -moduler /etc /

Start deretter lircd -tjenesten på nytt ved å kjøre:

sudo /etc/init.d/lircd start på nytt

Rediger deretter /boot/config.txt -filen og legg til følgende linje

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

Start pi -en på nytt for at endringene skal tre i kraft.

sudo omstart

5. Aktiver I2C og rediger KLIENT for hver spiller

Deretter aktiverer vi I2C -grensesnittet. Dette kan gjøres ved hjelp av

sudo raspi-config

og aktivere I2C i "grensesnittalternativer" -menyen.

6. Rediger Player CLIENT og LTSERVER

Spillkatalogen skal nå inneholde de fire gjenværende filene.

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

Det siste trinnet i konfigureringen av pi er å tildele hver pi et KLIENT -nummer og legge til plasseringen til serveren. Dette gjøres ved å redigere den inkluderte "player.py" -filen for hver pi, slik at de alle har et annet KLIENT -nummer. KLIENT nummeret er tilordnet på linje 3 i player.py. Tilordne den første pi til å være klient "1", den andre til å være "2", og den tredje til å være klient "3".

LTSERVER -linjen bør endres til serverens IP -adresse. Dette finner du ved å skrive 'ifconfig | grep "inet addr" 'i terminalen på serverdatamaskinen.

Trinn 4: Pistolmontering

Pistolmontering
Pistolmontering
Pistolmontering
Pistolmontering

Fortsett å koble hver av pistolene i henhold til koblingsskjemaet og skjematisk over.

Hver av eksterne enheter er koblet til følgende GPIO -pinner på Pi Zero:

  • Summer: GPIO5
  • Utløser: GPIO26
  • Last inn på nytt: GPIO12
  • IR -sender: GPIO25
  • IR -mottakere: GPIO18
  • RØD LED: GPIO17
  • GRØNN LED: GPIO27
  • BLÅ LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Se skjemaet for mer informasjon.

Hvis ønskelig, kan laserpistoler 3D -skrives ut ved hjelp av de medfølgende trinnmodellfilene. Husk at to av "front1STL. STL" -filene må skrives ut.

Trinn 5: Spill

Spill
Spill
Spill
Spill
Spill
Spill

Spillet startes ved å kjøre filen "ltag.py" på serveren. Når dette er gjort, kan hver av spillerne koble seg til serveren ved å kjøre sin respektive "player.py" -fil.

Merk: Etter at du har plugget inn batteripakken, kan det ta opptil et minutt før pi -en starter.

Det kan også være nyttig å legge til en cron -jobb som automatisk kjører filen player.py når pi starter. Vi hadde vanskelig for å få dette til å fungere og endte med å legge til en linje i "/etc/rc.local" -filen på hver av Pis -ene for å kjøre "player.py" -filen. Dette gjør at spillet kan startes uten å måtte SSH i Pi -ene for å kjøre spillerskriptet.

Når spillet er startet med spillerne klare, vises en GUI som lar noen av spillinnstillingene konfigureres. Spillet begynner etter at du har trykket på Start -knappen.

Etter hvert spill vil det vises en slutt -GUI med statistikk om det forrige spillet, inkludert tagger, globale prosenter og spillets varighet.

Merk: På grunn av begrensninger i programvarebiblioteker, er nøyaktighetsrapporttaggenes posisjoner ikke representative for faktiske laserkoder. I den nåværende versjonen er Player Accuracy Report -bildet bare for estetikk i håp om en fremtidig versjon med faktisk implementering av taglokalisering.

Trinn 6: Fremtidige forbedringer

Fremtidige forbedringer
Fremtidige forbedringer
Fremtidige forbedringer
Fremtidige forbedringer

Totalt sett var prosjektet en stor suksess. Underveis tenkte vi på noen få ekstra funksjoner som kan legges til i en fremtidig utgave.

  • Sterkere trigger -design for 3D -trykte kanoner
  • Avslutter GUI-rullegardinmenyen for å vise statistikk fra tidligere spill
  • Flere infrarøde mottakere som kan festes til spillerens vester
  • Ytterligere spillmoduser som kan velges i Pregame GUI
  • Mer nøyaktig tag -plasseringsalgoritme på spillerstatistikksiden

Anbefalt: