Turinys:

Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“: 6 žingsniai (su nuotraukomis)
Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“: 6 žingsniai (su nuotraukomis)

Video: Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“: 6 žingsniai (su nuotraukomis)

Video: Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“: 6 žingsniai (su nuotraukomis)
Video: Высокая плотность 2022 2024, Liepa
Anonim
Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“
Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“

Šioje instrukcijoje aprašomas Infraraudonųjų spindulių lazerinio žymos žaidimo kūrimo procesas naudojant bazinį serverio kompiuterį ir „Raspberry Pi“nulį kiekvienam žaidėjui. Projektas labai priklauso nuo „Wifi“ryšio, kad galėtų bendrauti su serveriu, todėl „Pi“yra puikus kandidatas.

Šiame projekte naudojamas serveris buvo senas stalinis kompiuteris su „Linux“. Kompiuteris neturi būti nieko ypatingo ir greičiausiai gali būti paleistas net iš „Raspberry Pi 3.“. Žaidimo metu serveris ir kiekvienas „pi zero“turi būti prijungtas prie to paties tinklo.

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos

Žemiau pateikiamas reikalingų medžiagų aprašymas ir kai kurios nuorodos. Žemiau pateiktas medžiagų sąrašas skirtas 3 ginklams.

  • Serverio kompiuteris (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Bent 4 GB SD kortelė (3) „Amazon“
  • IR LED siųstuvas (3)
  • IR imtuvas (6) „Amazon“
  • Raudonas šviesos diodas (3)
  • Mėlynas šviesos diodas (3)
  • Žalias šviesos diodas (3)
  • Pasyvus garsinis signalas (3) „Amazon“
  • Mygtukas (6)
  • 16x2 skystųjų kristalų ekranas su I2C adapteriu (3) „Amazon“
  • Nešiojamas akumuliatorius (3) „Amazon“
  • Mikro - įprastas USB kabelis (3) „Amazon“
  • PN2222 tranzistorius (3)
  • 100Ω rezistorius (3)
  • 1kΩ rezistorius (9)

Neprivalomi elementai:

  • Liemenė (3) „Amazon“
  • Juostelės kabelio prailginimas (3) „Amazon“

Šiame projekte mes galiausiai paėmėme IR LED siųstuvą iš seno lazerinių žymeklių rinkinio, kuris aplink siųstuvą turėjo juodą kūgį, kad padėtų susiaurinti kiekvieno pistoleto šūvį. Tačiau bet koks bendras siųstuvas turėtų veikti.

Be aukščiau išvardytų elementų, patys lazeriniai ginklai buvo atspausdinti 3D. Todėl šiam projektui taip pat reikės prieigos prie 3D spausdintuvo ir gijų. Apskritai už tris ginklus bendra suma siekė apie 350 USD.

2 veiksmas: serverio sąranka

Serverio sąranka
Serverio sąranka
Serverio sąranka
Serverio sąranka
Serverio sąranka
Serverio sąranka

Pirmas dalykas, kurio reikia norint nustatyti serverį, yra įdiegti „Mosquitto MQTT Broker Service“. „Mosquitto“yra paslauga, suteikianti ryšį tarp kiekvieno žaidimo įrenginio. Tai leidžia serveriui siųsti pranešimus kiekvienam prie paslaugos prisijungusiam Pis. Terminale paleiskite šias komandas.

sudo apt-get atnaujinimas

sudo apt-get atnaujinti sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 įdiegti paho-mqtt

Kai kurios serverio GUI buvo sukurtos naudojant GUI dizainerį Pygubu. Tai galima įdiegti vykdant:

pip3 įdiegti pygubu

Daugiau informacijos apie pygubu rasite adresu

Įdiegę „MQTT“ir „Pygubu“, sukurkite naują katalogą ir nukopijuokite pridėtus failus. Į katalogą turėtų būti įtraukta:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • priešai.png
  • lazeris.jpg

Pastaba: Pridėtus šiame projekte naudojamus vaizdus sukūrė ne kūrėjų komanda, todėl jie nepretenduoja į autorystę.

3 žingsnis: „Raspberry Pi“sąranka

„Raspberry Pi“sąranka
„Raspberry Pi“sąranka

Šį veiksmą reikės pakartoti su kiekvienu iš aviečių.

1. Įdiekite operacinę sistemą

Pirmiausia pradėkite nuo naujo „Raspbian“diegimo. Mes rekomenduotume naudoti „Lite“versiją, nes „Pi“turi mažiau tvarkyti, tačiau bet kuri versija turėtų veikti gerai. Atsisiuntimą galima rasti adresu

2. Įdiekite MQTT

Toliau turime įdiegti MQTT tarpininko paslaugą. Tam mes naudosime „Mosquitto“. Terminale paleiskite šias komandas.

sudo apt-get atnaujinimas

sudo apt-get atnaujinti sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 įdiegti paho-mqtt

„Mosquitto“yra paslauga, suteikianti ryšį tarp kiekvieno žaidimo įrenginio. Tai leidžia serveriui siųsti pranešimus kiekvienam prie paslaugos prisijungusiam Pis.

3. Įdiekite „I2C Tools“

Ši komanda įdiegs LCD ekranui naudojamas bibliotekas.

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

sudo apt -get install rpi.gpio -y

„I2c“adresą gali tekti pakeisti faile „lcddriver.py“. Adresą galite rasti įvesdami šią komandą.

i2cdetect -y 1

4. Įdiekite ir sukonfigūruokite LIRC

Sukurkite naują katalogą ir atsisiųskite pridėtus failus į šią vietą.

Dauguma interneto naršyklių neatsisiųs failų be plėtinių. Norėdami tai išspręsti, du failai buvo įkelti naudojant laikinus plėtinius. Ir „lircrc.deleteExtension“, ir „modules.deleteExtension“iš tikrųjų turėtų būti be plėtinių, o sėkmingai atsisiuntę failai turėtų būti pervadinti į „lircrc“ir „modules“.

Šis žingsnis įdiegia ir sukonfigūruoja „Linux Infrared Remote Control“(LIRC) paketo priklausomybes. Norėdami gauti daugiau informacijos, žr. LIRC nustatymo vadovėlį šiuo adresu:

Pirmiausia įdiekite biblioteką, tada nukopijuokite įtrauktus failus į atitinkamus katalogus, kaip parodyta toliau pateiktose komandose. Galiausiai iš naujo paleiskite „lircd“paslaugą.

sudo apt-get install python3-lirc -y

Iš naujai sukurto katalogo vykdykite šias komandas, kad perkeltumėte konfigūracijos failus į teisingas vietas.

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

sudo mv moduliai /etc /

Tada paleiskite „lircd“paslaugą paleisdami:

sudo /etc/init.d/lircd paleiskite iš naujo

Tada redaguokite failą /boot/config.txt ir pridėkite šią eilutę

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

Iš naujo paleiskite „pi“, kad pakeitimai įsigaliotų.

sudo perkraukite

5. Įjunkite I2C ir redaguokite kiekvieno žaidėjo KLIENTĄ

Toliau įgalinsime I2C sąsają. Tai galima padaryti naudojant

sudo raspi-config

ir įjungti I2C meniu „sąsajos parinktys“.

6. Redaguoti „Player CLIENT“ir „LTSERVER“

Žaidimų kataloge dabar turėtų būti likę keturi failai.

  • i2c_lib.py
  • lcddriver.py
  • skamba.py
  • žaidėjas.py

Paskutinis pi konfigūravimo žingsnis yra kiekvienam pi priskirti KLIENTO numerį ir pridėti serverio vietą. Tai daroma redaguojant įtrauktą „player.py“failą kiekvienam pi, kad jie visi turėtų skirtingą KLIENTO numerį. KLIENTO numeris priskiriamas player.py 3 eilutei. Pirmąjį pi priskirkite klientui „1“, antrąjį - „2“, o trečiąjį - klientui „3“.

LTSERVER eilutė turėtų būti pakeista į serverio IP adresą. Tai galima rasti įvedus „ifconfig | grep "inet addr" 'serverio kompiuterio terminale.

4 žingsnis: ginklo surinkimas

Ginklų surinkimas
Ginklų surinkimas
Ginklų surinkimas
Ginklų surinkimas

Toliau sujunkite kiekvieną iš pistoletų pagal prijungimo schemą ir aukščiau pateiktą schemą.

Kiekvienas išorinis įrenginys yra prijungtas prie šių GPIO kaiščių „Pi Zero“:

  • Garsinis signalas: GPIO5
  • Aktyviklis: GPIO26
  • Perkrauti: GPIO12
  • IR siųstuvas: GPIO25
  • IR imtuvai: GPIO18
  • RAUDONAS šviesos diodas: GPIO17
  • ŽALIAS šviesos diodas: GPIO27
  • MĖLYNAS šviesos diodas: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Daugiau informacijos rasite schemoje.

Jei pageidaujate, lazerinius ginklus galima atspausdinti 3D naudojant pridedamus žingsnio modelio failus. Atminkite, kad du „front1STL. STL“failai turi būti atspausdinti.

5 žingsnis: Žaidimas

Žaidimas
Žaidimas
Žaidimas
Žaidimas
Žaidimas
Žaidimas

Žaidimas pradedamas paleidžiant serveryje „ltag.py“failą. Kai tai bus padaryta, kiekvienas žaidėjas gali prisijungti prie serverio paleisdamas atitinkamą „player.py“failą.

Pastaba: prijungus akumuliatorių, gali užtrukti iki minutės, kol „pi“bus paleistas.

Taip pat gali būti naudinga pridėti „cron“užduotį, kuri automatiškai paleidžia failą player.py, kai tik prasideda „pi“. Mums buvo sunku tai padaryti ir galiausiai pridėjome eilutę prie kiekvieno „Pis“failo „/etc/rc.local“, kad paleistume „player.py“failą. Tai leidžia pradėti žaidimą neprisijungus prie „Pi“, kad būtų paleistas žaidėjo scenarijus.

Kai žaidimas bus pradėtas, kai žaidėjai bus paruošti, pasirodys GUI, leidžianti sukonfigūruoti kelis žaidimo nustatymus. Žaidimas prasideda paspaudus mygtuką Pradėti.

Po kiekvieno žaidimo pasirodys baigiama GUI su ankstesnio žaidimo statistika, įskaitant žymas, bendrus procentus ir žaidimo trukmę.

Pastaba: dėl programinės įrangos bibliotekų apribojimų tikslumo ataskaitos žymų vietos neatspindi tikrųjų lazerinių žymų. Dabartinėje versijoje žaidėjo tikslumo ataskaitos vaizdas yra skirtas tik estetikai, tikintis būsimos versijos, kurioje bus įdiegta tikroji žymos vieta.

6 žingsnis: būsimi patobulinimai

Būsimi patobulinimai
Būsimi patobulinimai
Būsimi patobulinimai
Būsimi patobulinimai

Apskritai projektas buvo labai sėkmingas. Pakeliui mes galvojome apie keletą papildomų funkcijų, kurios gali būti pridėtos būsimame leidime.

  • Tvirtesnis 3D spausdintų ginklų paleidimo įtaisas
  • Baigiamas išskleidžiamasis meniu GUI, kad būtų rodoma ankstesnių žaidimų statistika
  • Daugiau infraraudonųjų spindulių imtuvų, kuriuos būtų galima pritvirtinti prie žaidėjų liemenių
  • Papildomi žaidimo režimai, kuriuos galima pasirinkti „Pregame“GUI
  • Tikslesnis žymos vietos algoritmas žaidėjų statistikos puslapyje

Rekomenduojamas: