Cuprins:

Etichetă laser cu infraroșu cu Raspberry Pi Zero: 6 pași (cu imagini)
Etichetă laser cu infraroșu cu Raspberry Pi Zero: 6 pași (cu imagini)

Video: Etichetă laser cu infraroșu cu Raspberry Pi Zero: 6 pași (cu imagini)

Video: Etichetă laser cu infraroșu cu Raspberry Pi Zero: 6 pași (cu imagini)
Video: High Density 2022 2024, Iulie
Anonim
Etichetă laser cu infraroșu cu Raspberry Pi Zero
Etichetă laser cu infraroșu cu Raspberry Pi Zero

Acest instructabil va parcurge procesul de creare a unui joc cu etichete laser cu infraroșu utilizând un computer server de bază și un zero Raspberry Pi pentru fiecare jucător. Proiectul se bazează foarte mult pe o conexiune Wifi pentru a comunica cu serverul, ceea ce face din Pi un candidat excelent.

Serverul utilizat în acest proiect a fost un computer desktop vechi cu Linux. Computerul nu trebuie să fie ceva special și ar putea fi rulat chiar de pe un Raspberry Pi 3. Serverul și fiecare dintre pi zero trebuie conectate la aceeași rețea în timpul jocului.

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale

Descrierea și câteva linkuri pentru materialele necesare sunt prezentate mai jos. Lista materialelor de mai jos este pentru 3 tunuri.

  • Computer server (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Card SD de cel puțin 4 GB (3) Amazon
  • Transmițător cu LED IR (3)
  • Receptor IR (6) Amazon
  • LED roșu (3)
  • LED albastru (3)
  • LED verde (3)
  • Buzzer pasiv (3) Amazon
  • Buton (6)
  • Ecran LCD 16x2 cu adaptor I2C (3) Amazon
  • Acumulator portabil (3) Amazon
  • Cablu USB micro-obișnuit (3) Amazon
  • PN2222 Tranzistor (3)
  • Rezistor 100Ω (3)
  • Rezistor 1kΩ (9)

Elemente opționale:

  • Vestă (3) Amazon
  • Extensie cablu panglică (3) Amazon

În acest proiect, am ajuns să preluăm emițătorul cu LED-uri IR dintr-un set vechi de arme cu etichetă laser care aveau un con negru în jurul transmițătorului pentru a ajuta la restrângerea focului fiecărui pistol. Cu toate acestea, orice transmițător general ar trebui să funcționeze.

În plus față de articolele enumerate mai sus, pistolele laser în sine au fost imprimate 3D. Prin urmare, acest proiect ar necesita, de asemenea, accesul la o imprimantă 3D și un filament. Per total, pentru trei arme totalul a ajuns la aproximativ 350 USD.

Pasul 2: Configurare server

Configurare server
Configurare server
Configurare server
Configurare server
Configurare server
Configurare server

Primul lucru necesar pentru configurarea serverului este instalarea Mosquitto MQTT Broker Service. Mosquitto este serviciul care oferă un cadru de comunicare între fiecare dintre dispozitivele din joc. Acest lucru permite serverului să trimită mesaje către fiecare dintre Pis conectat la serviciu. În terminal, executați următoarele comenzi.

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

Unele dintre interfețele grafice pentru server au fost create folosind un designer GUI numit Pygubu. Acest lucru poate fi instalat executând:

pip3 instalează pygubu

Mai multe informații despre pygubu pot fi găsite la

Odată ce MQTT și Pygubu sunt instalate, creați un director nou și copiați fișierele atașate. Directorul ar trebui să includă:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • dușmani.png
  • laser.jpg

Notă: Imaginile atașate utilizate în acest proiect nu au fost create de echipa de dezvoltare și, prin urmare, nu revendică autorul.

Pasul 3: Configurarea Raspberry Pi

Configurare Raspberry Pi
Configurare Raspberry Pi

Acest pas va trebui repetat pe fiecare Raspberry Pis.

1. Instalați sistemul de operare

În primul rând, începeți cu o nouă instalare a Raspbian. Vă recomandăm să folosiți versiunea Lite, deoarece Pi este mai puțin manipulabilă, dar oricare dintre versiuni ar trebui să funcționeze bine. Descărcarea poate fi găsită la

2. Instalați MQTT

În continuare trebuie să instalăm serviciul de broker MQTT. Pentru asta vom folosi Mosquitto. În terminal, executați următoarele comenzi.

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

Mosquitto este serviciul care oferă un cadru de comunicare între fiecare dintre dispozitivele din joc. Aceasta permite serverului să trimită mesaje către fiecare dintre Pis conectat la serviciu.

3. Instalați I2C Tools

Următoarea comandă va instala bibliotecile care sunt utilizate pentru ecranul LCD.

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

sudo apt-get install rpi.gpio -y

Este posibil să fie necesară modificarea adresei i2c în fișierul lcddriver.py. Adresa poate fi găsită introducând următoarea comandă.

i2cdetect -y 1

4. Instalați și configurați LIRC

Creați un director nou și descărcați fișierele atașate în această locație.

Majoritatea browserelor de internet nu vor descărca fișiere fără extensii. Pentru a evita acest lucru, două dintre fișiere au fost încărcate cu extensii temporare. Atât „lircrc.deleteExtension”, cât și „modules.deleteExtension” ar trebui să fie de fapt fără extensii și fișierele ar trebui redenumite în „lircrc” și „module” după ce au fost descărcate cu succes.

Acest pas instalează și configurează dependențele pentru pachetul Linux Infrared Remote Control (LIRC). Pentru mai multe informații, consultați tutorialul pentru configurarea LIRC la:

Mai întâi instalați biblioteca, apoi copiați fișierele incluse în directoarele respective, așa cum se arată în comenzile de mai jos. În cele din urmă, reporniți serviciul lircd.

sudo apt-get install python3-lirc -y

Din directorul nou creat executați următoarele comenzi pentru a muta fișierele de configurare în locațiile lor corecte.

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

sudo mv modules / etc /

Apoi reporniți serviciul lircd executând:

sudo /etc/init.d/lircd restart

Apoi, editați fișierul /boot/config.txt și adăugați următoarea linie

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

Reporniți pi-ul pentru a permite efectuarea modificărilor.

reporniți sudo

5. Activați I2C și editați CLIENT pentru fiecare jucător

Apoi, vom activa interfața I2C. Acest lucru se poate face folosind

sudo raspi-config

și activarea I2C în meniul „opțiuni de interfață”.

6. Editați Player CLIENT și LTSERVER

Directorul jocului ar trebui să includă acum cele patru fișiere rămase.

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

Ultimul pas în configurarea pi este atribuirea fiecărui pi un număr CLIENT și adăugarea locației serverului. Acest lucru se realizează prin editarea fișierului „player.py” inclus pentru fiecare pi, astfel încât să aibă toate un număr de CLIENT diferit. Numărul CLIENTUL este atribuit pe linia 3 a player.py. Atribuiți primul pi să fie clientul "1", al doilea să fie "2" și al treilea să fie clientul "3".

Linia LTSERVER ar trebui schimbată la adresa IP a serverului. Acest lucru se găsește tastând „ifconfig | grep "inet addr" 'în terminalul computerului server.

Pasul 4: Asamblarea pistolului

Asamblarea pistolului
Asamblarea pistolului
Asamblarea pistolului
Asamblarea pistolului

Procedați la conectarea fiecăruia dintre pistoale conform schemei de cablare și schemei de mai sus.

Fiecare dintre periferice este conectat la următorii pini GPIO de pe Pi Zero:

  • Buzzer: GPIO5
  • Declanșator: GPIO26
  • Reîncărcați: GPIO12
  • Transmițător IR: GPIO25
  • Receptoare IR: GPIO18
  • LED ROSU: GPIO17
  • LED VERDE: GPIO27
  • LED ALBASTRU: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Vedeți schema pentru mai multe detalii.

Dacă se dorește, pistoalele laser pot fi tipărite 3D folosind fișierele model de pas incluse. Rețineți că două dintre fișierele „front1STL. STL” trebuie tipărite.

Pasul 5: Joc

Joc
Joc
Joc
Joc
Joc
Joc

Jocul este început prin rularea fișierului „ltag.py” pe server. Odată ce acest lucru este făcut, fiecare dintre jucători se poate conecta la server rulând fișierul respectiv "player.py".

Notă: După conectarea acumulatorului, ar putea dura până la un minut pentru pornirea dispozitivului.

De asemenea, poate fi util să adăugați o lucrare cron care rulează automat fișierul player.py odată cu pornirea pi. Ne-a fost greu să reușim acest lucru și am ajuns să adăugăm o linie în fișierul „/etc/rc.local” de pe fiecare din Pis pentru a rula fișierul „player.py”. Acest lucru permite pornirea jocului fără a fi nevoie să SSH în Pi-uri pentru a rula scriptul playerului.

Odată ce jocul a fost început cu jucătorii gata, va apărea o interfață grafică care permite configurarea câtorva dintre setările jocului. Jocul începe după apăsarea butonului Start.

După fiecare joc, va apărea o interfață grafică finală cu statistici despre jocul anterior, inclusiv etichete, procentaje globale și durata jocului.

Notă: Datorită limitării bibliotecilor software, locațiile etichetelor raportului de precizie nu sunt reprezentative pentru etichetele laser reale. În versiunea actuală, imaginea Raportului de acuratețe al jucătorului este doar pentru estetică, în speranța unei versiuni viitoare cu implementarea reală a locației etichetelor.

Pasul 6: Îmbunătățiri viitoare

Îmbunătățiri viitoare
Îmbunătățiri viitoare
Îmbunătățiri viitoare
Îmbunătățiri viitoare

Per ansamblu, proiectul a avut un succes major. Pe parcurs, ne-am gândit la câteva funcții suplimentare care ar putea fi adăugate la o ediție viitoare.

  • Design de declanșare mai robust pentru armele tipărite 3D
  • Încheierea meniului derulant GUI pentru a afișa statistici din jocurile anterioare
  • Mai multe receptoare cu infraroșu care ar putea fi atașate la vestele jucătorilor
  • Moduri de joc suplimentare care pot fi alese în interfața grafică Pregame
  • Algoritm mai precis de localizare a etichetelor pe pagina de statistici a jucătorilor

Recomandat: