Мазмуну:

Raspberry Pi Zero менен Infrared Laser Tag: 6 кадам (сүрөттөр менен)
Raspberry Pi Zero менен Infrared Laser Tag: 6 кадам (сүрөттөр менен)

Video: Raspberry Pi Zero менен Infrared Laser Tag: 6 кадам (сүрөттөр менен)

Video: Raspberry Pi Zero менен Infrared Laser Tag: 6 кадам (сүрөттөр менен)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Июль
Anonim
Raspberry Pi Zero менен Infrared Laser Tag
Raspberry Pi Zero менен Infrared Laser Tag

Бул Instructable базалык сервердик компьютерди жана Raspberry Pi нөлүн колдонуп, Infrared Laser Tag оюнун түзүү процессин басып өтөт. Долбоор Пиди мыкты талапкер кылган сервер менен байланышуу үчүн Wifi туташуусуна көп таянат.

Бул долбоордо колдонулган сервер Linux менен эски рабочий компьютер болгон. Компьютердин өзгөчө бир нерсенин кереги жок, ал тургай Raspberry Pi 3.ден иштетилиши мүмкүн. Сервер жана пи нөлдөрдүн ар бири оюн учурунда бир тармакка туташып турушу керек.

1 -кадам: материалдар

Материалдар
Материалдар
Материалдар
Материалдар

Керектүү материалдардын сыпаттамасы жана кээ бир шилтемелери төмөндө көрсөтүлгөн. Төмөндөгү материалдардын тизмеси 3 курал үчүн.

  • Компьютердик сервер (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Жок дегенде 4 ГБ SD карта (3) Amazon
  • IR LED өткөргүч (3)
  • IR алуучу (6) Amazon
  • Кызыл LED (3)
  • Көк LED (3)
  • Жашыл LED (3)
  • Passive Buzzer (3) Amazon
  • Баскыч (6)
  • LCD 16x2 экран I2C адаптери менен (3) Amazon
  • Портативдүү Батарея Топтому (3) Amazon
  • Микродон кадимки USB кабелине (3) Amazon
  • PN2222 Транзистор (3)
  • 100Ω резистор (3)
  • 1kΩ резистор (9)

Кошумча нерселер:

  • Vest (3) Amazon
  • Ribbon Cable кеңейтүүсү (3) Amazon

Бул долбоордо биз IR LED өткөргүчүн ар бир мылтыктын окун тарытууга жардам берүүчүнүн айланасында кара конус болгон лазердик мылтыктын эски топтомунан алып бүттүк. Бирок, кандайдыр бир жалпы өткөргүч иштеши керек.

Жогоруда саналган нерселерден тышкары, лазердик мылтыктын өзү 3D басылган. Бул долбоор ошондой эле 3D принтерге жана жипке кирүүнү талап кылат. Жалпысынан алганда, үч мылтык үчүн бардыгы болжол менен 350 долларга жеткен.

2 -кадам: Server орнотуу

Серверди орнотуу
Серверди орнотуу
Серверди орнотуу
Серверди орнотуу
Серверди орнотуу
Серверди орнотуу

Серверди орнотуу үчүн керек болгон биринчи нерсе - Mosquitto MQTT Broker Service кызматын орнотуу. Mosquitto - бул оюндагы ар бир түзмөктүн ортосундагы байланышты камсыз кылган кызмат. Бул серверге кызматка туташкан Pisтин ар бирине билдирүү жөнөтүүгө мүмкүндүк берет. Терминалда төмөнкү буйруктарды аткарыңыз.

sudo apt-get update

sudo apt-get жогорулатуу sudo apt-get чиркейди орнотуу -y sudo apt-get орнотуу python3-pip -y sudo pip3 орнотуу paho-mqtt

Сервер үчүн GUIлердин айрымдары Pygubu аттуу GUI дизайнеринин жардамы менен түзүлгөн. Муну иштетүү менен орнотсо болот:

pip3 pygubu орнотуу

Pygubu жөнүндө көбүрөөк маалыматты https://github.com/alejandroautalan/pygubu сайтынан тапса болот

MQTT жана Pygubu орнотулгандан кийин, жаңы каталог түзүңүз жана тиркелген файлдарды көчүрүңүз. Каталог төмөнкүлөрдү камтышы керек:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • душмандар.png
  • laser.jpg

Эскертүү: Бул долбоордо колдонулган тиркелген сүрөттөр иштеп чыгуу тобу тарабынан түзүлгөн эмес, ошондуктан автордукту талап кылбайт.

3 -кадам: Raspberry Pi орнотуусу

Raspberry Pi орнотуусу
Raspberry Pi орнотуусу

Бул кадамды Raspberry Pisтин ар биринде кайталоо керек болот.

1. Иштетүү системасын орнотуңуз

Биринчиден, Raspbianдин жаңы орнотуусунан баштаңыз. Биз Lite версиясын колдонууну сунуштайт элек, анткени Pi аны иштете албайт, бирок эки версиясы жакшы иштеши керек. Жүктөөнү https://www.raspberrypi.org/downloads/raspbian/ сайтынан тапса болот

2. MQTT орнотуу

Кийинки биз MQTT брокердик кызматын орнотуу керек. Бул үчүн биз Mosquitto колдонобуз. Терминалда төмөнкү буйруктарды аткарыңыз.

sudo apt-get update

sudo apt-get жогорулатуу sudo apt-get чиркейди орнотуу -y sudo apt-get орнотуу python3-pip -y sudo pip3 орнотуу paho-mqtt

Mosquitto - бул оюндагы ар бир түзмөктүн ортосундагы байланышты камсыз кылган кызмат. Бул серверге кызматка туташкан Pisтин ар бирине билдирүү жөнөтүүгө мүмкүндүк берет.

3. I2C Tools орнотуу

Төмөнкү буйрук LCD экраны үчүн колдонулган китепканаларды орнотот.

sudo apt-get -y python3-smbus i2c-куралдарын орнотуңуз

sudo apt -get rpi.gpio -y орнотуу

I2c дарегин lcddriver.py файлында өзгөртүү керек болушу мүмкүн. Даректи төмөнкү буйрукту киргизүү аркылуу тапса болот.

i2cdetect -y 1

4. LIRC орнотуу жана конфигурациялоо

Жаңы каталог түзүңүз жана тиркелген файлдарды ушул жерге жүктөп алыңыз.

Көпчүлүк Интернет браузерлери файлдарды кеңейтүүсүз жүктөп алышпайт. Муну айланып өтүү үчүн, файлдардын экөө убактылуу кеңейтүүлөр менен жүктөлдү. "Lircrc.deleteExtension" жана "modules.deleteExtension" экөө тең чындыгында кеңейтүүсүз болушу керек жана файлдар ийгиликтүү жүктөлгөндөн кийин "lircrc" жана "modules" деп аталышы керек.

Бул кадам Linux Infrared Remote Control (LIRC) пакетине көз карандылыкты орнотот жана конфигурациялайт. Көбүрөөк маалымат алуу үчүн LIRCти орнотуу боюнча окуу куралын караңыз:

Адегенде китепкананы орнотуңуз, андан кийин төмөндөгү буйруктарда көрсөтүлгөндөй камтылган файлдарды тиешелүү каталогдоруна көчүрүңүз. Акырында, lircd кызматын кайра баштаңыз.

sudo apt-get python3-lirc -y орнотуу

Жаңы түзүлгөн каталогдон конфигурация файлдарын туура жерлерине жылдыруу үчүн төмөнкү буйруктарды аткарыңыз.

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

sudo mv модулдары /etc /

Андан кийин lircd кызматын кайра иштетип:

sudo /etc/init.d/lircd өчүрүп күйгүзүү

Андан кийин, /boot/config.txt файлын түзөтүп, төмөнкү сапты кошуңуз

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

Өзгөртүүлөрдүн күчүнө кириши үчүн пиңизди кайра жүктөңүз.

sudo кайра жүктөө

5. I2C иштетүү жана ар бир оюнчу үчүн КЛИЕНТТИ түзөтүү

Андан кийин, I2C интерфейсин иштетебиз. Муну колдонуу менен жасаса болот

sudo raspi-config

жана "интерфейс параметрлери" менюсунда I2C иштетүү.

6. Player CLIENT жана LTSERVERди түзөтүңүз

Оюн каталогу азыр калган төрт файлды камтышы керек.

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

Пиди конфигурациялоонун акыркы кадамы - ар бир piге КЛИЕНТ номерин берүү жана сервердин жайгашуусун кошуу. Бул ар бир пи үчүн камтылган "player.py" файлын түзөтүү менен жасалат, андыктан аларда башка КЛИЕНТ номери бар. КЛИЕНТТИН номери player.py сайтынын 3 -сапында берилет. Биринчи пи кардар "1", экинчиси "2", үчүнчү кардар "3" болууну тапшырыңыз.

LTSERVER линиясы сервердин IP дарегине өзгөртүлүшү керек. Бул 'ifconfig | терүү аркылуу табылат grep "inet addr" 'сервердик компьютердин терминалында.

4 -кадам: Курал чогултуу

Gun Assembly
Gun Assembly
Gun Assembly
Gun Assembly

Мылтыктын ар бирин зым схемасына жана жогорудагы схемага ылайык өткөрүңүз.

Кошумча жабдуулардын ар бири Pi Zeroдогу төмөнкү GPIO казыктарына туташкан:

  • Buzzer: GPIO5
  • Триггер: GPIO26
  • Кайра жүктөө: GPIO12
  • IR өткөргүч: GPIO25
  • IR кабылдагычтар: GPIO18
  • КЫЗЫЛ Светодиод: GPIO17
  • Жашыл LED: GPIO27
  • КӨК LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Көбүрөөк маалымат алуу үчүн схеманы караңыз.

Кааласаңыз, лазердик мылтыктар камтылган моделдин файлдарын колдонуу менен 3D басып чыгарылышы мүмкүн. "Front1STL. STL" файлдарынын экөө басып чыгарылышы керек экенин эстен чыгарбаңыз.

5 -кадам: Оюн ойноо

Оюн ойноо
Оюн ойноо
Оюн ойноо
Оюн ойноо
Оюн ойноо
Оюн ойноо

Оюн серверде "ltag.py" файлын иштетүү менен башталат. Бул бүткөндөн кийин, оюнчулардын ар бири серверге "player.py" файлын иштетүү менен туташа алышат.

Эскертүү: Батареяны кошкондон кийин, пи жүктөлүшү үчүн бир мүнөткө чейин убакыт кетиши мүмкүн.

Пи башталгандан кийин player.py файлын автоматтык түрдө иштетүүчү cron жумушун кошуу да пайдалуу болушу мүмкүн. Биз муну ишке киргизүүдө кыйналдык жана "player.py" файлын иштетүү үчүн Pisтин ар бириндеги "/etc/rc.local" файлына сап кошуу менен аяктадык. Бул оюнду сценарийди иштетүү үчүн Pi'ге SSH киргизбестен оюнду баштоого мүмкүндүк берет.

Оюнчулар даяр болгондон кийин оюн башталгандан кийин, бир нече оюн орнотууларын конфигурациялоого мүмкүндүк берген GUI пайда болот. Оюн "Старт" баскычы басылгандан кийин башталат.

Ар бир оюндан кийин акыркы GUI тегдери, глобалдык пайыздар жана оюндун узактыгы, анын ичинде мурунку оюн тууралуу статистика пайда болот.

Эскертүү: Программалык китепканалардагы чектөөлөрдөн улам, тактык отчетунун тегдери жайгашкан жерлер чыныгы лазердик тегдердин өкүлү эмес. Учурдагы версияда, Оюнчунун тактыгы боюнча отчеттун сүрөтү эстетика үчүн гана, тегдин жайгашуусун жүзөгө ашыруу менен келечектеги версияны үмүт кылат.

6 -кадам: Келечектеги жакшыртуулар

Келечектеги жакшыртуулар
Келечектеги жакшыртуулар
Келечектеги жакшыртуулар
Келечектеги жакшыртуулар

Жалпысынан алганда, долбоор ийгиликтүү болду. Жолдо келе жаткан басылышка кошулушу мүмкүн болгон бир нече кошумча мүмкүнчүлүктөр жөнүндө ойлондук.

  • 3D басылган мылтыктар үчүн стиггер триггер дизайны
  • Өткөн оюндардын статистикасын көрсөтүү үчүн GUI ачылуучу менюсун бүтүрүү
  • Оюнчулардын жилетине тагыла турган дагы инфракызыл кабылдагычтар
  • Pregame GUIде тандоого боло турган кошумча оюн режимдери
  • Оюнчулардын статистикалык бетинде тагдын тагыраак жайгашуу алгоритми

Сунушталууда: