Obsah:

Infračervený laserový štítok s nulovou hodnotou Raspberry Pi: 6 krokov (s obrázkami)
Infračervený laserový štítok s nulovou hodnotou Raspberry Pi: 6 krokov (s obrázkami)

Video: Infračervený laserový štítok s nulovou hodnotou Raspberry Pi: 6 krokov (s obrázkami)

Video: Infračervený laserový štítok s nulovou hodnotou Raspberry Pi: 6 krokov (s obrázkami)
Video: CS50 2015 - Week 7 2024, November
Anonim
Infračervený laserový štítok s malinou Pi Zero
Infračervený laserový štítok s malinou Pi Zero

Tento návod vás prevedie procesom vytvorenia hry s infračerveným laserom pomocou základného serverového počítača a nuly Raspberry Pi pre každého hráča. Projekt pri komunikácii so serverom vo veľkej miere závisí od pripojenia Wifi, vďaka čomu je Pi skvelým kandidátom.

Server použitý v tomto projekte bol starý stolný počítač s Linuxom. Počítač nemusí byť ničím špeciálnym a pravdepodobne by mohol byť spustený aj z Raspberry Pi 3. Server a každé z pi nula musí byť počas hrania hry pripojené k rovnakej sieti.

Krok 1: Materiály

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

Popis a niektoré odkazy na potrebné materiály sú uvedené nižšie. Nasledujúci zoznam materiálov je pre 3 zbrane.

  • Serverový počítač (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Najmenej 4 GB SD karta (3) Amazon
  • IR LED vysielač (3)
  • IR prijímač (6) Amazon
  • Červená LED (3)
  • Modrá LED (3)
  • Zelená LED (3)
  • Pasívny bzučiak (3) Amazon
  • Tlačidlo (6)
  • Obrazovka LCD 16x2 s adaptérom I2C (3) Amazon
  • Prenosná batéria (3) Amazon
  • Mikro -bežný kábel USB (3) Amazon
  • PN2222 tranzistor (3)
  • 100Ω odpor (3)
  • 1kΩ odpor (9)

Voliteľné položky:

  • Vesta (3) Amazon
  • Predĺženie stužkového kábla (3) Amazon

V tomto projekte sme nakoniec odobrali IR LED vysielač zo starej sady laserových značkovacích pištolí, ktoré mali okolo vysielača čierny kužeľ, ktorý pomohol zúžiť výstrel každej pištole. Každý všeobecný vysielač by však mal fungovať.

Okrem vyššie uvedených položiek boli 3D laserom vytlačené aj samotné laserové zbrane. Tento projekt by preto tiež vyžadoval prístup k 3D tlačiarni a vláknu. Celkovo pri troch zbraniach vyšlo spolu asi 350 dolárov.

Krok 2: Nastavenie servera

Nastavenie servera
Nastavenie servera
Nastavenie servera
Nastavenie servera
Nastavenie servera
Nastavenie servera

Prvá vec, ktorú je potrebné nastaviť server, je nainštalovať maklérsku službu Mosquitto MQTT. Mosquitto je služba, ktorá poskytuje rámec pre komunikáciu medzi každým zo zariadení v hre. To umožňuje serveru odosielať správy každému Pis pripojenému k službe. V termináli spustite nasledujúce príkazy.

sudo apt-get aktualizácia

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

Niektoré GUI pre server boli vytvorené pomocou návrhára GUI s názvom Pygubu. To je možné nainštalovať spustením:

pip3 nainštalujte pygubu

Viac informácií o pygubu nájdete na

Po inštalácii MQTT a Pygubu vytvorte nový adresár a skopírujte priložené súbory. Adresár by mal obsahovať:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • domov.png
  • self.png
  • nepriateľov.png
  • laser.jpg

Poznámka: Priložené obrázky použité v tomto projekte neboli vytvorené vývojovým tímom, a preto si nerobia nárok na autorstvo.

Krok 3: Nastavenie Raspberry Pi

Nastavenie Raspberry Pi
Nastavenie Raspberry Pi

Tento krok bude potrebné zopakovať na každom Raspberry Pis.

1. Nainštalujte operačný systém

Najprv začnite novou inštaláciou Raspbian. Odporúčame používať verziu Lite, pretože Pi ju zvládne menej, ale každá verzia by mala fungovať dobre. Stiahnutie nájdete na

2. Nainštalujte MQTT

Ďalej musíme nainštalovať službu makléra MQTT. Na to použijeme Mosquitto. V termináli spustite nasledujúce príkazy.

sudo apt-get aktualizácia

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, ktorá poskytuje rámec pre komunikáciu medzi každým zo zariadení v hre. To umožňuje serveru odosielať správy každému Pis pripojenému k službe.

3. Nainštalujte nástroje I2C

Nasledujúci príkaz nainštaluje knižnice, ktoré sa používajú pre obrazovku LCD.

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

sudo apt -get install rpi.gpio -y

V súbore lcddriver.py môže byť potrebné zmeniť adresu i2c. Adresu je možné nájsť zadaním nasledujúceho príkazu.

i2cdetect -y 1

4. Nainštalujte a nakonfigurujte LIRC

Vytvorte nový adresár a stiahnite si priložené súbory na toto miesto.

Väčšina internetových prehliadačov nebude sťahovať súbory bez prípon. Aby sa to dalo obísť, dva súbory boli nahrané s dočasnými príponami. Oba súbory „lircrc.deleteExtension“a „modules.deleteExtension“by v skutočnosti nemali obsahovať žiadne rozšírenia a po úspešnom stiahnutí by mali byť súbory premenované na „lircrc“a „moduly“.

Tento krok nainštaluje a nakonfiguruje závislosti pre balík Linux Infrared Remote Control (LIRC). Viac informácií nájdete v návode na nastavenie LIRC na:

Najprv nainštalujte knižnicu a potom skopírujte dodané súbory do príslušných adresárov podľa nižšie uvedených príkazov. Nakoniec reštartujte službu lircd.

sudo apt-get install python3-lirc -y

Z novovytvoreného adresára vykonajte nasledujúce príkazy na presun konfiguračných súborov na ich správne miesta.

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

moduly sudo mv /etc /

Potom reštartujte službu lircd spustením:

sudo /etc/init.d/lircd reštart

Ďalej upravte súbor /boot/config.txt a pridajte nasledujúci riadok

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

Reštartujte svoje pi, aby sa zmeny prejavili.

sudo reštart

5. Povoľte I2C a upravte KLIENTA pre každého hráča

Ďalej povolíme rozhranie I2C. To je možné vykonať pomocou

sudo raspi-config

a povolenie I2C v ponuke „možnosti rozhrania“.

6. Upravte Player CLIENT a LTSERVER

Adresár hry by teraz mal obsahovať štyri zostávajúce súbory.

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

Posledným krokom pri konfigurácii pí je priradenie každého pi čísla KLIENTA a pridanie polohy servera. To sa vykoná úpravou priloženého súboru „player.py“pre každé pi tak, aby všetky mali iné číslo KLIENTA. Číslo KLIENTA je priradené na riadku 3 player.py. Priraďte prvé pi ku klientovi „1“, druhé k „2“a tretie k klientovi „3“.

Riadok LTSERVER by mal byť zmenený na IP adresu servera. Zistíte to zadaním 'ifconfig | grep "inet addr" 'na termináli serverového počítača.

Krok 4: Zostava pištole

Zostava zbrane
Zostava zbrane
Zostava zbrane
Zostava zbrane

Pokračujte v zapojovaní každej z pištolí podľa schémy zapojenia a schémy uvedenej vyššie.

Každá z periférnych zariadení je na Pi Zero pripojená k nasledujúcim pinom GPIO:

  • Bzučiak: GPIO5
  • Spúšť: GPIO26
  • Znovu načítať: GPIO12
  • IR vysielač: GPIO25
  • IR prijímače: GPIO18
  • ČERVENÁ LED: GPIO17
  • ZELENÁ LED: GPIO27
  • MODRÁ LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Bližšie informácie nájdete v schéme.

V prípade potreby je možné laserové zbrane vytlačiť 3D pomocou dodaných súborov krokových modelov. Majte na pamäti, že dva zo súborov „front1STL. STL“je potrebné vytlačiť.

Krok 5: Hranie hier

Hranie hier
Hranie hier
Hranie hier
Hranie hier
Hranie hier
Hranie hier

Hru spustíte spustením súboru „ltag.py“na serveri. Hneď ako sa tak stane, každý z hráčov sa môže pripojiť k serveru spustením príslušného súboru „player.py“.

Poznámka: Po zapojení akumulátora môže spustenie pí trvať až minútu.

Tiež môže byť užitočné pridať úlohu cron, ktorá automaticky spustí súbor player.py po spustení pí. Ťažko sme to uviedli do prevádzky a nakoniec sme do súboru „/etc/rc.local“na každom serveri Pis pridali riadok na spustenie súboru „player.py“. To umožňuje spustenie hry bez toho, aby ste museli spustiť SSH do Pi a spustiť skript prehrávača.

Akonáhle sa hra začne s pripravenými hráčmi, zobrazí sa GUI, ktoré umožňuje konfiguráciu niekoľkých herných nastavení. Hra sa začína po stlačení tlačidla Štart.

Po každej hre sa zobrazí konečné GUI so štatistikami o predchádzajúcej hre vrátane značiek, globálnych percent a trvania hry.

Poznámka: Vzhľadom na obmedzenia v softvérových knižniciach umiestnenie značiek správ o presnosti nereprezentuje skutočné laserové značky. V súčasnej verzii je obrázok správy o presnosti prehrávača čisto estetický v nádeji, že v budúcej verzii bude implementovaná skutočná poloha značky.

Krok 6: Budúce zlepšenia

Budúce vylepšenia
Budúce vylepšenia
Budúce vylepšenia
Budúce vylepšenia

Celkovo bol projekt veľkým úspechom. Cestou sme mysleli na niekoľko ďalších funkcií, ktoré môžu byť pridané do budúcej edície.

  • Robustnejší dizajn spúšte pre 3D tlačené zbrane
  • Ukončenie rozbaľovacej ponuky GUI na zobrazenie štatistík z minulých hier
  • Viac infračervených prijímačov, ktoré je možné pripevniť k vestám hráčov
  • Ďalšie herné režimy, ktoré je možné zvoliť v GUI Pregame
  • Presnejší algoritmus umiestnenia značiek na stránke so štatistikami hráčov

Odporúča: