Kazalo:

Infrardeča laserska oznaka z Raspberry Pi Zero: 6 korakov (s slikami)
Infrardeča laserska oznaka z Raspberry Pi Zero: 6 korakov (s slikami)

Video: Infrardeča laserska oznaka z Raspberry Pi Zero: 6 korakov (s slikami)

Video: Infrardeča laserska oznaka z Raspberry Pi Zero: 6 korakov (s slikami)
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, November
Anonim
Infrardeča laserska oznaka z Raspberry Pi Zero
Infrardeča laserska oznaka z Raspberry Pi Zero

Ta Instructable bo predstavil postopek ustvarjanja igre z infrardečo lasersko oznako z uporabo osnovnega strežniškega računalnika in ničle Raspberry Pi za vsakega igralca. Pri komunikaciji s strežnikom se projekt močno opira na povezavo Wifi, zaradi česar je Pi odličen kandidat.

Strežnik, uporabljen v tem projektu, je bil stari namizni računalnik z Linuxom. Računalnik ne potrebuje nič posebnega in verjetno bi ga bilo mogoče zagnati tudi z Raspberry Pi 3. Strežnik in vsaka pi ničla morata biti med igranjem igre povezana z istim omrežjem.

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali

Opis in nekaj povezav do potrebnih materialov so prikazani spodaj. Spodnji seznam materiala je za 3 puške.

  • Strežniški računalnik (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Najmanj 4 GB SD kartice (3) Amazon
  • IR LED oddajnik (3)
  • IR sprejemnik (6) Amazon
  • Rdeča LED (3)
  • Modra LED (3)
  • Zelena LED (3)
  • Pasivni zvočni signal (3) Amazon
  • Potisni gumb (6)
  • LCD zaslon 16x2 z vmesnikom I2C (3) Amazon
  • Prenosni baterijski paket (3) Amazon
  • Mikro na običajen USB kabel (3) Amazon
  • PN2222 Tranzistor (3)
  • 100Ω upor (3)
  • 1kΩ upor (9)

Izbirni predmeti:

  • Telovnik (3) Amazon
  • Podaljšek trakovnega kabla (3) Amazon

V tem projektu smo na koncu vzeli IR LED oddajnik iz starega kompleta pištol za lasersko označevanje, ki so imeli okoli oddajnika črni stožec, da bi olajšali strel vsake pištole. Vendar bi moral delovati vsak splošni oddajnik.

Poleg zgoraj naštetih predmetov so bile laserske pištole 3D natisnjene. Ta projekt bi torej zahteval tudi dostop do 3D tiskalnika in žarilne nitke. Na splošno je za tri pištole skupaj prišlo približno 350 dolarjev.

2. korak: Namestitev strežnika

Namestitev strežnika
Namestitev strežnika
Namestitev strežnika
Namestitev strežnika
Namestitev strežnika
Namestitev strežnika

Prva stvar, ki je potrebna za nastavitev strežnika, je namestitev storitve posrednika Mosquitto MQTT. Mosquitto je storitev, ki ponuja okvir za komunikacijo med vsako od naprav v igri. To strežniku omogoča pošiljanje sporočil vsakemu Pisu, ki je povezan s storitvijo. V terminalu zaženite naslednje ukaze.

sudo apt-get posodobitev

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

Nekateri grafični vmesniki za strežnik so bili ustvarjeni z oblikovalcem grafičnega vmesnika, imenovanim Pygubu. To lahko namestite tako, da zaženete:

pip3 namestite pygubu

Več informacij o pygubu najdete na

Ko sta MQTT in Pygubu nameščena, ustvarite nov imenik in kopirajte priložene datoteke. Imenik mora vsebovati:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • sovražniki.png
  • laser.jpg

Opomba: Priloženih slik, uporabljenih v tem projektu, ni ustvarila razvojna ekipa in zato ne zahtevajo avtorstva.

3. korak: Nastavitev Raspberry Pi

Nastavitev Raspberry Pi
Nastavitev Raspberry Pi

Ta korak bo treba ponoviti na vsakem malinovem psu.

1. Namestite operacijski sistem

Najprej začnite z novo namestitvijo Raspbiana. Priporočamo uporabo različice Lite, saj Pi manj upravlja, vendar bi morala obe različici delovati v redu. Prenos najdete na

2. Namestite MQTT

Nato moramo namestiti storitev posrednika MQTT. Za to bomo uporabili Mosquitto. V terminalu zaženite naslednje ukaze.

sudo apt-get posodobitev

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

Mosquitto je storitev, ki zagotavlja okvir za komunikacijo med vsako od naprav v igri. To strežniku omogoča pošiljanje sporočil vsakemu Pisu, ki je povezan s storitvijo.

3. Namestite Orodja I2C

Naslednji ukaz bo namestil knjižnice, ki se uporabljajo za zaslon LCD.

sudo apt-get install -y python3-smbus i2c-tools

sudo apt -get install rpi.gpio -y

Naslov i2c bo morda treba spremeniti v datoteki lcddriver.py. Naslov lahko poiščete tako, da vnesete naslednji ukaz.

i2cdetect -y 1

4. Namestite in konfigurirajte LIRC

Ustvarite nov imenik in naložite priložene datoteke na to mesto.

Večina internetnih brskalnikov ne prenese datotek brez razširitev. Če želite to odpraviti, sta bili dve datoteki naloženi z začasnimi razširitvami. Tako "lircrc.deleteExtension" kot "modules.deleteExtension" bi morala biti dejansko brez razširitev, datoteke pa bi morali po uspešnem prenosu preimenovati v "lircrc" in "module".

Ta korak namesti in konfigurira odvisnosti za paket infrardečega daljinskega upravljalnika Linux (LIRC). Za več informacij glejte vadnico za nastavitev LIRC na:

Najprej namestite knjižnico, nato kopirajte vključene datoteke v ustrezne imenike, kot je prikazano v spodnjih ukazih. Na koncu znova zaženite storitev lircd.

sudo apt-get install python3-lirc -y

Iz novo ustvarjenega imenika izvedite naslednje ukaze, da premaknete konfiguracijske datoteke na njihova prava mesta.

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

moduli sudo mv /etc /

Nato znova zaženite storitev lircd tako, da zaženete:

sudo /etc/init.d/lircd ponovni zagon

Nato uredite datoteko /boot/config.txt in dodajte naslednjo vrstico

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

Znova zaženite pi, da bodo spremembe začele veljati.

sudo ponovni zagon

5. Omogočite I2C in uredite CLIENT za vsakega igralca

Nato bomo omogočili vmesnik I2C. To je mogoče storiti z uporabo

sudo raspi-config

in omogočanje I2C v meniju "možnosti vmesnika".

6. Urejanje predvajalnika CLIENT in LTSERVER

Imenik iger mora zdaj vsebovati štiri preostale datoteke.

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

Zadnji korak pri konfiguraciji pi je, da vsakemu pi dodelite številko KLIJENTE in dodate lokacijo strežnika. To naredite tako, da za vsako pi uredite priloženo datoteko "player.py", tako da imajo vsi različno številko KLIJENTA. Številka KLIJENTA je dodeljena v 3. vrstici player.py. Prvemu pi dodelite stranko "1", drugo "2" in tretjo stranko "3".

Vrstico LTSERVER je treba spremeniti v naslov IP strežnika. To ugotovite tako, da vnesete 'ifconfig | grep "inet addr" 'v terminalu strežniškega računalnika.

4. korak: Sestavljanje pištole

Sestava pištole
Sestava pištole
Sestava pištole
Sestava pištole

Priključite vsako pištolo v skladu s shemo ožičenja in zgornjo shemo.

Vsaka zunanja naprava je povezana z naslednjimi zatiči GPIO na Pi Zero:

  • Zvočni signal: GPIO5
  • Sprožilec: GPIO26
  • Ponovno naloži: GPIO12
  • IR oddajnik: GPIO25
  • IR sprejemniki: GPIO18
  • RDEČA LED: GPIO17
  • ZELENA LED: GPIO27
  • MODRA LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Za več podrobnosti si oglejte shemo.

Po želji lahko laserske pištole 3D natisnemo z uporabo priloženih datotek s koračnimi modeli. Upoštevajte, da morata biti natisnjeni dve datoteki "front1STL. STL".

5. korak: Igranje iger

Igranje iger
Igranje iger
Igranje iger
Igranje iger
Igranje iger
Igranje iger

Igra se zažene z zagonom datoteke "ltag.py" na strežniku. Ko je to storjeno, se lahko vsak od igralcev poveže s strežnikom tako, da zažene svojo datoteko "player.py".

Opomba: Po priključitvi akumulatorja lahko traja do ene minute, da se pi zažene.

Morda bi bilo koristno dodati tudi opravilo cron, ki samodejno zažene datoteko player.py, ko se pi zažene. To smo težko uresničili in na koncu smo dodali vrstico v datoteko "/etc/rc.local" na vsakem pisu za zagon datoteke "player.py". To omogoča, da se igra zažene, ne da bi morali vnesti SSH v Pi za zagon predvajalnikove skripte.

Ko se igra začne, ko so igralci pripravljeni, se prikaže grafični vmesnik, ki omogoča konfiguriranje nekaterih nastavitev igre. Igra se začne po pritisku gumba Start.

Po vsaki igri se prikaže končni grafični vmesnik s statistiko o predhodni igri, vključno z oznakami, globalnimi odstotki in trajanjem igre.

Opomba: Zaradi omejitev v knjižnicah programske opreme lokacije oznak poročila o točnosti niso reprezentativne za dejanske laserske oznake. V trenutni različici je slika poročila o natančnosti predvajalnika zgolj estetska v upanju na prihodnjo različico z dejansko izvedbo lokacije oznake.

6. korak: Prihodnje izboljšave

Prihodnje izboljšave
Prihodnje izboljšave
Prihodnje izboljšave
Prihodnje izboljšave

Na splošno je bil projekt velik uspeh. Ob tem smo razmišljali o nekaj dodatnih funkcijah, ki bi jih lahko dodali prihodnji izdaji.

  • Čvrstejša oblika sprožilca za 3D tiskane pištole
  • Končni spustni meni GUI za prikaz statistike preteklih iger
  • Več infrardečih sprejemnikov, ki bi jih lahko pritrdili na telovnike igralcev
  • Dodatni načini igre, ki jih lahko izberete v grafičnem vmesniku Pregame
  • Natančnejši algoritem lokacije oznake na strani s statistiko igralcev

Priporočena: