Mündəricat:

Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi: 6 Addım (Şəkillərlə)
Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi: 6 Addım (Şəkillərlə)

Video: Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi: 6 Addım (Şəkillərlə)

Video: Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi: 6 Addım (Şəkillərlə)
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Noyabr
Anonim
Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi
Raspberry Pi Zero ilə İnfraqırmızı Lazer Etiketi

Bu Təlimat, hər bir oyunçu üçün bir baza server kompüteri və bir Raspberry Pi sıfırdan istifadə edərək İnfraqırmızı Lazer Etiket oyunu yaratmaq prosesini keçəcək. Layihə, Pi -ni əla bir namizəd halına gətirən serverlə ünsiyyət qurmaq üçün çox Wifi bağlantısına əsaslanır.

Bu layihədə istifadə olunan server Linux ilə köhnə bir masa üstü kompüter idi. Kompüterin xüsusi bir şeyə ehtiyacı yoxdur və yəqin ki, hətta Raspberry Pi 3 -dən də işləyə bilər. Oyun zamanı server və pi sıfırlarının hər biri eyni şəbəkəyə qoşulmalıdır.

Addım 1: Materiallar

Materiallar
Materiallar
Materiallar
Materiallar

Lazımi materialların təsviri və bəzi bağlantılar aşağıda göstərilmişdir. Aşağıdakı material siyahısı 3 silah üçündür.

  • Server Kompüteri (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Ən az 4 GB SD Kart (3) Amazon
  • IR LED Vericisi (3)
  • IR qəbuledicisi (6) Amazon
  • Qırmızı LED (3)
  • Mavi LED (3)
  • Yaşıl LED (3)
  • Passiv Buzzer (3) Amazon
  • Düymə (6)
  • I2C Adaptorlu LCD 16x2 Ekran (3) Amazon
  • Portativ Batareya Paketi (3) Amazon
  • Mikrodan Normal USB Kabelinə (3) Amazon
  • PN2222 Transistor (3)
  • 100Ω Rezistor (3)
  • 1kΩ Rezistor (9)

İsteğe bağlı maddələr:

  • Yelek (3) Amazon
  • Şerit Kabel uzantısı (3) Amazon

Bu layihədə, hər bir silahın atışını daraltmaq üçün vericinin ətrafında qara bir konus olan köhnə bir lazer etiketli silah dəstindən IR LED Vericisini aldıq. Ancaq hər hansı bir ümumi ötürücü işləməlidir.

Yuxarıda sadalanan maddələrə əlavə olaraq, lazer silahlarının özləri də 3D çap edilmişdir. Buna görə də bu layihə 3D printerə və filamentə giriş tələb edəcək. Ümumiyyətlə, üç silah üçün cəmi 350 dollara çatdı.

Addım 2: Server Quraşdırması

Server Quraşdırması
Server Quraşdırması
Server Quraşdırması
Server Quraşdırması
Server Quraşdırması
Server Quraşdırması

Serveri qurmaq üçün lazım olan ilk şey Mosquitto MQTT Broker Xidmətini qurmaqdır. Mosquitto, oyundakı hər bir cihaz arasında ünsiyyət üçün bir çərçivə təmin edən bir xidmətdir. Bu, serverə xidmətə qoşulmuş hər Pis -ə mesaj göndərməyə imkan verir. Terminalda aşağıdakı əmrləri yerinə yetirin.

sudo apt-get yeniləməsi

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

Server üçün bəzi GUI -lər Pygubu adlı bir GUI dizayneri ilə yaradılmışdır. Bu işə salınaraq quraşdırıla bilər:

pip3 pygubu quraşdırın

Pygubu haqqında daha çox məlumatı https://github.com/alejandroautalan/pygubu ünvanında tapa bilərsiniz.

MQTT və Pygubu quraşdırıldıqdan sonra yeni bir kataloq yaradın və əlavə edilmiş faylları kopyalayın. Kataloqda aşağıdakılar olmalıdır:

  • ltag.py
  • əvvəlcədən oyun
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • ev.png
  • özünü.png
  • düşmən.png
  • lazer.jpg

Qeyd: Bu layihədə istifadə olunan əlavə şəkillər inkişaf qrupu tərəfindən yaradılmadı və buna görə də müəlliflik iddiası daşımır.

Addım 3: Raspberry Pi Quraşdırması

Raspberry Pi Quraşdırma
Raspberry Pi Quraşdırma

Bu addım hər bir Moruq Balığında təkrarlanmalıdır.

1. Əməliyyat Sistemini Qurun

Birincisi, yeni bir Raspbian quraşdırılması ilə başlayın. Pi'nin idarə etməsi daha az olduğu üçün Lite versiyasını istifadə etməyi məsləhət görürük, amma hər iki versiya da yaxşı işləməlidir. Yükləməni https://www.raspberrypi.org/downloads/raspbian/ ünvanında tapa bilərsiniz.

2. MQTT quraşdırın

Sonra MQTT broker xidmətini quraşdırmalıyıq. Bunun üçün Mosquittodan istifadə edəcəyik. Terminalda aşağıdakı əmrləri yerinə yetirin.

sudo apt-get yeniləməsi

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

Mosquitto, oyundakı hər bir cihaz arasında ünsiyyət üçün bir çərçivə təmin edən bir xidmətdir. Bu, serverə xidmətə qoşulmuş hər Pisə mesaj göndərməyə imkan verir.

3. I2C Tools qurun

Aşağıdakı əmr, LCD ekran üçün istifadə olunan kitabxanaları quraşdıracaq.

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

sudo apt -get rpi.gpio -y quraşdırın

İ2c ünvanının lcddriver.py faylında dəyişdirilməsi lazım ola bilər. Aşağıdakı əmri daxil edərək ünvanı tapa bilərsiniz.

i2cdetect -y 1

4. LIRC qurun və konfiqurasiya edin

Yeni bir kataloq yaradın və əlavə edilmiş faylları bu yerə yükləyin.

Əksər İnternet brauzerləri uzantıları olmayan faylları yükləməyəcək. Bunun qarşısını almaq üçün, fayllardan ikisi müvəqqəti uzantılar ilə yükləndi. Həm "lircrc.deleteExtension", həm də "modules.deleteExtension" əslində uzantısız olmalı və fayllar uğurla endirildikdən sonra "lircrc" və "modules" olaraq adlandırılmalıdır.

Bu addım Linux Infrared Remote Control (LIRC) paketi üçün asılılıqları qurur və konfiqurasiya edir. Ətraflı məlumat üçün https://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/ ünvanında LIRC qurma təlimatına baxın.

Əvvəlcə kitabxananı quraşdırın, sonra daxil olan faylları aşağıdakı əmrlərdə göstərildiyi kimi müvafiq qovluqlara kopyalayın. Nəhayət, lircd xidmətini yenidən başladın.

sudo apt-get python3-lirc -y quraşdırın

Yeni yaradılan qovluqdan konfiqurasiya fayllarını düzgün yerlərə köçürmək üçün aşağıdakı əmrləri yerinə yetirin.

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

sudo mv modulları /etc /

Sonra çalıştırarak lircd xidmətini yenidən başladın:

sudo /etc/init.d/lircd yenidən başladın

Sonra, /boot/config.txt faylını redaktə edin və aşağıdakı sətri əlavə edin

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

Dəyişikliklərin qüvvəyə minməsi üçün pi -ni yenidən başladın.

sudo yenidən başladın

5. I2C -ni aktivləşdirin və hər bir oyunçu üçün MÜŞTƏRİ redaktə edin

Sonra, I2C interfeysini aktivləşdirəcəyik. Bu istifadə etməklə edilə bilər

sudo raspi-config

və "interfeys seçimləri" menyusunda I2C -nin aktivləşdirilməsi.

6. Player MÜŞTERİ və LTSERVER -i redaktə edin

Oyun qovluğunda artıq qalan dörd fayl olmalıdır.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • oyunçu.py

Pi -ni konfiqurasiya etməkdə son addım hər pi -yə MÜŞTƏRİ nömrə vermək və serverin yerini əlavə etməkdir. Bu, hər bir pi üçün daxil olan "player.py" faylını düzəltməklə edilir ki, hamısı fərqli bir MÜŞTERİ nömrəsinə sahib olsun. MÜŞTƏRİ nömrəsi player.py saytının 3 -cü sətrində verilir. Müştəri olmaq üçün birinci pi "1", ikincisi "2" və üçüncüsü müştəri "3" olaraq təyin edin.

LTSERVER xətti serverin IP ünvanına dəyişdirilməlidir. Bu 'ifconfig | yazaraq tapılır grep "inet addr" 'server kompüterinin terminalında.

Addım 4: Silah yığılması

Silah Məclisi
Silah Məclisi
Silah Məclisi
Silah Məclisi

Silahların hər birini yuxarıdakı sxemə və sxemə görə tel etməyə davam edin.

Ətraf qurğuların hər biri Pi Zero -dakı aşağıdakı GPIO pinlərinə bağlıdır:

  • Səs siqnalı: GPIO5
  • Tetikleyici: GPIO26
  • Yenidən yüklə: GPIO12
  • IR ötürücü: GPIO25
  • IR qəbulediciləri: GPIO18
  • QIRMIZI LED: GPIO17
  • YAŞIL LED: GPIO27
  • MAVİ LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Daha ətraflı məlumat üçün sxemə baxın.

İstəyirsinizsə, lazer silahları, daxil edilmiş addım model faylları istifadə edərək 3D çap edilə bilər. Unutmayın ki, "front1STL. STL" fayllarından ikisi çap olunmalıdır.

Addım 5: Oyun oynayın

Oyun Oyna
Oyun Oyna
Oyun Oyna
Oyun Oyna
Oyun Oyna
Oyun Oyna

Oyun serverdə "ltag.py" faylını işə salmaqla başlayır. Bunu etdikdən sonra, oyunçuların hər biri öz "player.py" faylını işlədərək serverə qoşula bilər.

Qeyd: Batareya paketini bağladıqdan sonra pi -nin açılması bir dəqiqə çəkə bilər.

Pi başladıqdan sonra player.py faylını avtomatik işlədən bir cron işi əlavə etmək də faydalı ola bilər. Bunu işə salmaqda çətinlik çəkdik və "player.py" faylını işə salmaq üçün hər Pisdəki "/etc/rc.local" faylına bir sətir əlavə etdik. Bu, oyunun skriptini işə salmaq üçün Pi -yə SSH qoymadan oyunun başlamasına imkan verir.

Oyunçular hazır olduqda oyuna başladıqdan sonra bir neçə oyun parametrinin konfiqurasiya olunmasına imkan verən bir GUI görünəcək. Başlat düyməsinə basıldıqdan sonra oyun başlayır.

Hər oyundan sonra etiketlər, qlobal faizlər və oyun müddəti də daxil olmaqla əvvəlki oyunla bağlı statistika ilə bitən bir GUI görünəcək.

Qeyd: Proqram kitabxanalarındakı məhdudiyyətlər səbəbindən dəqiqlik hesabatı etiket yerləri faktiki lazer etiketlərini təmsil etmir. Mövcud versiyada, Oyunçunun Dəqiqlik Hesabatı görüntüsü, əsl etiket yeri tətbiqi ilə gələcək bir versiya ümidi ilə yalnız estetika üçündür.

Addım 6: Gələcək Təkmilləşdirmələr

Gələcək Təkmilləşdirmələr
Gələcək Təkmilləşdirmələr
Gələcək Təkmilləşdirmələr
Gələcək Təkmilləşdirmələr

Ümumiyyətlə, layihə böyük uğur qazandı. Yolda, gələcək nəşrə əlavə edilə biləcək bir neçə əlavə xüsusiyyət düşündük.

  • 3D çaplı silahlar üçün daha güclü tətik dizaynı
  • Keçmiş oyunların statistikasını göstərmək üçün GUI açılan menyusu bitir
  • Oyunçuların yeleklərinə əlavə edilə bilən daha çox infraqırmızı alıcılar
  • Pregame GUI -də seçilə bilən əlavə oyun rejimi
  • Oyunçuların statistikası səhifəsində daha dəqiq etiket yeri alqoritmi

Tövsiyə: