Sisukord:

Infrapuna -lasermärk Raspberry Pi Zero -ga: 6 sammu (piltidega)
Infrapuna -lasermärk Raspberry Pi Zero -ga: 6 sammu (piltidega)

Video: Infrapuna -lasermärk Raspberry Pi Zero -ga: 6 sammu (piltidega)

Video: Infrapuna -lasermärk Raspberry Pi Zero -ga: 6 sammu (piltidega)
Video: Умный выключатель в круглый подрозетник с радио повторителем, легкая и быстрая установка 2024, November
Anonim
Infrapuna lasermärk Raspberry Pi Zero -ga
Infrapuna lasermärk Raspberry Pi Zero -ga

See juhend juhendab infrapunase lasermärgi mängu loomise protsessi, kasutades baasserveri arvutit ja iga mängija jaoks Raspberry Pi nulli. Projekt tugineb serveriga suhtlemiseks suuresti Wifi -ühendusele, mis muudab Pi suurepäraseks kandidaadiks.

Selles projektis kasutatud server oli vana lauaarvuti Linuxiga. Arvuti ei pea olema midagi erilist ja tõenäoliselt saab seda isegi Raspberry Pi 3 -st käivitada. Server ja kõik pi nullid peavad mängu ajal olema ühendatud sama võrguga.

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid

Allpool on toodud vajalike materjalide kirjeldus ja mõned lingid. Allpool olev materjalide loend on 3 relva jaoks.

  • Serveri arvuti (1)
  • Vaarika Pi Zero W (3) Adafruit
  • Vähemalt 4 GB SD -kaart (3) Amazon
  • IR LED saatja (3)
  • IR -vastuvõtja (6) Amazon
  • Punane LED (3)
  • Sinine LED (3)
  • Roheline LED (3)
  • Passiivne sumin (3) Amazon
  • Nupp (6)
  • LCD 16x2 ekraan I2C -adapteriga (3) Amazon
  • Kaasaskantav aku (3) Amazon
  • Mikro -tavaline USB -kaabel (3) Amazon
  • PN2222 transistor (3)
  • 100Ω takisti (3)
  • 1 kΩ takisti (9)

Valikulised üksused:

  • Vest (3) Amazon
  • Lintkaabli pikendus (3) Amazon

Selles projektis võtsime lõpuks IR -LED -saatja vanast lasermärgipüstolite komplektist, mille saatja ümber oli must koonus, et aidata iga relva laskmist kitsendada. Iga üldine saatja peaks siiski töötama.

Lisaks ülaltoodud esemetele trükiti laserpüstolid ise 3D -trükisega. See projekt nõuaks seega ka juurdepääsu 3D -printerile ja hõõgniidile. Kokku tuli kolme relva eest kokku umbes 350 dollarit.

Samm: serveri seadistamine

Serveri seadistamine
Serveri seadistamine
Serveri seadistamine
Serveri seadistamine
Serveri seadistamine
Serveri seadistamine

Esimene asi, mida serveri seadistamiseks vaja on, on Mosquitto MQTT maakleriteenuse installimine. Mosquitto on teenus, mis pakub raamistikku mängu kõigi seadmete vaheliseks suhtluseks. See võimaldab serveril saata sõnumeid igale teenusega ühendatud Pisile. Käivitage terminalis järgmised käsud.

sudo apt-get update

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

Mõned serveri graafilised kasutajaliidesed loodi Pygubu nimelise graafilise kasutajaliidese abil. Selle saab installida järgmiselt:

pip3 installi pygubu

Lisateavet pygubu kohta leiate aadressilt

Kui MQTT ja Pygubu on installitud, looge uus kataloog ja kopeerige manustatud failid. Kataloog peaks sisaldama järgmist:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • ise.png
  • vaenlased.png
  • laser.jpg

Märkus. Selles projektis kasutatud lisatud pilte ei loonud arendusmeeskond ja seetõttu ei pretendeeri need autorsusele.

Samm: Raspberry Pi seadistamine

Vaarika Pi seadistamine
Vaarika Pi seadistamine

Seda sammu tuleb korrata iga vaarikapisiku puhul.

1. Installige operatsioonisüsteem

Esiteks alustage Raspbiani värske installimisega. Soovitame kasutada Lite -versiooni, kuna Pi -l on seda vähem käsitseda, kuid kumbki versioon peaks hästi toimima. Allalaadimise leiate aadressilt

2. Installige MQTT

Järgmisena peame installima MQTT maakleriteenuse. Me kasutame selleks Mosquitto. Käivitage terminalis järgmised käsud.

sudo apt-get update

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

Mosquitto on teenus, mis pakub raamistikku mängu kõigi seadmete vaheliseks suhtluseks. See võimaldab serveril saata sõnumeid igale teenusega ühendatud Pisile.

3. Installige I2C Tools

Järgmine käsk installib teegid, mida kasutatakse LCD -ekraanil.

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

sudo apt -get install rpi.gpio -y

Võimalik, et failis lcddriver.py tuleb muuta i2c aadressi. Aadressi leiate järgmise käsu sisestamisega.

i2cdetect -y 1

4. Installige ja konfigureerige LIRC

Looge uus kataloog ja laadige lisatud failid sellesse kohta alla.

Enamik Interneti -brausereid ei lae faile ilma laienditeta alla. Selle vältimiseks laaditi kaks faili üles ajutiste laienditega. Nii "lircrc.deleteExtension" kui ka "modules.deleteExtension" peaksid tegelikult olema laiendideta ja failid tuleks pärast edukat allalaadimist ümber nimetada "lircrc" ja "mooduliteks".

See samm installib ja konfigureerib sõltuvused Linuxi infrapunakaugjuhtimispuldi (LIRC) paketist. Lisateabe saamiseks vaadake LIRC seadistamise õpetust:

Esmalt installige kogu, seejärel kopeerige kaasatud failid vastavatesse kataloogidesse, nagu on näidatud allolevates käskudes. Lõpuks taaskäivitage lircd -teenus.

sudo apt-get install python3-lirc -y

Käivitage äsja loodud kataloogist konfiguratsioonifailide õigesse asukohta teisaldamiseks järgmised käsud.

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

sudo mv moodulid /etc /

Seejärel taaskäivitage lircd teenus, käivitades:

sudo /etc/init.d/lircd taaskäivitage

Seejärel redigeerige faili /boot/config.txt ja lisage järgmine rida

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

Taaskäivitage oma pi, et muudatused jõustuksid.

sudo taaskäivitamine

5. Luba I2C ja muuda iga mängija jaoks KLIENTI

Järgmisena lubame I2C liidese. Seda saab teha kasutades

sudo raspi-config

ja lubades I2C menüüs "liidese valikud".

6. Muutke mängija CLIENT ja LTSERVER

Mängukataloog peaks nüüd sisaldama nelja ülejäänud faili.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • mängija.py

Viimane samm pi konfigureerimisel on igale pi määramine KLIENDI number ja serveri asukoha lisamine. Selleks redigeeritakse iga pi jaoks lisatud faili "player.py" nii, et neil kõigil oleks erinev KLIENDI number. KLIENDI number määratakse mängija.py 3. reale. Määrake esimene pi kliendiks "1", teine "2" ja kolmas kliendiks "3".

LTSERVERi rida tuleks muuta serveri IP -aadressiks. Selle leiate, tippides 'ifconfig | grep "inet addr" 'serveriarvuti terminalis.

4. samm: relva kokkupanek

Püstoli kokkupanek
Püstoli kokkupanek
Püstoli kokkupanek
Püstoli kokkupanek

Jätkake kõigi relvade ühendamist vastavalt ühendusskeemile ja ülaltoodud skeemile.

Kõik välisseadmed on ühendatud järgmiste Pi Zero GPIO -kontaktidega:

  • Signaal: GPIO5
  • Päästik: GPIO26
  • Laadige uuesti: GPIO12
  • IR -saatja: GPIO25
  • IR vastuvõtjad: GPIO18
  • PUNANE LED: GPIO17
  • ROHELINE LED: GPIO27
  • SININE LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Lisateabe saamiseks vaadake skemaatikat.

Soovi korral saab laserpüstolid 3D -printida, kasutades kaasasolevaid samm -mudeli faile. Pidage meeles, et kaks "front1STL. STL" faili tuleb printida.

Samm 5: Mängimine

Mäng
Mäng
Mäng
Mäng
Mäng
Mäng

Mängu alustamiseks käivitatakse serveris fail "ltag.py". Kui see on tehtud, saavad kõik mängijad serveriga ühenduse luua, käivitades vastava faili "player.py".

Märkus. Pärast aku ühendamist võib pi käivitamiseks kuluda kuni minut.

Samuti võib olla kasulik lisada croni töö, mis käivitab automaatselt faili player.py pärast pi käivitamist. Meil oli raske seda tööd teha ja lõpuks lisasime igale Pis -failile "/etc/rc.local" rea, et käivitada fail "player.py". See võimaldab mängu käivitada ilma, et peaksite mängija skripti käivitamiseks SS -i sisse lülitama.

Kui mäng on mängijate jaoks valmis, kuvatakse GUI, mis võimaldab konfigureerida mõningaid mängu seadeid. Mäng algab pärast nupu Start vajutamist.

Pärast iga mängu kuvatakse lõplik graafiline kasutajaliides koos eelmise mängu statistikaga, sealhulgas sildid, globaalsed protsendid ja mängu kestus.

Märkus. Tarkvararaamatukogude piirangute tõttu ei ole täpsusaruande siltide asukohad tegelikke lasermärgendeid. Praeguses versioonis on mängija täpsusaruande pilt puhtalt esteetiline, lootes tulevast versiooni koos tegeliku märgendi asukoha rakendamisega.

6. samm: tulevased täiustused

Tulevased parandused
Tulevased parandused
Tulevased parandused
Tulevased parandused

Üldiselt oli projekt suur edu. Teel mõtlesime välja mõned lisavõimalused, mida võidakse tulevasse väljaandesse lisada.

  • Tugevam 3D -prindipüstolite päästiku disain
  • GUI rippmenüü lõpetamine eelmiste mängude statistika kuvamiseks
  • Rohkem infrapuna vastuvõtjaid, mida saaks mängijate vestide külge kinnitada
  • Täiendavad mängurežiimid, mida saab valida Pregame GUI -s
  • Täpsem märgendi asukoha algoritm mängijate statistika lehel

Soovitan: