Turinys:
- 1 žingsnis: medžiagos
- 2 veiksmas: serverio sąranka
- 3 žingsnis: „Raspberry Pi“sąranka
- 4 žingsnis: ginklo surinkimas
- 5 žingsnis: Žaidimas
- 6 žingsnis: būsimi patobulinimai
Video: Infraraudonųjų spindulių lazerinė etiketė su „Raspberry Pi Zero“: 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Š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
Ž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
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
Šį 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
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 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
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:
Infraraudonųjų spindulių valdomas MP3 grotuvas: 6 žingsniai (su nuotraukomis)
Infraraudonųjų spindulių valdomas MP3 grotuvas: sukurkite infraraudonųjų spindulių nuotolinio valdymo pulto MP3 grotuvą už maždaug 10 USD (USD). Jis turi įprastas funkcijas: leisti, pristabdyti, leisti kitą ar ankstesnį, leisti vieną ar visas dainas. Jis taip pat turi ekvalaizerio variantus ir garsumo valdymą. Visa tai galima valdyti per
Infraraudonųjų spindulių jutiklio naudojimas su „Arduino“: 8 žingsniai (su nuotraukomis)
Infraraudonųjų spindulių jutiklio naudojimas su „Arduino“: kas yra infraraudonųjų spindulių (dar žinomas kaip IR) jutiklis? IR jutiklis yra elektroninis prietaisas, kuris nuskaito IR signalus tam tikruose standartų apibrėžtuose dažnių diapazonuose ir paverčia juos elektriniais signalais išvesties kaištyje (paprastai vadinamas signalo kaiščiu) . IR signalas
„Arduino“lazerinis infraraudonųjų spindulių termometras: 7 žingsniai (su nuotraukomis)
„Arduino“lazerinis infraraudonųjų spindulių termometras: Šiame projekte aš jums parodysiu, kaip sukurti skaitmeninį lazerinį infraraudonųjų spindulių termometrą su pasirinktiniu 3D spausdinimo korpusu
„Arduino“infraraudonųjų spindulių termometro pistoleto MDF dėklas: 4 žingsniai (su nuotraukomis)
„Arduino“infraraudonųjų spindulių termometro pistoleto MDF dėklas: Šis projektas skirtas infraraudonųjų spindulių termometrui gaminti su „Arduino“, grandinė yra įdėta į MDF korpusą, panašų į rinkoje esantį medicininį infraraudonųjų spindulių termometrą. Jutiklis infraraudonųjų spindulių termometras GY-906 naudojamas objekto temperatūrai matuoti be kontakto, tai gali reikšti
Sukurkite „Kodi“/ OSMC infraraudonųjų spindulių imtuvą ir iš naujo nustatykite skrybėlę „Raspberry Pi“: 5 žingsniai (su nuotraukomis)
Sukurkite „Kodi“/ OSMC infraraudonųjų spindulių imtuvą ir iš naujo nustatykite skrybėlę „Raspberry Pi“: sukurkite „Kodi“/ OSMC IR imtuvą ir nustatykite skrybėlę iš Raspberry Pi 3 Iš viso kambario norėčiau: Valdyti „Kodi“/ OSMC, veikiantį „Raspberry Pi“nuotolinio valdymo pultu Pažiūrėkite, ar „Raspberry Pi“įjungtas. Taip pat norėčiau, kad mano šeima