Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Server орнотуу
- 3 -кадам: Raspberry Pi орнотуусу
- 4 -кадам: Курал чогултуу
- 5 -кадам: Оюн ойноо
- 6 -кадам: Келечектеги жакшыртуулар
Video: Raspberry Pi Zero менен Infrared Laser Tag: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул 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 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 -кадам: Курал чогултуу
Мылтыктын ар бирин зым схемасына жана жогорудагы схемага ылайык өткөрүңүз.
Кошумча жабдуулардын ар бири 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де тандоого боло турган кошумча оюн режимдери
- Оюнчулардын статистикалык бетинде тагдын тагыраак жайгашуу алгоритми
Сунушталууда:
Жыгач LED оюн дисплейи Raspberry Pi Zero менен иштейт: 11 кадам (сүрөттөр менен)
Raspberry Pi Zero тарабынан иштетилген жыгач LED оюн дисплейи: Бул проект 20x10 пикселдик WS2812 негизделген LED дисплейин ишке ашырат, анын көлөмү 78х35 см, аны ретро оюндарын ойноо үчүн конок бөлмөсүнө оңой эле орнотсо болот. Бул матрицанын биринчи версиясы 2016 -жылы курулган жана башка көптөгөн адамдар тарабынан кайра курулган. Бул экспозиция
YouTube жазылуучусу электрондук кагазды көрсөтүү менен Raspberry Pi Zero Wди колдонот: 5 кадам (сүрөттөр менен)
E-Paper Display жана Raspberry Pi Zero W аркылуу YouTube жазылуучуларынын эсептегичи: Бул нускамада, мен сизге YouTube APIге суроо үчүн электрондук кагаз дисплейин жана Raspberry Pi Zero Wди кантип колдонууну көрсөтөм. жана дисплейди жаңыртыңыз. Электрондук кагаз дисплейлери мындай долбоор үчүн эң сонун, анткени алар
Vivre Avec Nabaztag: Tag: Tag: 14 Steps
Vivre Avec Nabaztag: Тэг: Tag: Voilà! Nabaztag est branché. C'est parti
Arduino менен I2C InfraRed Remote Control: 8 кадам (Сүрөттөр менен)
Arduino менен I2C InfraRed Remote Control: PreambleThis Instructable интерфейс үчүн I2Cди колдонуп универсалдуу алыстан башкарууну кантип түзүү керектиги жөнүндө маалымат берет. I2C кулдук аппаратын колдонуп, кандай кызык дейсиз? Ооба, I2C кул түзмөгү. Бул IR пакеттеринин так убактысы өтө талаптуу жана
Arduino Laser Tag - Duino Tag: 11 кадам (сүрөттөр менен)
Arduino Laser Tag - Duino Tag: Duino tagger- Жалпы киришүү Duino tag - бул ардуинонун тегерегине негизделген лазердик тег системасы. Акырында, офистик курал -жарактар, токойлуу согуштар жана чет жакалар үчүн идеалдуу лазердик тег системасы болмоюнча, модернизацияланган жана бузулган лазердик тегдер системасы