INHOUDSOPGAWE:

Infrarooi lasermerk met Raspberry Pi Zero: 6 stappe (met foto's)
Infrarooi lasermerk met Raspberry Pi Zero: 6 stappe (met foto's)

Video: Infrarooi lasermerk met Raspberry Pi Zero: 6 stappe (met foto's)

Video: Infrarooi lasermerk met Raspberry Pi Zero: 6 stappe (met foto's)
Video: Automatische kalender-shift planner in Excel 2024, November
Anonim
Infrarooi lasermerk met framboos Pi nul
Infrarooi lasermerk met framboos Pi nul

Hierdie instruksie sal die proses deurloop om 'n infrarooi laser tag -speletjie te skep met 'n basiese bedienerrekenaar en 'n Raspberry Pi -nul vir elke speler. Die projek maak sterk staat op 'n Wifi -verbinding om met die bediener te kommunikeer, wat die Pi 'n uitstekende kandidaat maak.

Die bediener wat in hierdie projek gebruik is, was 'n ou tafelrekenaar met Linux. Die rekenaar hoef niks spesiaals te wees nie, en kan waarskynlik selfs vanaf 'n Raspberry Pi 3. Die bediener en elk van die pi zero's moet tydens die spel aan dieselfde netwerk gekoppel wees.

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal

Die beskrywing en 'n paar skakels vir die benodigde materiaal word hieronder getoon. Die materiaallys hieronder is vir 3 gewere.

  • Bedienerrekenaar (1)
  • Framboos Pi Zero W (3) Adafruit
  • Minstens 4 GB SD -kaart (3) Amazon
  • IR LED -sender (3)
  • IR -ontvanger (6) Amazon
  • Rooi LED (3)
  • Blou LED (3)
  • Groen LED (3)
  • Passiewe gonser (3) Amazon
  • Drukknoppie (6)
  • LCD 16x2 skerm met I2C -adapter (3) Amazon
  • Draagbare battery (3) Amazon
  • Mikro na gewone USB -kabel (3) Amazon
  • PN2222 Transistor (3)
  • 100Ω Weerstand (3)
  • 1kΩ Weerstand (9)

Opsionele items:

  • Vest (3) Amazon
  • Lintkabelverlenging (3) Amazon

In hierdie projek het ons uiteindelik die IR LED -sender geneem uit 'n ou stel laser -etiketgewere met 'n swart kegel om die sender om die skoot van elke geweer te help vernou. Enige algemene sender moet egter werk.

Benewens die bogenoemde items, is die laserpistole self 3D gedruk. Hierdie projek vereis dus ook toegang tot 'n 3D -drukker en filament. In totaal het die totaal vir drie gewere ongeveer $ 350 beloop.

Stap 2: bedieneropstelling

Bedieneropstelling
Bedieneropstelling
Bedieneropstelling
Bedieneropstelling
Bedieneropstelling
Bedieneropstelling

Die eerste ding wat nodig is om die bediener op te stel, is om die Mosquitto MQTT Broker Service te installeer. Mosquitto is die diens wat 'n raamwerk bied vir kommunikasie tussen elk van die toestelle in die spel. Dit stel die bediener in staat om boodskappe te stuur na elk van die PIS's wat aan die diens gekoppel is. Voer die volgende opdragte in die terminale uit.

sudo apt-get update

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

Sommige van die GUI's vir die bediener is geskep met 'n GUI -ontwerper genaamd Pygubu. Dit kan geïnstalleer word deur:

pip3 installeer pygubu

Meer inligting oor pygubu kan gevind word op

Sodra MQTT en Pygubu geïnstalleer is, skep 'n nuwe gids en kopieer die aangehegte lêers. Die gids moet die volgende bevat:

  • ltag.py
  • voorspel.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • vyande.png
  • laser.jpg

Opmerking: die aangehegte beelde wat in hierdie projek gebruik is, is nie deur die ontwikkelingspan geskep nie en maak dus nie aanspraak op outeurskap nie.

Stap 3: Opstelling van Framboos Pi

Opstelling van framboos Pi
Opstelling van framboos Pi

Hierdie stap moet herhaal word op elk van die Framboospis.

1. Installeer bedryfstelsel

Begin eers met 'n nuwe installering van Raspbian. Ons beveel aan dat u die Lite -weergawe gebruik, aangesien dit minder is vir die Pi om te hanteer, maar beide weergawes behoort goed te werk. Die aflaai kan gevind word op

2. Installeer MQTT

Vervolgens moet ons die MQTT -makelaarsdiens installeer. Ons sal Mosquitto hiervoor gebruik. Voer die volgende opdragte in die terminale uit.

sudo apt-get update

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

Mosquitto is die diens wat 'n raamwerk bied vir kommunikasie tussen elk van die toestelle in die spel. Dit stel die bediener in staat om boodskappe te stuur na elk van die Pis wat aan die diens gekoppel is.

3. Installeer I2C Tools

Die volgende opdrag sal biblioteke installeer wat vir die LCD -skerm gebruik word.

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

sudo apt -get install rpi.gpio -y

Die i2c -adres moet moontlik in die lcddriver.py -lêer verander word. U kan die adres vind deur die volgende opdrag in te voer.

i2cdetect -y 1

4. Installeer en konfigureer LIRC

Skep 'n nuwe gids en laai die aangehegte lêers af na hierdie plek.

Die meeste internetblaaiers sal nie lêers aflaai sonder uitbreidings nie. Om dit te vermy, is twee van die lêers opgelaai met tydelike uitbreidings. Beide die "lircrc.deleteExtension" en "modules.deleteExtension" behoort in werklikheid uitbreidingloos te wees en die lêers moet hernoem word na "lircrc" en "modules" nadat dit suksesvol afgelaai is.

Hierdie stap installeer en konfigureer die afhanklikhede van die Linux Infrared Remote Control (LIRC) pakket. Vir meer inligting, sien die handleiding vir die opstel van LIRC op:

Installeer eers die biblioteek en kopieer dan die meegeleverde lêers na hul onderskeie gidse soos in die onderstaande opdragte getoon. Laastens, herbegin die lircd -diens.

sudo apt-get install python3-lirc -y

Voer die volgende opdragte uit die nuutgeskepte gids uit om die konfigurasielêers na hul korrekte liggings te skuif.

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

sudo mv modules /etc /

Herbegin dan die lircd -diens deur te werk:

sudo /etc/init.d/lircd herbegin

Wysig dan die /boot/config.txt -lêer en voeg die volgende reël by

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

Herlaai u pi sodat die veranderinge in werking kan tree.

sudo herlaai

5. Aktiveer I2C en wysig KLIËNT vir elke speler

Vervolgens maak ons die I2C -koppelvlak moontlik. Dit kan gedoen word met behulp van

sudo raspi-config

en maak die I2C moontlik in die menu "koppelvlakopsies".

6. Wysig Player CLIENT en LTSERVER

Die spelgids moet nou die vier oorblywende lêers bevat.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • speler.py

Die laaste stap in die opstel van die pi is om aan elke pi 'n KLIENT nommer toe te ken en die ligging van die bediener by te voeg. Dit word gedoen deur die ingesluit "player.py" -lêer vir elke pi te wysig sodat hulle almal 'n ander KLIENTENommer het. Die KLIENT nommer word toegeken op reël 3 van player.py. Wys die eerste pi aan as kliënt "1", die tweede as "2" en die derde as kliënt "3".

Die LTSERVER -reël moet verander word na die IP -adres van die bediener. Dit word gevind deur 'ifconfig | grep "inet addr" 'in die terminale van die bedienerrekenaar.

Stap 4: geweerversameling

Gun Assembly
Gun Assembly
Gun Assembly
Gun Assembly

Gaan voort om elk van die gewere te bedraad volgens die bedradingsdiagram en die skema hierbo.

Elke randapparatuur is gekoppel aan die volgende GPIO -penne op die Pi Zero:

  • Gonser: GPIO5
  • Sneller: GPIO26
  • Herlaai: GPIO12
  • IR -sender: GPIO25
  • IR -ontvangers: GPIO18
  • ROOI LED: GPIO17
  • GROEN LED: GPIO27
  • BLOU LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Sien die skema vir meer besonderhede.

As u wil, kan die laserpistole 3D -gedruk word met behulp van die ingesluit stap -model lêers. Hou in gedagte dat twee van die "front1STL. STL" lêers gedruk moet word.

Stap 5: Game Play

Speletjie speel
Speletjie speel
Speletjie speel
Speletjie speel
Speletjie speel
Speletjie speel

Die spel word begin deur die 'ltag.py' -lêer op die bediener uit te voer. Sodra dit gedoen is, kan elkeen van die spelers aan die bediener koppel deur hul onderskeie 'player.py' -lêer uit te voer.

Opmerking: nadat die battery ingeprop is, kan dit 'n minuut neem voordat die pi begin.

Dit kan ook handig wees om 'n cron -taak by te voeg wat die speler.py -lêer outomaties uitvoer sodra die pi begin. Ons het dit moeilik gehad om dit aan die gang te kry en het uiteindelik 'n reël bygevoeg by die '/etc/rc.local' lêer op elk van die Pis om die 'player.py' lêer uit te voer. Hierdeur kan die spel begin word sonder dat u in die Pi's moet inskakel om die spelerskrip te laat loop.

Sodra die spel begin is met die spelers gereed, sal 'n GUI verskyn waarmee 'n paar van die spelinstellings gekonfigureer kan word. Die spel begin nadat die Start -knoppie ingedruk is.

Na elke wedstryd verskyn 'n eindige GUI met statistieke oor die vorige wedstryd, insluitend etikette, globale persentasies en duur van die spel.

Let wel: As gevolg van die beperkinge in sagtewarebiblioteke, is die ligging van die akkuraatheidsverslag nie verteenwoordigend van die werklike lasermerk nie. In die huidige weergawe is die beeld van die speler -akkuraatheidsverslag uitsluitlik bedoel vir estetika in die hoop op 'n toekomstige weergawe met die werklike implementering van die tag -ligging.

Stap 6: Toekomstige verbeterings

Toekomstige verbeterings
Toekomstige verbeterings
Toekomstige verbeterings
Toekomstige verbeterings

Oor die algemeen was die projek 'n groot sukses. Onderweg het ons aan 'n paar ekstra funksies gedink wat moontlik by 'n toekomstige uitgawe gevoeg kan word.

  • Sterker snellerontwerp vir die 3D -gedrukte gewere
  • Beëindig die GUI-keuselys om statistieke van vorige speletjies te vertoon
  • Meer infrarooi ontvangers wat aan die spelers se baadjies geheg kan word
  • Bykomende spelmetodes wat gekies kan word in die PREGAME GUI
  • Meer akkurate tag -ligging -algoritme op die spelersstatistiekbladsy

Aanbeveel: