جدول المحتويات:

NHL Bedside Hockey Light و LCD: 4 خطوات (مع صور)
NHL Bedside Hockey Light و LCD: 4 خطوات (مع صور)

فيديو: NHL Bedside Hockey Light و LCD: 4 خطوات (مع صور)

فيديو: NHL Bedside Hockey Light و LCD: 4 خطوات (مع صور)
فيديو: Bauer Proto R vs Nexus Sync vs Vapor Hyperlite 2 hockey sticks review - Which stick is better? 2024, شهر نوفمبر
Anonim
Image
Image
NHL Bedside Hockey Light و LCD
NHL Bedside Hockey Light و 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 (4 جيجابايت كحد أدنى) *
  3. مكبر الصوت - Amazon - ~ 2 دولار *
  4. amp - PAM8403 * - Amazon - حوالي 1 دولار لكل منهما
  5. ضوء - أمازون - ~ 5 دولارات
  6. حقيبة - 1 دولار *

    1. مايكل
    2. أوصي بصندوق خشبي صغير من متجر الحرف مايكل ، لكنه سيترك لك!
  7. I2C 2004 LCD - 3-7 دولارات

    1. أمازون
    2. يدعم الكود 3 أنواع من شاشات الكريستال السائل ، لكن I2C 2004 هو النوع الذي استقرت عليه كأفضل قيمة وحجم. (SSD1306 ممكن أيضًا)
  8. 2 ترانزستور - 2N2222A- أمازون
  9. أسلاك متنوعة / جندى 12 فولت
  10. مزود الطاقة - أمازون
  11. 12V -> 5V محول باك - أمازون

* هناك مرونة عندما يتعلق الأمر باختيار هذا الجزء.

ملاحظة: يمكنك البدء في معظم هذا المشروع باستخدام raspberry Pi فقط ، بينما تنتظر شحن العناصر الأخرى.

الخطوة 2: الخطوة 2: الأسلاك والإلكترونيات

الخطوة الثانية: الأسلاك والإلكترونيات
الخطوة الثانية: الأسلاك والإلكترونيات
الخطوة الثانية: الأسلاك والإلكترونيات
الخطوة الثانية: الأسلاك والإلكترونيات
  1. تجميع الضوء

    1. يجب أن يتم تشغيل الأسلاك الخاصة بالضوء بمقدار 12 + إلى الضوء.
    2. قم بتشغيل سلبي من الضوء من خلال أحد الترانزستورات.
    3. يذهب مقياس الترانزستور إلى الأرض.
    4. يذهب جامع الترانزستور إلى Raspberry Pi.
  2. تجميع الصوت

    1. تشغيل الصوت الأيمن أو الأيسر من PI إلى أمبير
    2. تشغيل + 5V إلى أمبير
    3. قم بتشغيل أمبير الأرض إلى الترانزستور الثاني.
    4. قم بتشغيل جهاز emmetter الخاص بالمحول الثاني على الأرض
    5. قم بتشغيل جامع الترانزستور إلى Raspberry Pi
  3. قم بتجميع الأسلاك في PI
  4. هذه هي إرشادات pinout لـ PI (بعض هذه يمكن تكوينها عبر JSON)

    1. شاشة LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Light 10 (GPIO15)
    4. الصوت الأيمن - 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: إعداد wifi # TODO: مرور الإعداد والمفاتيح المصرح بها # ملاحظات: https://raw.githubusercontent.com/wga22/nodejs/ma …

تحديث البرنامج على مستوى نظام التشغيل:

# 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-basic 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: إصلاح / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # note: يتم الإعداد الآخر عبر ملفات التكوين ويتم سحب shell لأسفل كجزء من التحديث

تحديث مكتبات العقدة والعقدة

#update nodecd / tmp export 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 لـ node binary؟ apt-get remove -y --purge npm nodejs

#Node setupmkdir / opt / nhl mkdir / opt / nhl / logs mkdir / opt / nhl / horns mkdir / opt / nhl / node_modules /

#update العقدة

# تثبيت تبعيات العقدة في تصدير دليل nhl NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - إصلاح ذلك العرجاء لن يتم تثبيته عالميًا

cd / opt / nhl npm install lame # lame ، عرجاء ، لن يتم تثبيت cp -R / opt / nhl / node_modules / lame $ 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 install lcd #Wont install عالميًا cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm قم بتثبيت lcdi2c # لن يتم تثبيت cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

npm install oled-font-5x7 # لن يتم التثبيت عالميًا

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

npm install onoff #wont install عالميًا

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

#npm install pm2 # لن يتم التثبيت عالميًا

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express #wont install عالميًا #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# أي وحدات عالمية

npm install express body-parser child_process 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… #call الآلي النصي لتثبيت كل شيء آخر لـ NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / أماه… | sudo -E bash -

تحميل القرون!

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

تحديث ملفات تكوين Raspberry pi - - قد تحتاج إلى تغيير لنظامك

# تحديثات ملفconfig # 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 # قم بتشغيل 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

عدد مجموعة مختلط الخلاط = 1

#TODO: ضبط الحجم ، 60٪؟

أتمتة الأتمتة ، مثل تحديثات التمهيد والتعليمات البرمجية:

# update rc.local # NOTE: نقل الملف ، لأن الملف القياسي يتضمن "خروج" في السطر الأخير ، لذلك لا يمكن ببساطة إلحاق 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.local printf '\ 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

# تحديث متغير البيئة مع 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: اختبار الإعداد 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 (خطأ) ، وستتحكم في مقدار التسجيل المكتوب.
  • الإخراج: هذه هي الطريقة التي يتم من خلالها إظهار النتائج / التفاصيل. القيم الممكنة هي:

    • شاشات الكريستال السائل: هذا هو 2004 شاشات الكريستال السائل
    • وحدة التحكم: هذا سيكتب فقط إلى المحطة (لتشغيل سطر الأوامر)
    • oled: دعم عرض SSD6404 oled
  • الضوء: يوجد نوعان من الأضواء مدعومة

    • إنذار: سيؤدي هذا إلى تشغيل GPIO واحد لتشغيل / إيقاف تشغيل الترانزستور
    • متعدد الصمام: يدعم متعدد الألوان ، أو المصابيح المتعددة
    • لا شيء: لا يوجد ضوء متصل
  • أمبير: هذا هو GPIO الذي يقود الترانزستور للأمبير

موصى به: