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

NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD: 4 βήματα (με εικόνες)
NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD: 4 βήματα (με εικόνες)

Βίντεο: NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD: 4 βήματα (με εικόνες)

Βίντεο: NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD: 4 βήματα (με εικόνες)
Βίντεο: Πλήρης κριτική του Ambassador Plaza Hotel 4* Kemer Türkiye 2024, Νοέμβριος
Anonim
Image
Image
NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD
NHL Φωτιστικό χόκεϊ δίπλα στο κρεβάτι και LCD

Εισαγωγή

Το "NHL Light" είναι για τους λάτρεις του χόκεϊ που θέλουν να ακολουθήσουν την ομάδα τους, αλλά δεν μπορούν να παρακολουθήσουν κάθε παιχνίδι. Το καλύτερο χαρακτηριστικό είναι ότι προσομοιώνει ένα σκορ γκολ με κέρατο χόκεϊ (προσαρμοσμένο στην ομάδα σας) και ελαφρύ.

Εκτός από το κέρατο και το φως του χόκεϊ, το "NHL Light", διαθέτει μια οθόνη που παρέχει την τρέχουσα ή την πιο πρόσφατη βαθμολογία του παιχνιδιού, την ώρα ή την ώρα του επόμενου παιχνιδιού και την τρέχουσα ημερομηνία και ώρα.

Το "NHL Light" λειτουργεί σε μια απλή λίστα εξαρτημάτων, που είναι εύκολο να συναρμολογηθούν ηλεκτρονικά και κωδικός που διατίθεται ελεύθερα.

Χαρακτηριστικά

  1. Διαμόρφωση βάσει ιστοσελίδας για την επιλογή της ομάδας και του wifi σας
  2. Παίζει χαλαρά όταν η ομάδα σας σκοράρει (ακόμα και όταν είστε εκτός ομάδας)
  3. Παίζει ήχο για να ανακοινώσει την έναρξη του παιχνιδιού
  4. Παίζει έναν ήχο για να ανακοινώσει το τέλος του παιχνιδιού
  5. Παρέχει την ώρα και την ημερομηνία του επόμενου παιχνιδιού, εάν δεν υπάρχει παιχνίδι σε εξέλιξη.
  6. Εμφανίζει την τρέχουσα ώρα και περίοδο παιχνιδιού, εάν το παιχνίδι βρίσκεται σε εξέλιξη.
  7. Εμφανίζει την τρέχουσα ημερομηνία και ώρα.

Βήμα 1: Βήμα 1: Συγκεντρώστε τα ανταλλακτικά σας

Βήμα 1: Συγκεντρώστε τα ανταλλακτικά σας
Βήμα 1: Συγκεντρώστε τα ανταλλακτικά σας

Εδώ είναι μια λίστα ανταλλακτικών.

  1. Raspberry Pi W*

    1. Αμαζόνα
    2. Προτιμώ να παίρνω το δικό μου από το Microcenter, αλλά μπορεί να βρεθεί στο διαδίκτυο για λιγότερα σε άλλα μέρη.
    3. $10
  2. Κάρτα SD (ελάχιστο 4gb)*
  3. ηχείο - Amazon - ~ 2 $ *
  4. amp - PAM8403* - Amazon - ~ 1 $ το καθένα
  5. φως - Amazon - ~ 5 $
  6. Θήκη - $ 1*

    1. Του Μιχαήλ
    2. Σας προτείνω μια μικρή ξύλινη θήκη χειροτεχνίας από το κατάστημα χειροτεχνίας του Michael, αλλά θα σας αφήσει!
  7. LCD I2C 2004 - 3-7 $

    1. Αμαζόνα
    2. Ο κωδικός υποστηρίζει 3 τύπους LCD, αλλά το I2C 2004 είναι αυτό που έχω καταλήξει ως καλύτερη τιμή και μέγεθος. (Ο SSD1306 είναι επίσης δυνατός)
  8. 2 τρανζίστορ - 2N2222A- Amazon
  9. Διάφορα καλώδια / συγκόλληση 12V
  10. τροφοδοτικό - Amazon
  11. Μετατροπέας 12V -> 5V buck - Amazon

*Υπάρχει ευελιξία όσον αφορά την επιλογή αυτού του τμήματος.

ΣΗΜΕΙΩΣΗ: Μπορείτε να ξεκινήσετε το μεγαλύτερο μέρος αυτού του έργου μόνο με το βατόμουρο Pi σας, ενώ περιμένετε να αποσταλούν άλλα αντικείμενα.

Βήμα 2: Βήμα 2: Καλωδίωση και Ηλεκτρονικά

Βήμα 2: Καλωδίωση και ηλεκτρονικά
Βήμα 2: Καλωδίωση και ηλεκτρονικά
Βήμα 2: Καλωδίωση και ηλεκτρονικά
Βήμα 2: Καλωδίωση και ηλεκτρονικά
  1. Συγκεντρώστε το Φως

    1. Η καλωδίωση του φωτός είναι να τρέχει 12 + στο φως.
    2. Τρέξτε αρνητικά από το φως μέσω ενός από τα τρανζίστορ.
    3. Το διάμετρο του τρανζίστορ πέφτει στη γείωση.
    4. Ο συλλέκτης του τρανζίστορ πηγαίνει στο Raspberry Pi.
  2. Συναρμολόγηση ήχου

    1. Εκτέλεση δεξιού ή αριστερού ήχου από το PI στον ενισχυτή
    2. Εκτελέστε +5V στον ενισχυτή
    3. Εκτελέστε γείωση ενισχυτή στο 2ο τρανζίστορ.
    4. Εκτελέστε το μπράτσο του 2ου πομποδέκτη στη γείωση
    5. Εκτελέστε συλλέκτη του τρανζίστορ στο Raspberry Pi
  3. Συναρμολογήστε την καλωδίωση στο PI
  4. Αυτές είναι οι οδηγίες pinout για το PI (ορισμένες από αυτές διαμορφώνονται μέσω του JSON)

    1. οθόνη υγρού κρυστάλλου

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Φως 10 (GPIO15)
    4. Sχος δεξιά - GPIO 18

Βήμα 3: Βήμα 3: Εγκατάσταση λογισμικού λειτουργικού συστήματος

  1. Προετοιμάστε το Raspberry Pi W

    1. Το rasberry pi πρέπει να τρέχει μια πρόσφατη έκδοση του Raspbian (ή άλλου Debian).
    2. Συνιστάται να ακολουθείτε αυτές τις οδηγίες:
    3. Φροντίστε να συμπεριλάβετε wifi wpa_supplicant αρχείο.
    4. Τοποθετήστε το αρχείο ssh στην κάρτα sdcard για να επιτρέψετε την πρόσβαση ssh.
  2. Προετοιμάστε το λογισμικό τρίτου μέρους:

    1. Έχω αυτοματοποιήσει αυτήν τη διαδικασία για να τραβήξω όλα τα απαραίτητα εργαλεία τρίτου μέρους, αλλά μη διστάσετε να τα εκτελέσετε με μη αυτόματο τρόπο και να ελέγξετε για να βεβαιωθείτε ότι κανένα βήμα δεν αποτυγχάνει.
    2. Κατεβάστε και εκτελέστε το ακόλουθο σενάριο:

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

Κεφαλίδα σεναρίου:

#!/bin/sh -e #μπορεί να κληθεί μέσω #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: αυτοματοποιήστε αυτό το σενάριο με κάτι σαν: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd και εξουσιοδοτημένα κλειδιά # σημειώσεις:

Ενημέρωση λογισμικού σε επίπεδο λειτουργικού συστήματος:

#apt-get stuff (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #General Dev apt-get install -y git build-απαραίτητο python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-imaging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

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

#networking setupecho nhllight>/etc/hostname #TODO: διορθώστε το

Ενημέρωση βιβλιοθηκών κόμβων και κόμβων

#update nodecd/tmp εξαγωγή nodeversion = 8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0/node-v7.4.0-linux-… wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… tar -xvf node-v $ {nodeversion} -linux-armv6l. tar.xz cd node-v $ {nodeversion} -linux-armv6l rm -f *.md rm -f LICENSE cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: δημιουργία συνδέσμου sym για δυαδικό κόμβο; apt -get remove -y --purge npm nodejs nodejs

#Κόμβος setupmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/horns mkdir/opt/nhl/node_modules/

#ενημερωμένος κόμβος

#εγκατάσταση εξαρτήσεων κόμβων στον κατάλογο nhl εξαγωγή NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - διορθώστε ότι το κουτσό δεν θα εγκατασταθεί παγκοσμίως

cd/opt/nhl npm install lame # lame, is lame, wont install globally cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm install speaker #wont install globally cp -R/opt/nhl/node_modules/ηχείο $ NODE_PATH npm install i2c-bus #wont install globally cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm install oled-i2c-bus #wont install globally cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm install lcd #wont install globally cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm install lcdi2c #wont install globally cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH

npm install oled-font-5x7 #wont install global

cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH

npm install onoff #wont install global

cp -R/opt/nhl/node_modules/onoff $ NODE_PATH

#npm install pm2 #wont install global

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #wont install global #wp -R/opt/nhl/node_modules/express $ NODE_PATH

# οποιαδήποτε καθολική ενότητα

npm εγκατάσταση express body -parser child_process pm2 -g

Τραβήξτε τον τελευταίο κωδικό:

#pull git codecd/opt/nhl #JSON is one time δημιουργία wget -no -cache -O /opt/nhl/nhl_config.json https://raw.githubusercontent.com/wga22/nodejs/ma… #wget -O /opt/nhl/NHL_work.js https://raw.githubusercontent.com/wga22/nodejs/ma… #καλέστε αυτοματοποιημένο σενάριο για να εγκαταστήσετε όλα τα υπόλοιπα για NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Κατεβάστε τα κέρατα!

#pull hornscd/opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -

ενημερώστε τα αρχεία διαμόρφωσης Raspberry pi - - ίσως χρειαστεί να αλλάξετε για το σύστημά σας

#config file updates#add sound cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #turn on i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config κείμενο

#TODO: χρειάζεται αυτό; cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: ρύθμιση έντασης, 60%;

Αυτοματοποιήστε την αυτοματοποίηση, όπως εκκίνηση και ενημερώσεις κώδικα:

# ενημέρωση rc.local# ΣΗΜΕΙΩΣΗ: μετακίνηση του αρχείου, επειδή το τυπικό περιλαμβάνει μια "έξοδο" στην τελευταία γραμμή, οπότε δεν μπορεί απλώς να προσαρτηθεί το mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local chmod u+x /etc/rc.local printf '#!/bin/sh'> /etc/rc.local printf '\ n /etc/bootup_nhl.sh> /tmp/rclocal.log' >>/etc/rc.τοπική εκτύπωση '\ n έξοδος 0' >> /etc/rc.local

#TODO: πρέπει να προσθέσετε κάτι για να κάνετε τις κανονικές ενημερώσεις λογισμικού εβδομαδιαίως όπως αυτή# justσως απλά να αντιγράψετε αυτό το αρχείο απευθείας στον φάκελο rc.weekly; rm /etc/cron.weekly/nhl_updater printf '#!/bin/sh / ncurl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -'> /etc/cron.weekly/nhl_updater chmod u+x /etc/cron.weekly/nhl_updater

Διάφορα πράγματα, όπως ρύθμιση ζώνης ώρας:

ln -sf/usr/share/zoneinfo/America/New_York/etc/localtime

# ενημέρωση μεταβλητής περιβάλλοντος με node_path

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: ορίστε αυτό για τον κόμβο self.ipaddress = process.env. NODEJS_IP ? #TODO: self.port = process.env. NODEJS_PORT || 80;

Χρησιμοποιήστε το PM2 για ρύθμιση διακομιστή κόμβου:

#TODO: test setup PM2cd /tmp /npm install -g pm2 pm2 startup cd /opt /nhl pm2 start NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "-max_old_space_size 100M" pm2 αποθήκευση pm2 έξοδο εκκίνησης 0

Βήμα 4: Βήμα 4: Ενημερώστε τη διαμόρφωση JSON

Ρυθμίστε το αρχείο διαμόρφωσης JSON για την ομάδα που προτιμάτε κλπ. Αυτό το αρχείο βρίσκεται στο /opt /nhl GO CAPITALS! διαμόρφωση αρχείου JSON

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

Ακολουθεί μια εξήγηση για κάθε πιθανή τιμή:

  • myteam: αυτός είναι ο κωδικός 3 γραμμάτων της ομάδας που θέλετε να ακολουθήσετε
  • εντοπισμός σφαλμάτων: Οι πιθανές τιμές είναι 1 (αληθής) ή 0 (ψευδής) και θα ελέγχουν πόση εγγραφή καταγράφεται.
  • έξοδος: αυτή είναι η μέθοδος με την οποία εμφανίζονται οι βαθμολογίες/λεπτομέρειες. Οι πιθανές τιμές είναι:

    • LCD: αυτή είναι η LCD LCD του 2004
    • κονσόλα: θα γραφτεί μόνο στο τερματικό (για εκτέλεση της γραμμής εντολών)
    • oled: υποστήριξη για λαδωμένη οθόνη SSD6404
  • φως: υποστηρίζονται δύο τύποι φώτων

    • συναγερμός: αυτό θα οδηγήσει ένα GPIO για την ενεργοποίηση/απενεργοποίηση ενός τρανζίστορ
    • multi-led: υποστηρίζει πολύχρωμα ή πολλαπλά led
    • κανένα: δεν έχει προσαρτηθεί φως
  • ενισχυτής: αυτό είναι το GPIO που οδηγεί το τρανζίστορ για τον ενισχυτή

Συνιστάται: