Obsah:

Infračervený laserový tag s Raspberry Pi Zero: 6 kroků (s obrázky)
Infračervený laserový tag s Raspberry Pi Zero: 6 kroků (s obrázky)

Video: Infračervený laserový tag s Raspberry Pi Zero: 6 kroků (s obrázky)

Video: Infračervený laserový tag s Raspberry Pi Zero: 6 kroků (s obrázky)
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Červenec
Anonim
Infračervený laserový štítek s Raspberry Pi Zero
Infračervený laserový štítek s Raspberry Pi Zero

Tento Instructable vás provede procesem vytvoření hry s infračerveným laserovým tagem pomocí základního serveru a nulového bodu Raspberry Pi pro každého hráče. Projekt do značné míry spoléhá na připojení Wifi ke komunikaci se serverem, díky čemuž je Pi skvělým kandidátem.

Server použitý v tomto projektu byl starý stolní počítač s Linuxem. Počítač nemusí být ničím zvláštním a pravděpodobně by mohl být dokonce spuštěn z Raspberry Pi 3. Server a každý z pi zero musí být během hraní hry připojeny ke stejné síti.

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály

Popis a některé odkazy na potřebné materiály jsou uvedeny níže. Níže uvedený seznam materiálu je pro 3 zbraně.

  • Serverový počítač (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Minimálně 4 GB SD karta (3) Amazon
  • IR LED vysílač (3)
  • IR přijímač (6) Amazon
  • Červená LED (3)
  • Modrá LED (3)
  • Zelená LED (3)
  • Pasivní bzučák (3) Amazon
  • Tlačítko (6)
  • Obrazovka LCD 16x2 s adaptérem I2C (3) Amazon
  • Přenosná baterie (3) Amazon
  • Mikro na běžný kabel USB (3) Amazon
  • PN2222 tranzistor (3)
  • Rezistor 100Ω (3)
  • Rezistor 1kΩ (9)

Volitelné položky:

  • Vesta (3) Amazon
  • Prodloužení plochého kabelu (3) Amazon

V tomto projektu jsme nakonec odebrali IR LED vysílač ze staré sady laserových dělových štítků, které měly kolem vysílače černý kužel, aby pomohl zúžit výstřel každé zbraně. Jakýkoli obecný vysílač by však měl fungovat.

Kromě výše uvedených položek byly samotné 3D laserové zbraně vytištěny. Tento projekt by proto také vyžadoval přístup k 3D tiskárně a filamentu. Celkově za tři zbraně dosáhl součet asi 350 $.

Krok 2: Nastavení serveru

Nastavení serveru
Nastavení serveru
Nastavení serveru
Nastavení serveru
Nastavení serveru
Nastavení serveru

První věcí potřebnou k nastavení serveru je instalace služby Mosquitto MQTT Broker. Mosquitto je služba, která poskytuje rámec pro komunikaci mezi každým ze zařízení ve hře. To umožňuje serveru odesílat zprávy každému Pis připojenému ke službě. V terminálu spusťte následující příkazy.

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

Některá GUI pro server byla vytvořena pomocí návrháře GUI s názvem Pygubu. To lze nainstalovat spuštěním:

pip3 nainstalujte pygubu

Více informací o pygubu najdete na

Jakmile jsou nainstalovány MQTT a Pygubu, vytvořte nový adresář a zkopírujte připojené soubory. Adresář by měl obsahovat:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • nepřátelé.png
  • laser.jpg

Poznámka: Připojené obrázky použité v tomto projektu nebyly vytvořeny vývojovým týmem, a proto si nenárokují autorství.

Krok 3: Nastavení Raspberry Pi

Nastavení Raspberry Pi
Nastavení Raspberry Pi

Tento krok bude nutné opakovat na každém Raspberry Pis.

1. Nainstalujte operační systém

Nejprve začněte novou instalací Raspbian. Doporučujeme používat verzi Lite, protože to zvládne méně Pi, ale obě verze by měly fungovat dobře. Stažení naleznete na

2. Nainstalujte MQTT

Dále musíme nainstalovat službu brokera MQTT. K tomu použijeme Mosquitto. V terminálu spusťte následující příkazy.

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 služba, která poskytuje rámec pro komunikaci mezi každým ze zařízení ve hře. To umožňuje serveru odesílat zprávy každému Pis připojenému ke službě.

3. Nainstalujte si I2C Tools

Následující příkaz nainstaluje knihovny, které se používají pro obrazovku LCD.

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

sudo apt -get install rpi.gpio -y

V souboru lcddriver.py může být nutné změnit adresu i2c. Adresu lze zjistit zadáním následujícího příkazu.

i2cdetect -y 1

4. Nainstalujte a nakonfigurujte LIRC

Vytvořte nový adresář a stáhněte přiložené soubory do tohoto umístění.

Většina internetových prohlížečů nebude stahovat soubory bez přípon. Abyste tomu zabránili, byly dva soubory nahrány s dočasnými příponami. Jak „lircrc.deleteExtension“, tak „modules.deleteExtension“by ve skutečnosti neměly mít příponu a soubory by měly být po úspěšném stažení přejmenovány na „lircrc“a „moduly“.

Tento krok nainstaluje a konfiguruje závislosti pro balíček LIRC (Linux Infrared Remote Control). Další informace naleznete v návodu k nastavení LIRC na adrese:

Nejprve nainstalujte knihovnu a poté zkopírujte zahrnuté soubory do příslušných adresářů, jak je uvedeno v níže uvedených příkazech. Nakonec restartujte službu lircd.

sudo apt-get install python3-lirc -y

Z nově vytvořeného adresáře spusťte následující příkazy a přesuňte konfigurační soubory do správných umístění.

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

sudo mv moduly /etc /

Potom restartujte službu lircd spuštěním:

sudo /etc/init.d/lircd restart

Dále upravte soubor /boot/config.txt a přidejte následující řádek

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

Restartujte pi, aby se změny projevily.

sudo restart

5. Povolte I2C a upravte CLIENT pro každého hráče

Dále povolíme rozhraní I2C. To lze provést pomocí

sudo raspi-config

a povolení I2C v nabídce „možnosti rozhraní“.

6. Upravte Player CLIENT a LTSERVER

Adresář hry by nyní měl obsahovat čtyři zbývající soubory.

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

Posledním krokem při konfiguraci pí je přiřazení každého pi CLIENT čísla a přidání umístění serveru. To se provádí úpravou přiloženého souboru „player.py“pro každé pi tak, aby všechny měly jiné číslo KLIENTA. Číslo CLIENT je přiřazeno na řádku 3 player.py. První pi přiřaďte klientovi „1“, druhému „2“a třetím klientovi „3“.

Řádek LTSERVER by měl být změněn na IP adresu serveru. To lze zjistit zadáním 'ifconfig | grep "inet addr" 'na terminálu serverového počítače.

Krok 4: Sestava zbraně

Sestava zbraně
Sestava zbraně
Sestava zbraně
Sestava zbraně

Pokračujte v zapojení každé z pistolí podle schématu zapojení a schématu výše.

Každá z periferií je připojena k následujícím pinům GPIO na Pi Zero:

  • Bzučák: GPIO5
  • Spoušť: GPIO26
  • Znovu načíst: GPIO12
  • IR vysílač: GPIO25
  • IR přijímače: GPIO18
  • ČERVENÁ LED: GPIO17
  • ZELENÁ LED: GPIO27
  • MODRÁ LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Další podrobnosti najdete ve schématu.

V případě potřeby lze laserové zbraně 3D vytisknout pomocí přiložených souborů krokových modelů. Mějte na paměti, že je třeba vytisknout dva soubory „front1STL. STL“.

Krok 5: Hraní her

Hraní her
Hraní her
Hraní her
Hraní her
Hraní her
Hraní her

Hru spustíte spuštěním souboru „ltag.py“na serveru. Jakmile to bude hotové, každý z hráčů se může připojit k serveru spuštěním příslušného souboru „player.py“.

Poznámka: Po připojení baterie může spuštění pi trvat až minutu.

Může být také užitečné přidat úlohu cron, která automaticky spustí soubor player.py, jakmile začne pi. Těžko jsme to dostali do práce a nakonec jsme přidali řádek do souboru „/etc/rc.local“na každé Pis, abychom spustili soubor „player.py“. To umožňuje spuštění hry bez nutnosti SSH do Pi pro spuštění skriptu hráče.

Jakmile je hra spuštěna s připravenými hráči, objeví se grafické uživatelské rozhraní, které umožňuje konfiguraci několika herních nastavení. Hra začíná po stisknutí tlačítka Start.

Po každé hře se zobrazí končící GUI se statistikami o předchozí hře včetně značek, globálních procent a délky hry.

Poznámka: Vzhledem k omezením v softwarových knihovnách nejsou umístění značek zpráv o přesnosti reprezentativní pro skutečné laserové značky. V aktuální verzi je obrázek zprávy o přesnosti přehrávače čistě pro estetiku v naději na budoucí verzi se skutečnou implementací umístění značky.

Krok 6: Budoucí vylepšení

Budoucí vylepšení
Budoucí vylepšení
Budoucí vylepšení
Budoucí vylepšení

Celkově byl projekt velkým úspěchem. Cestou jsme přemýšleli o několika dalších funkcích, které mohou být přidány do budoucího vydání.

  • Robustnější design spouště pro 3D tištěné zbraně
  • Rozbalovací nabídka Ukončení GUI pro zobrazení statistik z minulých her
  • Více infračervených přijímačů, které lze připojit k vestám hráčů
  • Další herní režimy, které lze zvolit v GUI Pregame
  • Přesnější algoritmus umístění značky na stránce statistik hráčů

Doporučuje: