Mundarija:

Raspberry Pi nolli infraqizil lazerli yorliq: 6 qadam (rasmlar bilan)
Raspberry Pi nolli infraqizil lazerli yorliq: 6 qadam (rasmlar bilan)

Video: Raspberry Pi nolli infraqizil lazerli yorliq: 6 qadam (rasmlar bilan)

Video: Raspberry Pi nolli infraqizil lazerli yorliq: 6 qadam (rasmlar bilan)
Video: КУПИЛ КУСОК ПОДЧЕРЁВКА И ПРИГОТОВИЛ Тако. BBQ. как у La Capital 2024, Iyul
Anonim
Raspberry Pi Zero bilan infraqizil lazer yorlig'i
Raspberry Pi Zero bilan infraqizil lazer yorlig'i

Ushbu ko'rsatma har bir o'yinchi uchun asosiy serverli kompyuter va Raspberry Pi nolini ishlatib, infraqizil lazer yorlig'i o'yinini yaratish jarayonidan o'tadi. Loyiha server bilan bog'lanish uchun asosan Wi -Fi ulanishiga tayanadi, bu esa Pi ni ajoyib nomzodga aylantiradi.

Bu loyihada ishlatilgan server Linuxli eski ish stoli kompyuteri edi. Kompyuterga hech qanday maxsus narsa kerak emas va uni hatto Raspberry Pi 3 dan ham ishga tushirish mumkin edi. O'yin paytida server va har bir nolinchi tarmoq bitta tarmoqqa ulangan bo'lishi kerak.

1 -qadam: materiallar

Materiallar
Materiallar
Materiallar
Materiallar

Kerakli materiallarning tavsifi va ba'zi havolalari quyida ko'rsatilgan. Quyidagi materiallar ro'yxati 3 ta qurol uchun.

  • Kompyuter serverlari (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Kamida 4 gigabaytlik SD -karta (3) Amazon
  • IQ LEDli uzatgich (3)
  • IR qabul qiluvchisi (6) Amazon
  • Qizil LED (3)
  • Moviy LED (3)
  • Yashil LED (3)
  • Passiv buzzer (3) Amazon
  • Bosish tugmasi (6)
  • I2C adapterli 16x2 LCD displey (3) Amazon
  • Portativ batareya to'plami (3) Amazon
  • Mikrodan oddiy USB kabeli (3) Amazon
  • PN2222 tranzistor (3)
  • 100Ω qarshilik (3)
  • 1kΩ qarshilik (9)

Majburiy bo'lmagan narsalar:

  • Yelek (3) Amazon
  • Lenta kabelining kengaytmasi (3) Amazon

Ushbu loyihada biz har bir qurolning o'qini toraytirib yuborish uchun transmitter atrofida qora konusga ega bo'lgan eski lazerli tabancalar to'plamidan IR LED o'tkazgichni oldik. Biroq, har qanday umumiy transmitter ishlashi kerak.

Yuqorida sanab o'tilgan narsalarga qo'shimcha ravishda, lazer qurollarining o'zi 3D bosilgan. Shu sababli, ushbu loyiha 3D -printer va filamanga kirishni ham talab qiladi. Umuman olganda, uchta qurol uchun jami 350 dollarga tushdi.

2 -qadam: Serverni sozlash

Serverni sozlash
Serverni sozlash
Serverni sozlash
Serverni sozlash
Serverni sozlash
Serverni sozlash

Serverni sozlash uchun kerak bo'lgan birinchi narsa - Mosquitto MQTT Broker xizmatini o'rnatish. Mosquitto - bu o'yindagi har bir qurilma o'rtasida aloqa o'rnatish uchun asos bo'lgan xizmat. Bu serverga xizmatga ulangan har bir Pisga xabar yuborish imkonini beradi. Terminalda quyidagi buyruqlarni bajaring.

sudo apt-get yangilanishi

sudo apt-get upgrade sudo apt-get mosquitto -y sudo apt-get install python3-pip -y sudo pip3 ni o'rnatish paho-mqtt

Server uchun ba'zi GUI -lar Pygubu deb nomlangan GUI -dizayneri yordamida yaratilgan. Buni ishga tushirish orqali o'rnatish mumkin:

pip3 pygubu -ni o'rnating

Pygubu haqida ko'proq ma'lumotni https://github.com/alejandroautalan/pygubu saytida topishingiz mumkin.

MQTT va Pygubu o'rnatilgandan so'ng, yangi katalog yarating va biriktirilgan fayllarni nusxalash. Katalogda quyidagilar bo'lishi kerak:

  • ltag.py
  • oldindan o'yinchoq
  • game_statistics.py
  • gvars.py
  • shoxrux.ui
  • shoxrux_fan.ui
  • uy.png
  • self.png
  • dushmanlar.png
  • lazer.jpg

Eslatma: Ushbu loyihada ishlatilgan rasmlar ishlab chiqish guruhi tomonidan yaratilmagan va shuning uchun mualliflik huquqini talab qilmaydi.

3 -qadam: Raspberry Pi -ni sozlash

Raspberry Pi sozlamalari
Raspberry Pi sozlamalari

Bu qadamni Raspberry Pisning har birida takrorlash kerak bo'ladi.

1. Operatsion tizimni o'rnating

Birinchidan, Raspbian -ni yangi o'rnatishdan boshlang. Biz Lite versiyasini ishlatishni tavsiya qilamiz, chunki Pi bilan ishlash kamroq, lekin har ikkala versiya ham yaxshi ishlashi kerak. Yuklab olishni https://www.raspberrypi.org/downloads/raspbian/ saytida topish mumkin.

2. MQTT ni o'rnating

Keyin biz MQTT broker xizmatini o'rnatishimiz kerak. Buning uchun biz Mosquitto -dan foydalanamiz. Terminalda quyidagi buyruqlarni bajaring.

sudo apt-get yangilanishi

sudo apt-get upgrade sudo apt-get mosquitto -y sudo apt-get install python3-pip -y sudo pip3 ni o'rnatish paho-mqtt

Mosquitto - bu o'yindagi har bir qurilma o'rtasida aloqa o'rnatish uchun asos bo'lgan xizmat. Bu serverga xizmatga ulangan har bir Pisga xabar yuborish imkonini beradi.

3. I2C asboblarini o'rnating

Quyidagi buyruq LCD displey uchun ishlatiladigan kutubxonalarni o'rnatadi.

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

sudo apt -get rpi.gpio -y ni o'rnating

I2c manzilini lcddriver.py faylida o'zgartirish kerak bo'lishi mumkin. Manzilni quyidagi buyruqni kiritish orqali topish mumkin.

i2cdetect -y 1

4. LIRC -ni o'rnating va sozlang

Yangi katalog yarating va unga biriktirilgan fayllarni yuklab oling.

Ko'pgina Internet -brauzerlar kengaytmalarsiz fayllarni yuklamaydilar. Buning oldini olish uchun ikkita fayl vaqtinchalik kengaytmalar bilan yuklangan. "Lircrc.deleteExtension" ham, "modules.deleteExtension" ham aslida kengaytirilmasligi kerak va fayllar muvaffaqiyatli yuklanganidan keyin "lircrc" va "modules" deb nomlanishi kerak.

Bu qadam Linux infraqizil masofadan boshqarish pulti (LIRC) paketiga bog'liqlikni o'rnatadi va sozlaydi. Qo'shimcha ma'lumot olish uchun LIRC-ni o'rnatish bo'yicha qo'llanmani ko'ring:

Avval kutubxonani o'rnating, so'ngra quyidagi buyruqlar ko'rsatilgandek, o'z ichiga olgan fayllarni tegishli kataloglarga nusxalash. Nihoyat, lircd xizmatini qayta ishga tushiring.

sudo apt-get install python3-lirc -y

Yangi yaratilgan katalogdan konfiguratsiya fayllarini kerakli joylarga ko'chirish uchun quyidagi buyruqlarni bajaring.

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

sudo mv modullari /etc /

Keyin lircd xizmatini qayta ishga tushiring:

sudo /etc/init.d/lircd qayta ishga tushirish

Keyin, /boot/config.txt faylini tahrirlang va quyidagi qatorni qo'shing

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

O'zgarishlar kuchga kirishi uchun pi -ni qayta ishga tushiring.

sudo qayta yuklash

5. I2C -ni yoqing va har bir o'yinchi uchun Mijozni tahrir qiling

Keyinchalik, biz I2C interfeysini yoqamiz. Bu yordamida amalga oshirilishi mumkin

sudo raspi-config

va "interfeys parametrlari" menyusida I2C ni yoqish.

6. Player CLIENT va LTSERVER -ni tahrir qiling

O'yin katalogida qolgan to'rtta fayl bo'lishi kerak.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • o'yinchi

Pi -ni sozlashning oxirgi bosqichi har bir pi -ga mijoz raqamini berish va server joylashuvini qo'shishdir. Bu har bir pi uchun "player.py" faylini tahrir qilish orqali amalga oshiriladi, shunda ularning har biri boshqa Mijozlar raqamiga ega bo'ladi. Mijozlar raqami player.py -ning 3 -qatorida belgilanadi. Birinchi pi mijozga "1", ikkinchisiga "2", uchinchisiga "3" mijozi bo'lsin.

LTSERVER liniyasi serverning IP -manziliga o'zgartirilishi kerak. Bu "ifconfig | yozish orqali topiladi grep "inet addr" 'server kompyuter terminalida.

4 -qadam: qurol yig'ish

Qurol yig'ilishi
Qurol yig'ilishi
Qurol yig'ish
Qurol yig'ish

Qurollarning har birini yuqoridagi ulanish sxemasi va sxemasi bo'yicha simlashga o'ting.

Har bir tashqi qurilmalar Pi Zero -dagi quyidagi GPIO pinlariga ulangan:

  • Buzzer: GPIO5
  • Trigger: GPIO26
  • Qayta yuklash: GPIO12
  • IQ uzatuvchi: GPIO25
  • IQ qabul qiluvchilar: GPIO18
  • Qizil LED: GPIO17
  • Yashil LED: GPIO27
  • Moviy LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Qo'shimcha ma'lumot olish uchun sxemaga qarang.

Agar xohlasangiz, lazerli qurollarni qadam bosilgan modelli fayllar yordamida 3D bosib chiqarish mumkin. Shuni yodda tutingki, "front1STL. STL" fayllaridan ikkitasi chop etilishi kerak.

5 -qadam: O'yin o'ynash

O'yin o'ynash
O'yin o'ynash
O'yin o'ynash
O'yin o'ynash
O'yin o'ynash
O'yin o'ynash

O'yin serverda "ltag.py" faylini ishga tushirish bilan boshlanadi. Bu bajarilgandan so'ng, har bir o'yinchi serverga "player.py" faylini ishga tushirib ulanishi mumkin.

Eslatma: Batareya to'plamini ulaganingizdan so'ng, pi -ni yuklashiga bir daqiqa vaqt ketishi mumkin.

Pi ishga tushgandan so'ng player.py faylini avtomatik ravishda ishga tushiradigan cron ishini qo'shish ham foydali bo'lishi mumkin. Biz bu ishni bajarishga qiynaldik va har bir Pisdagi "/etc/rc.local" fayliga "player.py" faylini ishga tushirish uchun qator qo'shdik. Bu o'yinni skriptni ishga tushirish uchun SSH -ni Pi -ga kiritmasdan boshlashga imkon beradi.

O'yinchilar tayyor holda o'yin boshlangandan so'ng, bir nechta o'yin sozlamalarini sozlash imkonini beradigan GUI paydo bo'ladi. O'yin Boshlash tugmasi bosilgandan so'ng boshlanadi.

Har bir o'yindan so'ng, oldingi o'yin statistikasi, shu jumladan teglar, global foizlar va o'yin davomiyligi bilan yakunlovchi GUI paydo bo'ladi.

Eslatma: Dasturiy ta'minot kutubxonalaridagi cheklovlar tufayli, aniqlik hisoboti yorlig'i joylari haqiqiy lazer teglarini bildirmaydi. Hozirgi versiyada, o'yinchining aniqligi to'g'risidagi hisobot tasviri faqat estetik nuqtai nazardan, joylashuvning haqiqiy joylashuvi bilan kelajakdagi versiyasini umid qiladi.

6 -qadam: kelajakdagi yaxshilanishlar

Kelajakdagi yaxshilanishlar
Kelajakdagi yaxshilanishlar
Kelajakdagi yaxshilanishlar
Kelajakdagi yaxshilanishlar

Umuman olganda, loyiha katta muvaffaqiyat edi. Yo'l davomida biz kelajakdagi nashrga qo'shilishi mumkin bo'lgan bir nechta qo'shimcha funktsiyalarni o'yladik.

  • 3D bosma qurollar uchun mustahkamroq tetik dizayni
  • O'tgan o'yinlar statistikasini ko'rsatish uchun GUI ochiladigan menyusi tugaydi
  • Ko'proq infraqizil qabul qiluvchilarni futbolkalarga taqish mumkin
  • Pregame GUI -da tanlanishi mumkin bo'lgan qo'shimcha o'yin usullari
  • O'yinchilar statistikasi sahifasida aniqroq joylashishni aniqlash algoritmi

Tavsiya: