Sisällysluettelo:

Infrapuna -lasertunniste Raspberry Pi Zero: 6 vaihetta (kuvilla)
Infrapuna -lasertunniste Raspberry Pi Zero: 6 vaihetta (kuvilla)

Video: Infrapuna -lasertunniste Raspberry Pi Zero: 6 vaihetta (kuvilla)

Video: Infrapuna -lasertunniste Raspberry Pi Zero: 6 vaihetta (kuvilla)
Video: How to network monitor using Raspberry PI | Zabbix | NETVN 2024, Marraskuu
Anonim
Infrapuna -lasertunniste Raspberry Pi Zero -laitteella
Infrapuna -lasertunniste Raspberry Pi Zero -laitteella

Tämä opastettava opastaa prosessin infrapunalaser -pelin luomiseen käyttämällä peruspalvelintietokonetta ja Raspberry Pi -nollaa jokaiselle pelaajalle. Projekti perustuu vahvasti Wifi -yhteyteen kommunikoidakseen palvelimen kanssa, mikä tekee Pi: stä erinomaisen ehdokkaan.

Tässä projektissa käytetty palvelin oli vanha pöytätietokone, jossa oli Linux. Tietokoneen ei tarvitse olla mikään erityinen, ja sitä voidaan käyttää jopa Raspberry Pi 3: sta. Palvelin ja jokainen pi nolla on liitettävä samaan verkkoon pelin aikana.

Vaihe 1: Materiaalit

Materiaalit
Materiaalit
Materiaalit
Materiaalit

Kuvaus ja joitakin linkkejä tarvittaviin materiaaleihin on esitetty alla. Alla oleva materiaaliluettelo koskee 3 pistoolia.

  • Palvelintietokone (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Vähintään 4 Gt: n SD -kortti (3) Amazon
  • IR -LED -lähetin (3)
  • IR -vastaanotin (6) Amazon
  • Punainen LED (3)
  • Sininen LED (3)
  • Vihreä LED (3)
  • Passiivinen summeri (3) Amazon
  • Painike (6)
  • 16x2 LCD -näyttö I2C -sovittimella (3) Amazon
  • Kannettava akku (3) Amazon
  • Mikro -tavallinen USB -kaapeli (3) Amazon
  • PN2222 Transistori (3)
  • 100Ω vastus (3)
  • 1 kΩ vastus (9)

Valinnaiset kohteet:

  • Liivi (3) Amazon
  • Nauhakaapelin jatke (3) Amazon

Tässä projektissa päädyimme ottamaan IR -LED -lähettimen vanhasta lasertunnistinsarjasta, jonka lähettimen ympärillä oli musta kartio, joka auttaa kaventamaan jokaisen pistoolin laukausta. Kaikkien yleisten lähettimien pitäisi kuitenkin toimia.

Edellä lueteltujen esineiden lisäksi itse laserpistoolit tulostettiin 3D -painoksella. Tämä hanke edellyttäisi myös pääsyä 3D -tulostimeen ja filamenttiin. Kaiken kaikkiaan kolmen aseen kokonaissumma oli noin 350 dollaria.

Vaihe 2: Palvelimen asennus

Palvelimen asennus
Palvelimen asennus
Palvelimen asennus
Palvelimen asennus
Palvelimen asennus
Palvelimen asennus

Ensimmäinen asia, joka tarvitaan palvelimen asentamiseen, on asentaa Mosquitto MQTT Broker Service. Mosquitto on palvelu, joka tarjoaa puitteet kunkin pelin laitteen väliselle viestinnälle. Tämän avulla palvelin voi lähettää viestejä kullekin palveluun yhdistetylle Pis -palvelimelle. Suorita päätelaitteessa seuraavat komennot.

sudo apt-get päivitys

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

Osa palvelimen graafisista käyttöliittymistä luotiin Pygubu -nimisellä graafisella suunnittelijalla. Tämä voidaan asentaa suorittamalla:

pip3 asenna pygubu

Lisätietoja pygubusta löytyy osoitteesta

Kun MQTT ja Pygubu on asennettu, luo uusi hakemisto ja kopioi liitetyt tiedostot. Hakemiston tulee sisältää:

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

Huomaa: Tässä projektissa käytetyt liitetyt kuvat eivät ole kehitystiimin luomia, joten ne eivät vaadi tekijänoikeutta.

Vaihe 3: Raspberry Pi -asennus

Raspberry Pi -asennus
Raspberry Pi -asennus

Tämä vaihe on toistettava jokaisella vadelmalla.

1. Asenna käyttöjärjestelmä

Aloita ensin uudella Raspbian -asennuksella. Suosittelemme käyttämään Lite -versiota, koska Pi: n on vähemmän käsiteltävä, mutta kummankin version pitäisi toimia hyvin. Lataus löytyy osoitteesta

2. Asenna MQTT

Seuraavaksi meidän on asennettava MQTT -välityspalvelu. Käytämme tähän Mosquitoa. Suorita päätelaitteessa seuraavat komennot.

sudo apt-get päivitys

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

Mosquitto on palvelu, joka tarjoaa puitteet kunkin pelin laitteen väliselle viestinnälle. Tämän avulla palvelin voi lähettää viestejä kullekin palveluun yhdistetylle Pis -palvelimelle.

3. Asenna I2C Tools

Seuraava komento asentaa nestekidenäytössä käytetyt kirjastot.

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

sudo apt -get install rpi.gpio -y

I2c -osoite on ehkä muutettava lcddriver.py -tiedostossa. Osoite löytyy kirjoittamalla seuraava komento.

i2cdetect -y 1

4. Asenna ja määritä LIRC

Luo uusi hakemisto ja lataa liitetyt tiedostot tähän sijaintiin.

Useimmat Internet -selaimet eivät lataa tiedostoja ilman laajennuksia. Tämän kiertämiseksi kaksi tiedostoa ladattiin väliaikaisilla laajennuksilla. Sekä "lircrc.deleteExtension" että "modules.deleteExtension" pitäisi itse asiassa olla ilman laajennuksia ja tiedostot pitäisi nimetä uudelleen "lircrc": ksi ja "moduuleiksi" sen jälkeen, kun ne on ladattu onnistuneesti.

Tämä vaihe asentaa ja määrittää riippuvuudet Linux -infrapunakaukosäätimelle (LIRC). Lisätietoja on LIRC: n määrittämisen opetusohjelmassa:

Asenna ensin kirjasto ja kopioi sitten mukana olevat tiedostot vastaaviin hakemistoihin alla olevien komentojen mukaisesti. Käynnistä lopuksi lircd -palvelu uudelleen.

sudo apt-get install python3-lirc -y

Suorita äskettäin luodusta hakemistosta seuraavat komennot siirtääksesi määritystiedostot oikeaan paikkaan.

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

sudo mv -moduulit /etc /

Käynnistä sitten lircd -palvelu uudelleen suorittamalla:

sudo /etc/init.d/lircd uudelleen

Muokkaa seuraavaksi /boot/config.txt -tiedostoa ja lisää seuraava rivi

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

Käynnistä pi uudelleen, jotta muutokset tulevat voimaan.

sudo uudelleenkäynnistys

5. Ota I2C käyttöön ja muokkaa CLIENT jokaiselle pelaajalle

Seuraavaksi otamme I2C -käyttöliittymän käyttöön. Tämä voidaan tehdä käyttämällä

sudo raspi-config

ja I2C: n ottaminen käyttöön "käyttöliittymäasetukset" -valikossa.

6. Muokkaa Player CLIENT ja LTSERVER

Pelihakemiston pitäisi nyt sisältää neljä jäljellä olevaa tiedostoa.

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

Viimeinen vaihe pi: n määrittämisessä on antaa jokaiselle pi: lle ASIAKASNUMERO ja lisätä palvelimen sijainti. Tämä tehdään muokkaamalla mukana toimitettua "player.py" -tiedostoa kullekin pi: lle niin, että niillä kaikilla on eri asiakastunnus. ASIAKASNUMERO annetaan player.py: n riville 3. Määritä ensimmäinen pi asiakkaaksi "1", toinen "2" ja kolmas "asiakas" 3.

LTSERVER -rivi on muutettava palvelimen IP -osoitteeksi. Tämä löytyy kirjoittamalla 'ifconfig | grep "inet addr" 'palvelintietokoneen päätelaitteessa.

Vaihe 4: Pistoolin kokoonpano

Aseen kokoonpano
Aseen kokoonpano
Aseen kokoonpano
Aseen kokoonpano

Jatka kunkin pistoolin johdotusta kytkentäkaavion ja yllä olevan kaavion mukaisesti.

Jokainen oheislaite on liitetty seuraaviin Pi Zero -laitteen GPIO -nastoihin:

  • Summeri: GPIO5
  • Liipaisin: GPIO26
  • Lataa uudelleen: GPIO12
  • IR -lähetin: GPIO25
  • IR -vastaanottimet: GPIO18
  • PUNAINEN LED: GPIO17
  • VIHREÄ LED: GPIO27
  • SININEN LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Katso lisätietoja kaaviosta.

Halutessasi voit tulostaa laserpistoolit 3D -painikkeella käyttämällä mukana toimitettuja askelmallitiedostoja. Muista, että kaksi "front1STL. STL" -tiedostoa on tulostettava.

Vaihe 5: Pelaaminen

Peli
Peli
Peli
Peli
Peli
Peli

Peli käynnistetään käynnistämällä "ltag.py" -tiedosto palvelimella. Kun tämä on tehty, jokainen pelaaja voi muodostaa yhteyden palvelimeen suorittamalla oman "player.py" -tiedostonsa.

Huomautus: Akun kytkemisen jälkeen voi kestää jopa minuutin, ennen kuin pi käynnistyy.

Voi myös olla hyödyllistä lisätä cron -työ, joka suorittaa automaattisesti player.py -tiedoston heti, kun pi alkaa. Meillä oli vaikeuksia saada tämä toimimaan ja lopulta lisäsimme rivin "/etc/rc.local" -tiedostoon jokaisessa Pis -ohjelmassa "player.py" -tiedoston suorittamiseksi. Tämä mahdollistaa pelin käynnistämisen tarvitsematta SSH: ta Pi: hen pelataksesi komentosarjaa.

Kun peli on aloitettu pelaajien ollessa valmiina, näyttöön tulee graafinen käyttöliittymä, jonka avulla muutamia peliasetuksia voidaan määrittää. Peli alkaa Käynnistä -painikkeen painamisen jälkeen.

Jokaisen pelin jälkeen näkyviin tulee päättyvä graafinen käyttöliittymä, jossa on tilastoja edellisestä pelistä, mukaan lukien tunnisteet, yleiset prosenttiosuudet ja pelin kesto.

Huomautus: Ohjelmistokirjastojen rajoitusten vuoksi tarkkuusraporttien tunnisteiden sijainnit eivät edusta todellisia lasertunnisteita. Nykyisessä versiossa pelaajan tarkkuusraportin kuva on puhtaasti esteettinen ja toivoo tulevaa versiota, jossa on todellinen tunnisteen sijainti.

Vaihe 6: Tulevia parannuksia

Tulevat parannukset
Tulevat parannukset
Tulevat parannukset
Tulevat parannukset

Kaiken kaikkiaan projekti oli suuri menestys. Matkan varrella ajattelimme muutamia lisäominaisuuksia, jotka voidaan lisätä tulevaan painokseen.

  • Tukevampi laukaisumalli 3D -tulostetuille aseille
  • Avattava GUI-pudotusvalikko näyttää tilastoja aiemmista peleistä
  • Lisää infrapunavastaanottimia, jotka voidaan kiinnittää pelaajien liiveihin
  • Muita pelitiloja, jotka voidaan valita Pregame GUI: ssa
  • Tarkempi tunnisteiden sijaintialgoritmi pelaajien tilasivulla

Suositeltava: