Πίνακας περιεχομένων:

Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero: 6 βήματα (με εικόνες)
Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero: 6 βήματα (με εικόνες)

Βίντεο: Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero: 6 βήματα (με εικόνες)

Βίντεο: Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero: 6 βήματα (με εικόνες)
Βίντεο: Θερμόμετρα Laser - Υπερύθρων - Raytek Portable IR Thermometers 2024, Ιούλιος
Anonim
Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero
Ετικέτα υπερύθρων λέιζερ με Raspberry Pi Zero

Αυτό το Instructable θα ακολουθήσει τη διαδικασία δημιουργίας ενός παιχνιδιού Infrared Laser Tag χρησιμοποιώντας έναν βασικό υπολογιστή διακομιστή και ένα Raspberry Pi zero για κάθε παίκτη. Το έργο βασίζεται σε μεγάλο βαθμό σε μια σύνδεση Wifi για επικοινωνία με το διακομιστή, γεγονός που καθιστά το Pi έναν εξαιρετικό υποψήφιο.

Ο διακομιστής που χρησιμοποιήθηκε σε αυτό το έργο ήταν ένας παλιός επιτραπέζιος υπολογιστής με Linux. Ο υπολογιστής δεν χρειάζεται να είναι κάτι το ιδιαίτερο, και πιθανότατα θα μπορούσε ακόμη και να τρέξει από ένα Raspberry Pi 3. Ο διακομιστής και κάθε ένα από τα μηδενικά pi πρέπει να είναι συνδεδεμένα στο ίδιο δίκτυο κατά τη διάρκεια του παιχνιδιού.

Βήμα 1: Υλικά

Υλικά
Υλικά
Υλικά
Υλικά

Η περιγραφή και ορισμένοι σύνδεσμοι για τα απαραίτητα υλικά παρουσιάζονται παρακάτω. Η παρακάτω λίστα υλικών είναι για 3 όπλα.

  • Υπολογιστής διακομιστή (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Τουλάχιστον 4 GB SD Card (3) Amazon
  • IR πομπός LED (3)
  • Δέκτης IR (6) Amazon
  • Κόκκινο LED (3)
  • Μπλε LED (3)
  • Πράσινο LED (3)
  • Παθητικός βομβητής (3) Amazon
  • Κουμπί πίεσης (6)
  • Οθόνη LCD 16x2 με προσαρμογέα I2C (3) Amazon
  • Φορητή μπαταρία (3) Amazon
  • Micro to Regular USB Cable (3) Amazon
  • PN2222 Τρανζίστορ (3)
  • Αντίσταση 100Ω (3)
  • Αντίσταση 1kΩ (9)

Προαιρετικά στοιχεία:

  • Γιλέκο (3) Amazon
  • Επέκταση καλωδίου κορδέλας (3) Amazon

Σε αυτό το έργο, καταλήξαμε να πάρουμε τον πομπό IR LED από ένα παλιό σετ όπλων με λέιζερ που είχαν έναν μαύρο κώνο γύρω από τον πομπό για να περιορίσει τη βολή κάθε πυροβόλου. Ωστόσο, κάθε γενικός πομπός πρέπει να λειτουργεί.

Εκτός από τα στοιχεία που αναφέρονται παραπάνω, τα ίδια τα όπλα λέιζερ εκτυπώθηκαν 3D. Αυτό το έργο συνεπώς θα απαιτούσε επίσης πρόσβαση σε τρισδιάστατο εκτυπωτή και νήμα. Συνολικά, για τρία όπλα το σύνολο έφτασε περίπου τα 350 δολάρια.

Βήμα 2: Διαμόρφωση διακομιστή

Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή

Το πρώτο πράγμα που απαιτείται για τη ρύθμιση του διακομιστή είναι η εγκατάσταση της Mosquitto MQTT Broker Service. Το Mosquitto είναι η υπηρεσία που παρέχει ένα πλαίσιο επικοινωνίας μεταξύ των συσκευών του παιχνιδιού. Αυτό επιτρέπει στον διακομιστή να στέλνει μηνύματα σε καθένα από τα Pis που είναι συνδεδεμένα στην υπηρεσία. Στο τερματικό, εκτελέστε τις ακόλουθες εντολές.

sudo apt-get ενημέρωση

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
  • dijmin.png
  • laser.jpg

Σημείωση: Οι συνημμένες εικόνες που χρησιμοποιούνται σε αυτό το έργο δεν δημιουργήθηκαν από την ομάδα ανάπτυξης και ως εκ τούτου δεν διεκδικούν τη συγγραφή.

Βήμα 3: Ρύθμιση Raspberry Pi

Ρύθμιση Raspberry Pi
Ρύθμιση Raspberry Pi

Αυτό το βήμα θα πρέπει να επαναληφθεί σε κάθε ένα από τα Raspberry Pis.

1. Εγκατάσταση λειτουργικού συστήματος

Αρχικά, ξεκινήστε με μια νέα εγκατάσταση του Raspbian. Θα συνιστούσαμε να χρησιμοποιήσετε την έκδοση Lite, καθώς το Pi είναι λιγότερο εύκολο να χειριστεί, αλλά οποιαδήποτε έκδοση θα πρέπει να λειτουργεί καλά. Μπορείτε να βρείτε τη λήψη στη διεύθυνση

2. Εγκαταστήστε το MQTT

Στη συνέχεια, πρέπει να εγκαταστήσουμε την υπηρεσία μεσίτη MQTT. Θα χρησιμοποιήσουμε το Mosquitto για αυτό. Στο τερματικό, εκτελέστε τις ακόλουθες εντολές.

sudo apt-get ενημέρωση

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

Το Mosquitto είναι η υπηρεσία που παρέχει ένα πλαίσιο επικοινωνίας μεταξύ των συσκευών του παιχνιδιού. Αυτό επιτρέπει στον διακομιστή να στέλνει μηνύματα σε καθένα από τα Pis που είναι συνδεδεμένα στην υπηρεσία.

3. Εγκαταστήστε τα Εργαλεία I2C

Η ακόλουθη εντολή θα εγκαταστήσει βιβλιοθήκες που χρησιμοποιούνται για την οθόνη 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" και "modules" αφού έχουν ολοκληρωθεί με επιτυχία η λήψη τους.

Αυτό το βήμα εγκαθιστά και διαμορφώνει τις εξαρτήσεις για το πακέτο Linux Infrared Remote Control (LIRC). Για περισσότερες πληροφορίες, δείτε το σεμινάριο για τη ρύθμιση του LIRC στη διεύθυνση:

Πρώτα εγκαταστήστε τη βιβλιοθήκη και, στη συνέχεια, αντιγράψτε τα συμπεριλαμβανόμενα αρχεία στους αντίστοιχους καταλόγους τους, όπως φαίνεται στις παρακάτω εντολές. Τέλος, επανεκκινήστε την υπηρεσία lircd.

sudo apt-get install python3-lirc -y

Από τον πρόσφατα δημιουργημένο κατάλογο εκτελέστε τις ακόλουθες εντολές για να μετακινήσετε τα αρχεία διαμόρφωσης στις σωστές θέσεις τους.

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

sudo mv modules /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. Επεξεργασία προγράμματος αναπαραγωγής CLIENT και LTSERVER

Ο κατάλογος παιχνιδιών θα πρέπει τώρα να περιλαμβάνει τα τέσσερα υπόλοιπα αρχεία.

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

Το τελευταίο βήμα για τη διαμόρφωση του pi είναι να εκχωρήσετε σε κάθε pi έναν αριθμό CLIENT και να προσθέσετε τη θέση του διακομιστή. Αυτό γίνεται με την επεξεργασία του συμπεριλαμβανόμενου αρχείου "player.py" για κάθε pi έτσι ώστε να έχουν όλοι διαφορετικό αριθμό ΠΕΛΑΤΗ. Ο αριθμός ΠΕΛΑΤΗ εκχωρείται στη γραμμή 3 του player.py. Αναθέστε το πρώτο pi να είναι πελάτης "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 μόλις ξεκινήσει το pi. Δυσκολευτήκαμε να λειτουργήσει αυτό και καταλήξαμε να προσθέσουμε μια γραμμή στο αρχείο "/etc/rc.local" σε κάθε ένα από τα Pis για να τρέξουμε το αρχείο "player.py". Αυτό επιτρέπει την έναρξη του παιχνιδιού χωρίς να χρειάζεται να κάνετε SSH στο Pi για να εκτελέσετε το σενάριο του προγράμματος αναπαραγωγής.

Μόλις ξεκινήσει το παιχνίδι με τους παίκτες έτοιμους, θα εμφανιστεί ένα GUI που επιτρέπει τη διαμόρφωση μερικών από τις ρυθμίσεις του παιχνιδιού. Το παιχνίδι ξεκινά αφού πατήσετε το κουμπί Έναρξη.

Μετά από κάθε παιχνίδι, θα εμφανιστεί ένα GUI που τελειώνει με στατιστικά στοιχεία για το προηγούμενο παιχνίδι, συμπεριλαμβανομένων των ετικετών, των παγκόσμιων ποσοστών και της διάρκειας του παιχνιδιού.

Σημείωση: Λόγω περιορισμών στις βιβλιοθήκες λογισμικού, οι θέσεις των ετικετών αναφοράς ακρίβειας δεν είναι αντιπροσωπευτικές των πραγματικών ετικετών λέιζερ. Στην τρέχουσα έκδοση, η εικόνα Αναφοράς Ακρίβειας Παίκτη είναι καθαρά για αισθητική με την ελπίδα μιας μελλοντικής έκδοσης με πραγματική εφαρμογή τοποθεσίας ετικέτας.

Βήμα 6: Μελλοντικές βελτιώσεις

Μελλοντικές βελτιώσεις
Μελλοντικές βελτιώσεις
Μελλοντικές βελτιώσεις
Μελλοντικές βελτιώσεις

Συνολικά, το έργο σημείωσε μεγάλη επιτυχία. Στην πορεία, σκεφτήκαμε μερικές πρόσθετες δυνατότητες που ενδέχεται να προστεθούν σε μια μελλοντική έκδοση.

  • Ισχυρότερος σχεδιασμός σκανδάλης για όπλα 3D εκτύπωσης
  • Τερματισμός του αναπτυσσόμενου μενού GUI για εμφάνιση στατιστικών από προηγούμενα παιχνίδια
  • Περισσότεροι δέκτες υπερύθρων που θα μπορούσαν να προσαρτηθούν στα γιλέκα των παικτών
  • Πρόσθετες λειτουργίες παιχνιδιού που μπορούν να επιλεγούν στο GUI Pregame
  • Πιο ακριβής αλγόριθμος τοποθεσίας ετικετών στη σελίδα στατιστικών στοιχείων παικτών

Συνιστάται: