Mundarija:

NHL to'shakda xokkey nuri va LCD: 4 qadam (rasmlar bilan)
NHL to'shakda xokkey nuri va LCD: 4 qadam (rasmlar bilan)

Video: NHL to'shakda xokkey nuri va LCD: 4 qadam (rasmlar bilan)

Video: NHL to'shakda xokkey nuri va LCD: 4 qadam (rasmlar bilan)
Video: Best Of Shouki Khan New Pakistani Stage Drama Full Comedy Clip 2024, Noyabr
Anonim
Image
Image
NHL to'shakda xokkey nuri va LCD
NHL to'shakda xokkey nuri va LCD

Kirish

"NHL Light" - bu o'z jamoasini kuzatmoqchi bo'lgan, lekin har bir o'yinni ko'ra olmaydigan xokkey muxlislari uchun. Uning eng yaxshi xususiyati shundaki, u xokkey shoxi (sizning jamoangiz uchun odatiy) va yengil gol urishni taqlid qiladi.

Xokkey shoxi va nuridan tashqari, "NHL Light" displeyi mavjud yoki oxirgi o'yinning hisobini, keyingi o'yinning o'yin vaqti yoki vaqtini, joriy sana va vaqtni ko'rsatadigan displeyga ega.

"NHL Light" oddiy qismlar ro'yxatida ishlaydi, bu elektronikani yig'ish oson va kod bepul mavjud.

Xususiyatlari

  1. Sizning jamoangizni va wifi -ni tanlash uchun veb -sahifalarga asoslangan konfiguratsiya
  2. Jamoangiz gol urganida engil va shoxli o'ynaydi (siz mehmon jamoa bo'lganingizda ham)
  3. O'yin boshlanishini e'lon qilish uchun ovoz eshitiladi
  4. O'yin yakunini e'lon qilish uchun ovoz chiqaradi
  5. Agar o'yin davom etmasa, keyingi o'yin vaqti va sanasini ko'rsatadi.
  6. Agar o'yin davom etayotgan bo'lsa, joriy o'yin vaqti va vaqtini ko'rsatadi.
  7. Joriy sana va vaqtni ko'rsatadi.

1 -qadam: 1 -qadam: ehtiyot qismlaringizni yig'ing

1 -qadam: ehtiyot qismlaringizni yig'ing
1 -qadam: ehtiyot qismlaringizni yig'ing

Bu erda qismlar ro'yxati.

  1. Raspberry Pi W*

    1. Amazon
    2. Men o'zimni Microcenter -dan olishni ma'qul ko'raman, lekin uni boshqa joylarda kamroq topish mumkin.
    3. $10
  2. SD -karta (minimal 4 Gb)*
  3. dinamik - Amazon - ~ $ 2 *
  4. amp - PAM8403* - Amazon - har biri ~ 1 dollar
  5. yorug'lik - Amazon - ~ 5 dollar
  6. Koson - $ 1*

    1. Mayklniki
    2. Men Mayklning hunarmandchilik do'konida yog'ochdan yasalgan kichkina sumkani tavsiya qilaman, lekin sizga qoldiradi!
  7. I2C 2004 LCD - 3-7 dollar

    1. Amazon
    2. Kod 3 turdagi LCD displeylarni qo'llab -quvvatlaydi, lekin I2C 2004 men uchun eng yaxshi qiymat va o'lchamga ega. (SSD1306 ham mumkin)
  8. 2 ta tranzistor - 2N2222A - Amazon
  9. Har xil simlar / lehim 12V
  10. quvvat manbai - Amazon
  11. 12V -> 5V kuchlanishli konvertor - Amazon

*Bu qismni tanlashda moslashuvchanlik bor.

ESLATMA: Siz ushbu loyihaning ko'p qismini malina Pi bilan boshlashingiz mumkin, shu bilan birga boshqa narsalar jo'natilishini kutasiz.

2 -qadam: 2 -qadam: Bolalar va elektronika

2 -qadam: simlar va elektronika
2 -qadam: simlar va elektronika
2 -qadam: simlar va elektronika
2 -qadam: simlar va elektronika
  1. Nurni yig'ish

    1. Chiroqning simlari nurga 12 + dan oshadi.
    2. Yorug'likdan tranzistorlardan biri orqali salbiy harakat qiling.
    3. Transistorning emmetrasi erga tushadi.
    4. Tranzistorni yig'uvchi Raspberry Pi ga boradi.
  2. Ovoz yig'ish

    1. O'ng yoki chap tovushni PIdan kuchaytirgichga o'tkazing
    2. Ampga +5V yoqing
    3. 2 -tranzistorga kuchaytirgichni ishga tushiring.
    4. 2 -tranzitorning emmetrini erga o'tkazing
    5. Raspberry Pi uchun tranzistor kollektorini ishga tushiring
  3. PIga simlarni yig'ing
  4. Bu PI uchun aniq ko'rsatmalar (ularning ba'zilari JSON orqali sozlanishi mumkin)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Yorug'lik 10 (GPIO15)
    4. To'g'ri ovoz - GPIO 18

3 -qadam: 3 -qadam: Operatsion tizim uchun dasturiy ta'minotni sozlash

  1. Raspberry Pi W ni tayyorlang

    1. Rasberry pi Raspbian (yoki boshqa Debian) ning so'nggi versiyasini ishlatishi kerak.
    2. Quyidagi ko'rsatmalarga amal qilish tavsiya etiladi:
    3. Wifi wpa_supplicant faylini qo'shganingizga ishonch hosil qiling.
    4. Ssh -ga kirishga ruxsat berish uchun ssh -faylini sdcard -ga qo'ying.
  2. Uchinchi tomon dasturlarini tayyorlang:

    1. Men bu jarayonni uchinchi tomonning barcha kerakli vositalarini tortib olish uchun avtomatlashtirdim, lekin ularni qo'lda ishlating va hech qanday qadam bajarilmasligiga ishonch hosil qiling.
    2. Quyidagi skriptni yuklab oling va ishga tushiring:

Mana, operatsion tizimni o'rnatish uchun o'rnatish skriptining bajaradigan ishlari. Ushbu satrlarni qo'lda ishlatish eng yaxshisidir, shuning uchun siz xatolarni kuzatishingiz mumkin.

Skript sarlavhasi:

#!/bin/sh -e #ga #curl -sL orqali qo'ng'iroq qilish mumkin https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: bu skriptni quyidagicha avtomatlashtirish: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: wifi sozlash # TODO: passwd va ruxsat berilgan kalitlarni sozlash # eslatmalar:

OS darajasida dasturiy ta'minotni yangilang:

#apt-get narsalar (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #General Dev apt-get install -y git build-muhim python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python -aging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

Tarmoqni sozlash. Maqsadning bir qismi tizimni kirish nuqtasi orqali konfiguratsiya qilish, o'z Wi -Fi tarmog'iga ulanish edi, lekin bu hali to'liq tekshirilmagan. Hozirgi vaqtda wifi -ni sozlash uchun wpa_supplicant usulidan foydalanish tavsiya etiladi.

#networking setupecho nhllight>/etc/hostname #TODO:/etc/hosts #TODO ni tuzatish: br0 mkdir/etc/hostapd/ #eslatma: boshqa sozlashlar konfiguratsiya fayllari orqali amalga oshiriladi va qobiq yangilanishning bir qismi sifatida o'chiriladi.

Tugun va tugun kutubxonalarini yangilang

#nodecd/tmp eksport 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: ikkilik tugun uchun simli havola qilinsinmi? apt -get remove -y --purge npm node nodejs

#Tugunni o'rnatishmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/shoxlar mkdir/opt/nhl/node_modules/

#tugunni yangilang

#tugun bog'liqliklarini nhl katalogiga eksport qilish NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - bu cho'loq butun dunyo bo'ylab o'rnatilmaydi

cd/opt/nhl npm lame # lame o'rnatish, cho'loq, butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/lame $ NODE_PATH npm karnayni o'rnatish # butun dunyo bo'ylab o'rnatilmasin c -R/opt/nhl/node_modules/karnay $ NODE_PATH npm i2c-bus-ni o'rnatish #butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm oled-i2c-busni o'rnatish #butun dunyo bo'ylab o'rnatilmaydi c--R/opt/nhl/node_modules/oled-i2c-avtobus $ NODE_PATH npm o'rnatish lcd #butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/lcd

npm install oled-font-5x7 #butun dunyo bo'ylab o'rnatilmaydi

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

npm install onoff #butun dunyo bo'ylab o'rnatilmaydi

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

#npm install pm2 #butun dunyo bo'ylab o'rnatilmaydi

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm express express #butun dunyo bo'ylab o'rnatilmaydi #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# har qanday global modul

npm express body -parser child_process pm2 -g ni o'rnating

Oxirgi kodni oling:

#pull git codecd/opt/nhl #JSON -bu bir martalik 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 uchun hamma narsani o'rnatish uchun avtomatik qo'ng'iroq qiling https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Shoxlarni yuklab oling!

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

Raspberry pi konfiguratsiya fayllarini yangilang - tizimingiz uchun o'zgartirish kerak bo'lishi mumkin

#config fayl yangilanishlari boot/config.txt #turn i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. txt

#TODO: bu kerakmi? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: ovoz balandligi 60%?

Avtomatlashtirishni avtomatlashtirish, masalan, yuklash va kodni yangilash:

# yangilash rc.local# QAYD: faylni ko'chirish, chunki standart qator oxirgi satrda "chiqish" ni o'z ichiga oladi, shuning uchun mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local qo'shib bo'lmaydi. 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 chiqish 0' >> /etc/rc.local

#TODO: har hafta dasturiy ta'minotni muntazam yangilab turish uchun biror narsa qo'shish kerak# Balki bu faylni rc.weekly jildiga to'g'ridan -to'g'ri ko'chirib olish kerakmi? 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

Vaqt mintaqasini sozlash kabi boshqa narsalar:

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

node_path bilan # muhitni o'zgartirish

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: buni self.ipaddress = process.env. NODEJS_IP tugunlari uchun belgilang.; #TODO: self.port = process.env. NODEJS_PORT || 80;

Tugun serverlarini sozlash uchun PM2 -dan foydalaning:

#TODO: PM2cd /tmp /npm testini o'rnatish -g pm2 pm2 ishga tushirish cd /opt /nhl pm2 start NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 start webserver.js-tugun -args = "-max_old_space_size 100M" pm2 saqlash pm2 ishga tushirish 0 dan chiqish

4 -qadam: 4 -qadam: JSON konfiguratsiyasini yangilang

JSON konfiguratsiya faylini o'zingiz yoqtirgan jamoa va boshqalar uchun o'rnating. Bu fayl /opt /nhl GO CAPITALS -da joylashgan! JSON faylini sozlash

Dastur siz kuzatayotgan uskuna va jamoani sozlash uchun JSON faylidan foydalanadi. Jamoani ishlaydigan veb -server orqali sozlash mumkin, lekin apparatni sozlash qo'lda o'rnatilishi kerak:

Mana, har bir mumkin bo'lgan qiymatning izohi:

  • myteam: bu siz kuzatmoqchi bo'lgan jamoaning 3 harfli kodi
  • disk raskadrovka: Mumkin bo'lgan qiymatlar 1 (to'g'ri) yoki 0 (noto'g'ri) bo'lib, qancha jurnal yozilganligini nazorat qiladi.
  • chiqish: bu ballar/tafsilotlar ko'rsatiladigan usul. Mumkin bo'lgan qiymatlar:

    • LCD: bu 2004 yilgi LCD
    • konsol: bu faqat terminalga yoziladi (buyruq satrini ishga tushirish uchun)
    • oled: SSD6404 oled displeyini qo'llab -quvvatlash
  • yorug'lik: ikki turdagi chiroqlar qo'llab -quvvatlanadi

    • signal: bu tranzistorni yoqish/o'chirish uchun bitta GPIOni boshqaradi
    • ko'p nurli: ko'p rangli yoki bir nechta LEDni qo'llab-quvvatlaydi
    • yo'q: yorug'lik ulanmagan
  • amp: bu kuchaytirgich uchun tranzistorni boshqaradigan GPIO

Tavsiya: