Tartalomjegyzék:

Infravörös lézercímke Raspberry Pi Zero -val: 6 lépés (képekkel)
Infravörös lézercímke Raspberry Pi Zero -val: 6 lépés (képekkel)

Videó: Infravörös lézercímke Raspberry Pi Zero -val: 6 lépés (képekkel)

Videó: Infravörös lézercímke Raspberry Pi Zero -val: 6 lépés (képekkel)
Videó: Leap Motion SDK 2024, November
Anonim
Infravörös lézercímke Raspberry Pi Zero -val
Infravörös lézercímke Raspberry Pi Zero -val

Ez az utasítás utasítja az infravörös lézercímke játék létrehozásának folyamatát egy alapszerver számítógép és egy Raspberry Pi nulla minden játékos számára. A projekt nagymértékben támaszkodik a Wifi -kapcsolatra a szerverrel való kommunikációhoz, ami a Pi -t kiváló jelöltévé teszi.

A projektben használt szerver egy régi asztali számítógép volt Linux -szal. A számítógépnek nem kell különlegesnek lennie, és valószínűleg akár Raspberry Pi 3 -ról is futtatható.

1. lépés: Anyagok

Anyagok
Anyagok
Anyagok
Anyagok

A szükséges anyagok leírását és néhány linkjét az alábbiakban mutatjuk be. Az alábbi anyaglista 3 fegyverre vonatkozik.

  • Szerver számítógép (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Legalább 4 GB SD kártya (3) Amazon
  • IR LED adó (3)
  • IR -vevő (6) Amazon
  • Piros LED (3)
  • Kék LED (3)
  • Zöld LED (3)
  • Passzív zümmögő (3) Amazon
  • Nyomógomb (6)
  • LCD 16x2 képernyő I2C adapterrel (3) Amazon
  • Hordozható akkumulátor (3) Amazon
  • Mikro -normál USB -kábel (3) Amazon
  • PN2222 tranzisztor (3)
  • 100Ω ellenállás (3)
  • 1kΩ ellenállás (9)

Választható elemek:

  • Mellény (3) Amazon
  • Szalagkábel hosszabbító (3) Amazon

Ebben a projektben végül az IR LED -jeladót vettük egy régi lézeres címkefegyver -készletből, amelynek fekete kúpja volt az adó körül, hogy segítsen szűkíteni az egyes fegyverek lövését. Azonban minden általános adónak működnie kell.

A fent felsorolt elemeken kívül maguk a lézerfegyverek is 3D nyomtatással készültek. Ez a projekt ezért egy 3D nyomtatóhoz és szálhoz való hozzáférést is igényelne. Összességében három fegyver esetében a teljes összeg körülbelül 350 dollár.

2. lépés: Szerver beállítása

Szerver beállítása
Szerver beállítása
Szerver beállítása
Szerver beállítása
Szerver beállítása
Szerver beállítása

A szerver beállításához először a Mosquitto MQTT Broker Service telepítése szükséges. A Mosquitto az a szolgáltatás, amely keretet biztosít a játék minden eszköze közötti kommunikációhoz. Ez lehetővé teszi, hogy a szerver üzeneteket küldjön a szolgáltatáshoz csatlakozó összes Pis -nek. A terminálon futtassa a következő parancsokat.

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

A szerver néhány grafikus felhasználói felülete a Pygubu nevű GUI -tervező segítségével jött létre. Ezt futtatva telepítheti:

pip3 telepítse a pygubu -t

A pygubuval kapcsolatos további információk a https://github.com/alejandroautalan/pygubu címen találhatók

Az MQTT és a Pygubu telepítése után hozzon létre egy új könyvtárat, és másolja a csatolt fájlokat. A könyvtárnak tartalmaznia kell:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • ellenségek.png
  • lézer.jpg

Megjegyzés: A projektben használt csatolt képeket nem a fejlesztőcsapat készítette, ezért nem igényel szerzői jogot.

3. lépés: A Raspberry Pi beállítása

Raspberry Pi beállítás
Raspberry Pi beállítás

Ezt a lépést meg kell ismételni minden málna Pis -en.

1. Telepítse az operációs rendszert

Először is kezdje a Raspbian friss telepítésével. Javasoljuk a Lite verzió használatát, mivel a Pi kevesebbet képes kezelni, de bármelyik verziónak jól kell működnie. A letöltés a következő címen található:

2. Telepítse az MQTT -t

Ezután telepítenünk kell az MQTT bróker szolgáltatást. Ehhez a Mosquitto -t fogjuk használni. A terminálon futtassa a következő parancsokat.

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

A Mosquitto az a szolgáltatás, amely keretet biztosít a játék minden eszköze közötti kommunikációhoz. Ez lehetővé teszi, hogy a szerver üzeneteket küldjön a szolgáltatáshoz csatlakozó összes Pis -nek.

3. Telepítse az I2C Tools eszközt

A következő parancs telepíti az LCD képernyőhöz használt könyvtárakat.

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

sudo apt -get install rpi.gpio -y

Lehet, hogy módosítani kell az i2c címet az lcddriver.py fájlban. A címet a következő parancs megadásával találhatja meg.

i2cdetect -y 1

4. Telepítse és konfigurálja a LIRC -t

Hozzon létre egy új könyvtárat, és töltse le a csatolt fájlokat erre a helyre.

A legtöbb internetes böngésző nem tölt le fájlokat kiterjesztés nélkül. Ennek elkerülése érdekében két fájlt ideiglenes kiterjesztéssel töltöttek fel. A "lircrc.deleteExtension" és a "modules.deleteExtension" valójában kiterjesztésmentesnek kell lennie, és a fájlokat a sikeres letöltés után át kell nevezni "lircrc" és "modules" -re.

Ez a lépés telepíti és konfigurálja a Linux Infrared Remote Control (LIRC) csomag függőségeit. További információkért tekintse meg a LIRC beállításához szükséges oktatóanyagot:

Először telepítse a könyvtárat, majd másolja a mellékelt fájlokat a megfelelő könyvtárakba az alábbi parancsok szerint. Végül indítsa újra a lircd szolgáltatást.

sudo apt-get install python3-lirc -y

Az újonnan létrehozott könyvtárból hajtsa végre a következő parancsokat, hogy áthelyezze a konfigurációs fájlokat a megfelelő helyre.

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

sudo mv modulok /etc /

Ezután indítsa újra a lircd szolgáltatást a következő futtatással:

sudo /etc/init.d/lircd restart

Ezután szerkessze a /boot/config.txt fájlt, és adja hozzá a következő sort

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

Indítsa újra a pi -t, hogy a módosítások érvénybe lépjenek.

sudo újraindítás

5. Engedélyezze az I2C -t és szerkessze a CLIENT -et minden játékos számára

Ezután engedélyezzük az I2C interfészt. Ezt a segítségével teheti meg

sudo raspi-config

és engedélyezze az I2C -t az "interfész beállítások" menüben.

6. Szerkesztés Player CLIENT és LTSERVER

A játékkönyvtárnak most tartalmaznia kell a négy fennmaradó fájlt.

  • i2c_lib.py
  • lcddriver.py
  • hangok.py
  • játékos.py

A pi konfigurálásának utolsó lépése az, hogy minden pi -nek hozzárendelünk egy ÜGYFÉL számot, és hozzáadjuk a szerver helyét. Ez úgy történik, hogy a mellékelt "player.py" fájlt minden pi -hez úgy szerkesztik, hogy mindegyiknek más legyen az ÜGYFÉL száma. Az ÜGYFÉL szám a player.py 3. sorában van megadva. Az első pi -t rendelje hozzá az "1" klienshez, a másodikat "2" -hez, a harmadikat pedig a "3" klienshez.

Az LTSERVER sort módosítani kell a szerver IP -címére. Ezt az 'ifconfig | grep "inet addr" 'a szerver számítógép termináljában.

4. lépés: Pisztoly szerelése

Gun Assembly
Gun Assembly
Gun Assembly
Gun Assembly

Folytassa az egyes pisztolyok huzalozását a kapcsolási rajz és a fenti vázlat szerint.

A perifériák mindegyike a következő GPIO tűkhöz van csatlakoztatva a Pi Zero -n:

  • Zümmögő: GPIO5
  • Kioldó: GPIO26
  • Újratöltés: GPIO12
  • IR -adó: GPIO25
  • IR -vevő: GPIO18
  • PIROS LED: GPIO17
  • ZÖLD LED: GPIO27
  • KÉK LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

További részletekért lásd a vázlatot.

Kívánt esetben a lézerfegyverek 3D nyomtathatók a mellékelt lépésmodell fájlokkal. Ne feledje, hogy a "front1STL. STL" fájlok közül kettőt ki kell nyomtatni.

5. lépés: Játék

Játék
Játék
Játék
Játék
Játék
Játék

A játék az "ltag.py" fájl futtatásával indul a szerveren. Ha ez megtörtént, minden játékos csatlakozhat a szerverhez a megfelelő "player.py" fájl futtatásával.

Megjegyzés: Az akkumulátor csatlakoztatása után akár egy percig is eltarthat, amíg a pi elindul.

Hasznos lehet olyan cron feladat hozzáadása is, amely automatikusan futtatja a player.py fájlt, amint a pi elindul. Nehezen tudtuk ezt megvalósítani, és végül hozzáadtunk egy sort a "/etc/rc.local" fájlhoz minden Pis -en a "player.py" fájl futtatásához. Ez lehetővé teszi a játék elindítását anélkül, hogy SSH -t kellene kötni a Pi -khez a lejátszó szkriptjének futtatásához.

Miután a játékot a játékosok készenlétével elkezdték, megjelenik egy GUI, amely lehetővé teszi néhány játékbeállítás konfigurálását. A játék a Start gomb megnyomása után kezdődik.

Minden játék után megjelenik egy befejező grafikus felület, amely statisztikákat tartalmaz az előző játékról, beleértve a címkéket, a globális százalékokat és a játék időtartamát.

Megjegyzés: A szoftverkönyvtárak korlátai miatt a pontossági jelentés címkéinek helyei nem reprezentálják a tényleges lézercímkéket. A jelenlegi verzióban a Játékos pontossági jelentés képe pusztán esztétikai célokat szolgál, remélve, hogy egy jövőbeni verzióban valósul meg a címke helyének valós megvalósítása.

6. lépés: Jövőbeni fejlesztések

Jövőbeli fejlesztések
Jövőbeli fejlesztések
Jövőbeli fejlesztések
Jövőbeli fejlesztések

Összességében a projekt nagy sikert aratott. Útközben néhány további funkcióra gondoltunk, amelyek egy későbbi kiadáshoz adhatók.

  • Masszívabb kivitel a 3D nyomtatott fegyverekhez
  • A GUI legördülő menüjének befejezése a korábbi játékok statisztikáinak megjelenítéséhez
  • Több infravörös vevő, amelyet a játékosok mellényéhez lehet csatlakoztatni
  • További játékmódok, amelyek a Pregame GUI -ban választhatók
  • Pontosabb címkehelymeghatározási algoritmus a játékosok statisztikai oldalán

Ajánlott: