Sadržaj:

Infracrvena laserska oznaka sa Raspberry Pi Zero: 6 koraka (sa slikama)
Infracrvena laserska oznaka sa Raspberry Pi Zero: 6 koraka (sa slikama)

Video: Infracrvena laserska oznaka sa Raspberry Pi Zero: 6 koraka (sa slikama)

Video: Infracrvena laserska oznaka sa Raspberry Pi Zero: 6 koraka (sa slikama)
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, Juli
Anonim
Infracrvena laserska oznaka sa Raspberry Pi Zero
Infracrvena laserska oznaka sa Raspberry Pi Zero

Ovaj Instructable će proći kroz proces stvaranja igre sa infracrvenim laserskim oznakama koristeći osnovni serverski računar i Raspberry Pi nulu za svakog igrača. Projekt se u velikoj mjeri oslanja na Wifi vezu za komunikaciju sa serverom što Pi čini odličnim kandidatom.

Poslužitelj korišten u ovom projektu bio je stari stolni računar s Linuxom. Računar ne mora biti ništa posebno, a vjerovatno bi čak mogao biti pokrenut i sa Raspberry Pi 3. Poslužitelj i svaki od pi nula moraju biti povezani na istu mrežu tokom igranja igre.

Korak 1: Materijali

Materijali
Materijali
Materijali
Materijali

Opis i neki linkovi za potrebne materijale prikazani su u nastavku. Spisak materijala u nastavku je za 3 pištolja.

  • Server računara (1)
  • Malina Pi Zero W (3) Adafruit
  • Najmanje 4 GB SD kartica (3) Amazon
  • IC LED odašiljač (3)
  • IC prijemnik (6) Amazon
  • Crvena LED dioda (3)
  • Plava LED dioda (3)
  • Zelena LED dioda (3)
  • Pasivni zujalica (3) Amazon
  • Pritisnite dugme (6)
  • LCD ekran 16x2 sa I2C adapterom (3) Amazon
  • Prijenosna baterija (3) Amazon
  • Mikro na obični USB kabel (3) Amazon
  • PN2222 Tranzistor (3)
  • 100Ω otpornik (3)
  • 1kΩ otpornik (9)

Opcione stavke:

  • Prsluk (3) Amazon
  • Produžetak kabela s vrpcom (3) Amazon

U ovom smo projektu na kraju uzeli IC LED odašiljač iz starog seta laserskih pištolja koji su imali crni konus oko odašiljača kako bi se suzio hitac svakog pištolja. Međutim, svaki opći odašiljač bi trebao raditi.

Osim gore navedenih stavki, laserski pištolji su 3D štampani. Stoga bi ovaj projekt također zahtijevao pristup 3D štampaču i filamentu. Sveukupno, za tri pištolja ukupna vrijednost iznosila je oko 350 dolara.

Korak 2: Postavljanje servera

Server Setup
Server Setup
Server Setup
Server Setup
Server Setup
Server Setup

Prva stvar potrebna za postavljanje servera je instaliranje Mosquitto MQTT Broker Service. Mosquitto je usluga koja pruža okvir za komunikaciju između svakog od uređaja u igri. Ovo omogućava serveru da šalje poruke svakom od Pis povezanih sa uslugom. U terminalu pokrenite sljedeće naredbe.

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

Neki od grafičkih sučelja za poslužitelj stvoreni su pomoću dizajnera grafičkog sučelja koji se zove Pygubu. Ovo se može instalirati pokretanjem:

pip3 instalirajte pygubu

Više informacija o pygubu možete pronaći na

Nakon što su MQTT i Pygubu instalirani, kreirajte novi direktorij i kopirajte priložene datoteke. Direktorij treba sadržavati:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • neprijatelji.png
  • laser.jpg

Napomena: Priložene slike korištene u ovom projektu nije stvorio razvojni tim i stoga ne zahtijevaju autorstvo.

Korak 3: Postavljanje Raspberry Pi

Raspberry Pi Setup
Raspberry Pi Setup

Ovaj korak će se morati ponoviti na svakom od malina Pis.

1. Instalirajte operativni sistem

Prvo počnite sa novom instalacijom Raspbiana. Preporučili bismo upotrebu Lite verzije jer Pi manje rješava rukovanje, ali obje verzije bi trebale dobro funkcionirati. Preuzimanje možete pronaći na

2. Instalirajte MQTT

Zatim moramo instalirati uslugu brokera MQTT. Za to ćemo koristiti Mosquitto. U terminalu pokrenite sljedeće naredbe.

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 je usluga koja pruža okvir za komunikaciju između svakog od uređaja u igri. Ovo omogućava serveru da šalje poruke svakom od Pis povezanih sa uslugom.

3. Instalirajte I2C Tools

Sljedeća naredba će instalirati biblioteke koje se koriste za LCD ekran.

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

sudo apt -get install rpi.gpio -y

Možda će se i2c adresa morati promijeniti u datoteci lcddriver.py. Adresa se može pronaći unošenjem sljedeće naredbe.

i2cdetect -y 1

4. Instalirajte i konfigurirajte LIRC

Kreirajte novi direktorij i preuzmite priložene datoteke na ovu lokaciju.

Većina internetskih preglednika neće preuzimati datoteke bez ekstenzija. Da biste to zaobišli, dvije datoteke su učitane s privremenim ekstenzijama. I "lircrc.deleteExtension" i "modules.deleteExtension" bi u stvari trebali biti bez proširenja, a datoteke bi trebale biti preimenovane u "lircrc" i "module" nakon što su uspješno preuzete.

Ovaj korak instalira i konfigurira zavisnosti za Linux paket infracrvenog daljinskog upravljanja (LIRC). Za više informacija pogledajte vodič za postavljanje LIRC-a na:

Prvo instalirajte biblioteku, a zatim kopirajte uključene datoteke u odgovarajuće direktorije kao što je prikazano u naredbama ispod. Na kraju, ponovo pokrenite lircd uslugu.

sudo apt-get install python3-lirc -y

Iz novostvorenog direktorija izvršite sljedeće naredbe za premještanje konfiguracijskih datoteka na njihova ispravna mjesta.

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

sudo mv moduli /etc /

Zatim ponovo pokrenite lircd uslugu pokretanjem:

sudo /etc/init.d/lircd ponovno pokretanje

Zatim uredite /boot/config.txt datoteku i dodajte sljedeći red

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

Ponovo pokrenite svoj pi da biste omogućili da promjene stupe na snagu.

sudo reboot

5. Omogućite I2C i uredite CLIENT za svakog igrača

Zatim ćemo omogućiti I2C sučelje. To se može učiniti pomoću

sudo raspi-config

i omogućavanje I2C u meniju "opcije interfejsa".

6. Uredite Player CLIENT i LTSERVER

Direktorij igara sada bi trebao sadržavati četiri preostale datoteke.

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

Posljednji korak u konfiguriranju pi -a je dodjeljivanje svakom pi -u KLIJENTSKOG broja i dodavanje lokacije servera. To se postiže uređivanjem uključene datoteke "player.py" za svako pi tako da svi imaju različit broj KLIJENTA. Broj KLIJENTA dodijeljen je u 3. redu player.py. Dodijelite prvom pi klijentu "1", drugom "2", a trećem klijentu "3".

LTSERVER liniju treba promijeniti u IP adresu servera. To možete saznati upisivanjem 'ifconfig | grep "inet addr" 'u terminalu računara servera.

Korak 4: Sklapanje pištolja

Gun Assembly
Gun Assembly
Gun Assembly
Gun Assembly

Ožičite svaki pištolj prema shemi ožičenja i gornjoj shemi.

Svaki od perifernih uređaja spojen je na sljedeće GPIO pinove na Pi Zero:

  • Zvučni signal: GPIO5
  • Okidač: GPIO26
  • Ponovno učitavanje: GPIO12
  • IC odašiljač: GPIO25
  • IC prijemnici: GPIO18
  • CRVENA LED: GPIO17
  • ZELENA LED: GPIO27
  • PLAVA LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Za više detalja pogledajte shemu.

Po želji, laserski pištolji mogu se 3D ispisati pomoću priloženih datoteka modela koraka. Imajte na umu da se dvije datoteke "front1STL. STL" moraju odštampati.

Korak 5: Igranje igara

Game Play
Game Play
Game Play
Game Play
Game Play
Game Play

Igra se pokreće pokretanjem datoteke "ltag.py" na serveru. Kada se to učini, svaki od igrača može se povezati sa serverom pokretanjem svoje datoteke "player.py".

Napomena: Nakon uključivanja baterije, može proći i do minute dok se pi ne pokrene.

Također bi moglo biti korisno dodati cron posao koji automatski pokreće player.py datoteku kada pi započne. Bilo nam je teško da ovo uspije i na kraju smo dodali redak u datoteku "/etc/rc.local" na svakom Pisu za pokretanje datoteke "player.py". Ovo omogućava pokretanje igre bez potrebe za SSH -om u Pi -ima za pokretanje skripte igrača.

Nakon što je igra započeta s spremnim igračima, pojavit će se GUI koji omogućuje konfiguriranje nekoliko postavki igre. Igra počinje nakon što pritisnete dugme Start.

Nakon svake igre pojavit će se završni GUI sa statistikom o prethodnoj igri, uključujući oznake, globalne postotke i trajanje igre.

Napomena: Zbog ograničenja u softverskim bibliotekama, lokacije oznaka izvješća o točnosti nisu reprezentativne za stvarne laserske oznake. U trenutnoj verziji slika Izvještaja o točnosti playera služi isključivo za estetiku u nadi da će doći do buduće verzije sa stvarnom implementacijom lokacije oznake.

Korak 6: Buduća poboljšanja

Buduća poboljšanja
Buduća poboljšanja
Buduća poboljšanja
Buduća poboljšanja

Sve u svemu, projekat je imao veliki uspjeh. Usput smo razmišljali o nekoliko dodatnih funkcija koje bi se mogle dodati budućem izdanju.

  • Čvršći dizajn okidača za 3D štampane pištolje
  • Završavanje padajućeg izbornika GUI za prikaz statistike iz prošlih igara
  • Više infracrvenih prijemnika koji se mogu pričvrstiti na prsluke igrača
  • Dodatni načini igre koji se mogu izabrati u Pregame GUI
  • Precizniji algoritam lokacije oznake na stranici sa statistikom igrača

Preporučuje se: