विषयसूची:

एनएचएल बेडसाइड हॉकी लाइट और एलसीडी: 4 कदम (चित्रों के साथ)
एनएचएल बेडसाइड हॉकी लाइट और एलसीडी: 4 कदम (चित्रों के साथ)

वीडियो: एनएचएल बेडसाइड हॉकी लाइट और एलसीडी: 4 कदम (चित्रों के साथ)

वीडियो: एनएचएल बेडसाइड हॉकी लाइट और एलसीडी: 4 कदम (चित्रों के साथ)
वीडियो: Is Mario A Dad Now? MUST TRY SUPER MARIO PARENTING HACKS! Funny Situations by Gotcha! 2024, नवंबर
Anonim
Image
Image
एनएचएल बेडसाइड हॉकी लाइट और एलसीडी
एनएचएल बेडसाइड हॉकी लाइट और एलसीडी

परिचय

"एनएचएल लाइट" उन हॉकी प्रशंसकों के लिए है जो अपनी टीम का अनुसरण करना चाहते हैं, लेकिन हर खेल नहीं देख सकते। इसकी सबसे अच्छी विशेषता यह है कि यह हॉकी हॉर्न (आपकी टीम के लिए कस्टम), और प्रकाश के साथ एक गोल स्कोर का अनुकरण करता है।

हॉकी हॉर्न और लाइट के अलावा, "एनएचएल लाइट" में एक डिस्प्ले है जो वर्तमान, या सबसे हालिया गेम का स्कोर, गेम का समय या अगले गेम का समय, और वर्तमान दिनांक और समय प्रदान करता है।

"एनएचएल लाइट" भागों की एक साधारण सूची पर चलता है, जो इलेक्ट्रॉनिक्स को इकट्ठा करना आसान है, और कोड जो स्वतंत्र रूप से उपलब्ध है।

विशेषताएं

  1. अपनी टीम और वाईफाई के चयन के लिए वेबपेज आधारित विन्यास
  2. जब आपकी टीम स्कोर करती है तो लाइट और हॉर्न बजाता है (तब भी जब आप दूर की टीम हों)
  3. खेल की शुरुआत की घोषणा करने के लिए ध्वनि बजाता है
  4. खेल के समापन की घोषणा करने के लिए ध्वनि बजाता है
  5. यदि कोई खेल प्रगति पर नहीं है, तो अगले गेम का समय और तारीख प्रदान करता है।
  6. खेल प्रगति पर है, तो वर्तमान खेल समय और अवधि प्रदर्शित करता है।
  7. वर्तमान दिनांक और समय प्रदर्शित करता है।

चरण 1: चरण 1: अपने भागों को इकट्ठा करें

चरण 1: अपने भागों को इकट्ठा करें
चरण 1: अपने भागों को इकट्ठा करें

यहाँ एक भागों की सूची है।

  1. रास्पबेरी पाई डब्ल्यू *

    1. वीरांगना
    2. मैं माइक्रोसेंटर से खदान प्राप्त करना पसंद करता हूं, लेकिन अन्य स्थानों पर कम कीमत पर ऑनलाइन पाया जा सकता है।
    3. $10
  2. एसडी कार्ड (न्यूनतम 4 जीबी)*
  3. स्पीकर - अमेज़न - ~$2 *
  4. amp - PAM8403* - अमेज़न - ~$1 प्रत्येक
  5. प्रकाश - अमेज़न - ~$5
  6. केस - $1*

    1. माइकल का
    2. मैं माइकल के शिल्प की दुकान से लकड़ी के छोटे शिल्प मामले की सलाह देता हूं, लेकिन आपको छोड़ दूंगा!
  7. I2C 2004 एलसीडी - $3-7

    1. वीरांगना
    2. कोड 3 प्रकार के LCD का समर्थन करता है, लेकिन I2C 2004 वह है जिसे मैंने सर्वोत्तम मूल्य और आकार के रूप में तय किया है। (SSD1306 भी संभव है)
  8. 2 ट्रांजिस्टर - 2N2222A- Amazon
  9. विविध तार / मिलाप12V
  10. बिजली की आपूर्ति - अमेज़न
  11. 12V -> 5V हिरन कनवर्टर - Amazon

*जब इस भाग को चुनने की बात आती है तो इसमें लचीलापन होता है।

नोट: आप इस परियोजना के अधिकांश भाग को केवल अपने रास्पबेरी पाई के साथ शुरू कर सकते हैं, जबकि आप अन्य वस्तुओं के शिप होने की प्रतीक्षा करते हैं।

चरण 2: चरण 2: वायरिंग और इलेक्ट्रॉनिक्स

चरण 2: वायरिंग और इलेक्ट्रॉनिक्स
चरण 2: वायरिंग और इलेक्ट्रॉनिक्स
चरण 2: वायरिंग और इलेक्ट्रॉनिक्स
चरण 2: वायरिंग और इलेक्ट्रॉनिक्स
  1. प्रकाश इकट्ठा करें

    1. प्रकाश के लिए तारों को प्रकाश में 12+ चलाना है।
    2. ट्रांजिस्टर में से किसी एक के माध्यम से प्रकाश से नकारात्मक चलाएं।
    3. ट्रांजिस्टर का एमिटर जमीन पर चला जाता है।
    4. ट्रांजिस्टर का संग्राहक रास्पबेरी पाई में जाता है।
  2. ध्वनि इकट्ठा करें

    1. PI से amp. तक दाएँ या बाएँ ध्वनि चलाएँ
    2. +5V से amp. तक चलाएँ
    3. दूसरे ट्रांजिस्टर के लिए amp ग्राउंड चलाएँ।
    4. दूसरे ट्रांजिस्टर के एमीटर को जमीन पर चलाएं
    5. ट्रांजिस्टर के संग्राहक को रास्पबेरी पाई पर चलाएँ
  3. पीआई को वायरिंग असेंबल करें
  4. यह पीआई के लिए पिनआउट निर्देश है (इनमें से कुछ JSON के माध्यम से कॉन्फ़िगर करने योग्य हैं)

    1. एलसीडी

      1. 3 - एसडीए
      2. 5 - एससीएल
      3. 5 - वीसीसी (+5)
    2. एएमपी 8 (जीपीआईओ 14)
    3. लाइट 10 (GPIO15)
    4. साउंड राइट - GPIO 18

चरण 3: चरण 3: ऑपरेटिंग सिस्टम सॉफ़्टवेयर सेटअप

  1. रास्पबेरी पाई W. तैयार करें

    1. रास्पबेरी पाई को रास्पियन (या अन्य डेबियन) का हाल का संस्करण चलाना चाहिए।
    2. इन निर्देशों का पालन करने के लिए अनुशंसित:
    3. वाईफाई wpa_supplicant फ़ाइल शामिल करना सुनिश्चित करें।
    4. ssh एक्सेस की अनुमति देने के लिए ssh फ़ाइल को sdcard पर रखें।
  2. तृतीय पक्ष सॉफ़्टवेयर तैयार करें:

    1. मैंने सभी आवश्यक तृतीय पक्ष टूल खींचने के लिए इस प्रक्रिया को स्वचालित कर दिया है, लेकिन इन्हें मैन्युअल रूप से चलाने के लिए स्वतंत्र महसूस करें, और यह सुनिश्चित करने के लिए समीक्षा करें कि कोई चरण विफल न हो।
    2. निम्न स्क्रिप्ट डाउनलोड करें और चलाएं:https://github.com/wga22/nodejs/blob/master/nhl/mi…

ऑपरेटिंग सिस्टम को स्थापित करने के लिए इंस्टॉलेशन स्क्रिप्ट क्या करती है, इसका एक ब्रेकडाउन यहां दिया गया है। इन पंक्तियों को मैन्युअल रूप से चलाना सबसे अच्छा है, ताकि आप त्रुटियों को देख सकें।

स्क्रिप्ट हैडर:

#!/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: सेटअप वाईफाई # TODO: सेटअप पासवार्ड और अधिकृत कुंजियाँ # नोट्स:

OS स्तर पर सॉफ़्टवेयर अपडेट करें:

#उपयुक्त-प्राप्त सामग्री(उपयुक्त-अपडेट प्राप्त करें && apt-get -y अपग्रेड) > /dev/null apt-get dist-upgrad -y #General Dev apt-get install -y git बिल्ड-आवश्यक पायथन-देव पायथन-पाइप अजगर-smbus libasound2-देव नोडज # GPIO उपयुक्त-स्थापित करें -y raspi-gpio अजगर-इमेजिंग

नेटवर्किंग सेटअप। यहां लक्ष्य का एक हिस्सा सिस्टम को एक्सेस प्वाइंट के माध्यम से कॉन्फ़िगर करने की अनुमति देना था, अपने स्वयं के वाईफाई से कनेक्ट करने के लिए, लेकिन यह अभी तक पूरी तरह से परीक्षण नहीं किया गया है। वर्तमान में वाईफाई की स्थापना के लिए wpa_supplicant विधि का उपयोग करने की सिफारिश की गई है।

#networking setupecho nhllight > /etc/hostname #TODO: /etc/hosts को ठीक करें #TODO: सेटअप br0 mkdir /etc/hostapd/ # नोट: अन्य सेटअप कॉन्फिग फाइलों के जरिए किया जाता है और शेल को अपडेट के एक हिस्से के रूप में नीचे खींचा जाता है

नोड और नोड लाइब्रेरी अपडेट करें

#अपडेट नोडेसीडी/टीएमपी एक्सपोर्ट नोडवर्जन=8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0/नोड-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: नोड बाइनरी के लिए सिम लिंक बनाएं? उपयुक्त-निकालें -y --purge npm नोड नोडज

#नोड सेटअपmkdir /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 लंगड़ा स्थापित करें # लंगड़ा, लंगड़ा है, विश्व स्तर पर cp -R /opt/nhl/node_modules/लंगड़ा $NODE_PATH npm स्थापित स्पीकर स्थापित नहीं करेगा #विश्व स्तर पर cp -R /opt/nhl/node_modules/speaker $NODE_PATH स्थापित नहीं करेगा npm i2c-bus स्थापित करें # विश्व स्तर पर cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH स्थापित करें npm oled-i2c-bus स्थापित करें #विश्व स्तर पर cp -R /opt/nhl/node_modules/oled-i2c-bus स्थापित न करें $NODE_PATH npm LCD स्थापित करें #विश्व स्तर पर cp -R /opt/nhl/node_modules/lcd $NODE_PATH स्थापित करें npm LCDi2c स्थापित करें #wont विश्व स्तर पर cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH स्थापित करें

npm old-font-5x7 इंस्टॉल करें #विश्व स्तर पर इंस्टॉल नहीं होगा

सीपी-आर/ऑप्ट/एनएचएल/नोड_मॉड्यूल/ओल्ड-फॉन्ट-5x7 $NODE_PATH

npm ऑनऑफ़ इंस्टॉल करें #विश्व स्तर पर इंस्टॉल नहीं होगा

सीपी-आर/ऑप्ट/एनएचएल/नोड_मॉड्यूल/ऑनऑफ़ $NODE_PATH

#npm pm2 इंस्टॉल करें #विश्व स्तर पर इंस्टॉल नहीं होगा

#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm इंस्टाल एक्सप्रेस #wont इंस्टाल विश्व स्तर पर #cp -R /opt/nhl/node_modules/express $NODE_PATH

# कोई भी वैश्विक मॉड्यूल

npm एक्सप्रेस बॉडी-पार्सर चाइल्ड_प्रोसेस pm2 -g. स्थापित करें

नवीनतम कोड खींचो:

#pull git codecd /opt/nhl #JSON वन टाइम क्रिएशन 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 कर्ल-एसएल के लिए अन्य सभी चीजों को स्थापित करने के लिए स्वचालित स्क्रिप्ट को कॉल करें https://raw.githubusercontent.com/wga22/nodejs /मा… | सुडो-ई बैश -

हॉर्न डाउनलोड करें!

#पुल हॉर्नएससीडी/ऑप्ट/एनएचएल/हॉर्न कर्ल-एसएल https://raw.githubusercontent.com/wga22/nodejs/ma… | सुडो-ई बैश -

रास्पबेरी पाई कॉन्फिग फाइलों को अपडेट करें - - आपके सिस्टम के लिए बदलने की आवश्यकता हो सकती है

#कॉन्फ़िगर फ़ाइल अपडेट#ध्वनि जोड़ें cp /boot/config.txt /boot/config.txt.bak printf '\ndtoverlay=pwm-2chan, pin=18, func=2, pin2=13, func2=4' >> / boot/config.txt #टर्न ऑन i2c प्रिंटफ '\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

एमिक्सर सीसेट numid=1

#TODO: वॉल्यूम सेट करें, 60%?

ऑटोमेशन को स्वचालित करें, जैसे कि बूटअप और कोड अपडेट:

# अद्यतन rc.local# नोट: फ़ाइल को स्थानांतरित करना, क्योंकि मानक एक में अंतिम पंक्ति में एक "निकास" शामिल है, इसलिए इसे केवल mv /etc/rc.local /etc/rc.local.bak स्पर्श /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: इस तरह साप्ताहिक नियमित सॉफ़्टवेयर अपडेट करने के लिए कुछ जोड़ने की आवश्यकता है# शायद इस फ़ाइल को सीधे 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

# नोड_पथ के साथ पर्यावरण चर अपडेट करें

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: परीक्षण सेटअप PM2cd /tmp/ npm install -g pm2 pm2 स्टार्टअप cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 एक्सपोज़-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": "WSH", "डीबग": "1", "आउटपुट": "एलसीडी", "लाइट": {"टाइप": "मल्टील्ड", "जीपीओ": ["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }

यहां प्रत्येक संभावित मूल्य का स्पष्टीकरण दिया गया है:

  • myteam: यह उस टीम का 3 अक्षर का कोड है जिसका आप अनुसरण करना चाहते हैं
  • डिबग: संभावित मान 1 (सत्य) या 0 (गलत) हैं, और यह नियंत्रित करेगा कि कितनी लॉगिंग लिखी गई है।
  • आउटपुट: यह वह तरीका है जिसके द्वारा स्कोर/विवरण दिखाए जाने हैं। संभावित मान हैं:

    • एलसीडी: यह 2004 का एलसीडी है
    • कंसोल: यह केवल टर्मिनल को लिखेगा (कमांड लाइन चलाने के लिए)
    • ओलेड: SSD6404 पुराने डिस्प्ले के लिए समर्थन
  • प्रकाश: दो प्रकार की रोशनी समर्थित हैं

    • अलार्म: यह ट्रांजिस्टर को चालू/बंद करने के लिए एक GPIO चलाएगा
    • बहु-एलईडी: एक बहुरंगा, या कई एलईडी का समर्थन करता है
    • कोई नहीं: कोई प्रकाश संलग्न नहीं है
  • amp: यह GPIO है जो amp. के लिए ट्रांजिस्टर चलाता है

सिफारिश की: