Съдържание:

Инфрачервен лазерен етикет с Raspberry Pi Zero: 6 стъпки (със снимки)
Инфрачервен лазерен етикет с Raspberry Pi Zero: 6 стъпки (със снимки)

Видео: Инфрачервен лазерен етикет с Raspberry Pi Zero: 6 стъпки (със снимки)

Видео: Инфрачервен лазерен етикет с Raspberry Pi Zero: 6 стъпки (със снимки)
Видео: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Юли
Anonim
Инфрачервен лазерен етикет с Raspberry Pi Zero
Инфрачервен лазерен етикет с Raspberry Pi Zero

Този Instructable ще премине през процеса за създаване на игра с инфрачервен лазерен етикет, използвайки базов сървър компютър и нула Raspberry Pi за всеки играч. Проектът разчита до голяма степен на Wifi връзка за комуникация със сървъра, което прави Pi страхотен кандидат.

Сървърът, използван в този проект, беше стар настолен компютър с Linux. Компютърът не трябва да бъде нещо специално и вероятно дори може да се стартира от Raspberry Pi 3. Сървърът и всеки от нулевите pi трябва да бъдат свързани към една и съща мрежа по време на игра.

Стъпка 1: Материали

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

Описанието и някои връзки за необходимите материали са показани по -долу. Списъкът с материали по -долу е за 3 оръдия.

  • Сървърния компютър (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Най -малко 4 GB SD карта (3) Amazon
  • IR LED предавател (3)
  • IR приемник (6) Amazon
  • Червен светодиод (3)
  • Син светодиод (3)
  • Зелен светодиод (3)
  • Пасивен зумер (3) Amazon
  • Бутон (6)
  • LCD 16x2 екран с I2C адаптер (3) Amazon
  • Преносима батерия (3) Amazon
  • Микро към обикновен USB кабел (3) Amazon
  • PN2222 транзистор (3)
  • 100Ω резистор (3)
  • 1kΩ резистор (9)

Незадължителни елементи:

  • Жилетка (3) Amazon
  • Удължаване на лентов кабел (3) Amazon

В този проект в крайна сметка взехме IR LED предавателя от стар комплект лазерни пистолети, които имаха черен конус около предавателя, за да помогнат за стесняване на изстрела на всеки пистолет. Всеки общ предавател обаче трябва да работи.

В допълнение към изброените по -горе артикули, самите лазерни оръжия бяха 3D отпечатани. Следователно този проект също ще изисква достъп до 3D принтер и нажежаема жичка. Като цяло за три оръдия общата сума достигна около 350 долара.

Стъпка 2: Настройка на сървъра

Настройка на сървъра
Настройка на сървъра
Настройка на сървъра
Настройка на сървъра
Настройка на сървъра
Настройка на сървъра

Първото нещо, необходимо за настройка на сървъра, е да инсталирате услугата за брокери на Mosquitto MQTT. Mosquitto е услугата, която предоставя рамка за комуникация между всяко от устройствата в играта. Това позволява на сървъра да изпраща съобщения до всеки от Pis, свързан с услугата. В терминала изпълнете следните команди.

sudo apt-get update

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

Някои от GUI за сървъра са създадени с помощта на GUI дизайнер, наречен Pygubu. Това може да бъде инсталирано чрез стартиране:

pip3 инсталирайте pygubu

Повече информация за 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

Тази стъпка ще трябва да се повтори на всеки от малиновите пис.

1. Инсталирайте операционна система

Първо, започнете с нова инсталация на Raspbian. Бихме препоръчали да използвате версията Lite, тъй като Pi е по -малко за обработка, но и двете версии трябва да работят добре. Изтеглянето може да бъде намерено на

2. Инсталирайте MQTT

След това трябва да инсталираме услугата за брокер MQTT. Ще използваме Mosquitto за това. В терминала изпълнете следните команди.

sudo apt-get update

sudo apt-get upgrade sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 инсталирайте paho-mqtt

Mosquitto е услугата, която предоставя рамка за комуникация между всяко от устройствата в играта. Това позволява на сървъра да изпраща съобщения до всеки от Pis, свързан с услугата.

3. Инсталирайте I2C Tools

Следващата команда ще инсталира библиотеки, които се използват за LCD екрана.

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

sudo apt -get install rpi.gpio -y

Адресът i2c може да се наложи да бъде променен във файла lcddriver.py. Адресът може да бъде намерен чрез въвеждане на следната команда.

i2cdetect -y 1

4. Инсталирайте и конфигурирайте LIRC

Създайте нова директория и изтеглете приложените файлове на това място.

Повечето интернет браузъри няма да изтеглят файлове без разширения. За да заобиколите това, два от файловете бяха качени с временни разширения. Както "lircrc.deleteExtension", така и "modules.deleteExtension" всъщност трябва да бъдат без разширения и файловете трябва да бъдат преименувани на "lircrc" и "модули", след като бъдат успешно изтеглени.

Тази стъпка инсталира и конфигурира зависимостите за пакета за инфрачервено дистанционно управление (LIRC) на Linux. За повече информация вижте урока за настройка на LIRC на:

Първо инсталирайте библиотеката, след това копирайте включените файлове в съответните им директории, както е показано в командите по -долу. Накрая рестартирайте услугата lircd.

sudo apt-get install 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

Рестартирайте своя pi, за да позволите промените да влязат в сила.

sudo рестартиране

5. Активирайте I2C и редактирайте CLIENT за всеки играч

След това ще активираме I2C интерфейса. Това може да стане с помощта

sudo raspi-config

и активиране на I2C в менюто "опции за интерфейс".

6. Редактиране на Player CLIENT и LTSERVER

Директорията с игри сега трябва да включва четирите останали файла.

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

Последната стъпка в конфигурирането на pi е присвояването на всеки номер на КЛИЕНТ и добавяне на местоположението на сървъра. Това става чрез редактиране на включения файл „player.py“за всяко пи, така че всички те да имат различен номер на КЛИЕНТА. Номерът на КЛИЕНТА е присвоен на ред 3 на player.py. Задайте първото пи за клиент „1“, второто за „2“, а третото за клиент „3“.

Редът LTSERVER трябва да бъде променен на IP адреса на сървъра. Това се установява чрез въвеждане на „ifconfig | grep "inet addr" 'в терминала на сървърния компютър.

Стъпка 4: Сглобяване на пистолет

Сглобяване на пистолет
Сглобяване на пистолет
Сглобяване на пистолет
Сглобяване на пистолет

Продължете да свържете всеки от пистолетите съгласно схемата на свързване и схемата по -горе.

Всяко от периферните устройства е свързано към следните GPIO щифтове на Pi Zero:

  • Звуков сигнал: GPIO5
  • Задействане: GPIO26
  • Презареждане: GPIO12
  • IR предавател: GPIO25
  • IR приемници: GPIO18
  • ЧЕРВЕН LED: GPIO17
  • ЗЕЛЕН LED: GPIO27
  • СИН LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Вижте схемата за повече подробности.

Ако желаете, лазерните пистолети могат да бъдат отпечатани 3D, като се използват включените файлове със стъпкови модели. Имайте предвид, че два от файловете "front1STL. STL" трябва да бъдат отпечатани.

Стъпка 5: Игра на игри

Игра на игра
Игра на игра
Игра на игра
Игра на игра
Игра на игра
Игра на игра

Играта се стартира чрез стартиране на файла "ltag.py" на сървъра. След като това стане, всеки от играчите може да се свърже със сървъра, като стартира съответния си файл „player.py“.

Забележка: След като включите батерията, може да отнеме до минута, докато pi се зареди.

Може също да бъде полезно да добавите задача за cron, която автоматично изпълнява файла player.py, след като пи стартира. Имахме трудности да накараме това да работи и в крайна сметка добавихме ред към файла "/etc/rc.local" на всеки от Pis, за да стартираме файла "player.py". Това позволява играта да се стартира, без да се налага да SSH в Pi за стартиране на скрипта на плейъра.

След като играта е стартирана с готови играчи, ще се появи графичен интерфейс, който позволява да се конфигурират някои от настройките на играта. Играта започва след натискане на бутона Старт.

След всяка игра ще се появи краен графичен интерфейс със статистика за предишната игра, включително тагове, глобални проценти и продължителност на играта.

Забележка: Поради ограничения в софтуерните библиотеки, местоположението на етикета на отчета за точността не е представително за действителните лазерни тагове. В текущата версия изображението на отчета за точността на плейъра е чисто за естетика с надеждата за бъдеща версия с реално внедряване на местоположението на маркера.

Стъпка 6: Бъдещи подобрения

Бъдещи подобрения
Бъдещи подобрения
Бъдещи подобрения
Бъдещи подобрения

Като цяло проектът имаше голям успех. По пътя се сетихме за няколко допълнителни функции, които може да бъдат добавени към бъдещо издание.

  • По -здрав дизайн на спусъка за 3D печатни оръжия
  • Завършващо падащо меню GUI за показване на статистика от минали игри
  • Още инфрачервени приемници, които могат да бъдат прикрепени към жилетките на играчите
  • Допълнителни режими на игра, които могат да бъдат избрани в графичния интерфейс на Pregame
  • По -точен алгоритъм за местоположение на маркера на страницата със статистика на играчите

Препоръчано: