Mündəricat:

NHL Başucu Xokkey İşığı və LCD: 4 Addım (Şəkillərlə birlikdə)
NHL Başucu Xokkey İşığı və LCD: 4 Addım (Şəkillərlə birlikdə)

Video: NHL Başucu Xokkey İşığı və LCD: 4 Addım (Şəkillərlə birlikdə)

Video: NHL Başucu Xokkey İşığı və LCD: 4 Addım (Şəkillərlə birlikdə)
Video: Güverte siparişi komisyoncularının açılışı, yeni Capenna'nın sokaklarını süsledi 2024, Noyabr
Anonim
Image
Image
NHL Yatağında Xokkey İşığı və LCD
NHL Yatağında Xokkey İşığı və LCD

Giriş

"NHL Light" komandasını izləmək istəyən, lakin hər oyunu izləyə bilməyən xokkeysevərlər üçündür. Ən yaxşı xüsusiyyəti, bir xokkey buynuzu (komandanıza xas olan) və işıqla bir qol hesabını simulyasiya etməsidir.

Xokkey buynuzu və işığına əlavə olaraq "NHL Light", cari və ya ən son oyunun hesabını, növbəti oyunun oyun vaxtını və ya vaxtını və cari tarix və saatı təmin edən bir ekrana malikdir.

"NHL Light", elektronikanı yığmaq asan olan hissələrin sadə siyahısı və sərbəst şəkildə mövcud olan kod üzərində işləyir.

Xüsusiyyətləri

  1. Komandanı və wifi seçmək üçün veb səhifəyə əsaslanan konfiqurasiya
  2. Komandanız qol vuranda yüngül və buynuz oynayır (hətta qonaq komanda olsanız da)
  3. Oyunun başlandığını bildirmək üçün səslənir
  4. Oyunun sonunu elan etmək üçün bir səs çalır
  5. Növbəti oyunun vaxtı və tarixi, əgər oyun davam etmirsə.
  6. Oyun davam edirsə, cari oyun vaxtını və müddətini göstərir.
  7. Cari tarixi və saatı göstərir.

Addım 1: Adım 1: Parçalarınızı yığın

Addım 1: Parçalarınızı yığın
Addım 1: Parçalarınızı yığın

İşdə hissələrin siyahısı.

  1. Moruq Pi W*

    1. Amazon
    2. Microcenter -dən mina almağı üstün tuturam, amma digər yerlərdə daha ucuz qiymətə internetdə tapa bilərsiniz.
    3. $10
  2. SD Kart (minimum 4 gb)*
  3. dinamik - Amazon - ~ 2 dollar *
  4. amp - PAM8403* - Amazon - hər biri ~ 1 dollar
  5. işıq - Amazon - ~ 5 dollar
  6. Çanta - 1 dollar*

    1. Michaelın
    2. Michael'ın sənətkarlıq mağazasından kiçik taxta sənətkarlıq çantasını məsləhət görürəm, ancaq sizə buraxacaq!
  7. I2C 2004 LCD - 3-7 dollar

    1. Amazon
    2. Kod, 3 növ LCD -ni dəstəkləyir, lakin I2C 2004 ən yaxşı dəyər və ölçü olaraq qərar verdiyim biridir. (SSD1306 da mümkündür)
  8. 2 tranzistor - 2N2222A- Amazon
  9. Müxtəlif tellər / lehim 12V
  10. enerji təchizatı - Amazon
  11. 12V -> 5V dollar çevirici - Amazon

*Bu hissənin seçilməsinə gəldikdə rahatlıq var.

DİQQƏT: Digər layihələrin göndərilməsini gözləyərkən bu layihənin çox hissəsinə yalnız moruq Pi ilə başlaya bilərsiniz.

Addım 2: Adım 2: Kablolama və Elektronika

Addım 2: Kablolama və Elektronika
Addım 2: Kablolama və Elektronika
Addım 2: Kablolama və Elektronika
Addım 2: Kablolama və Elektronika
  1. İşıq yığın

    1. İşığın telləri işığa 12 + -dan keçməlidir.
    2. Transistorlardan birindən işıqdan mənfi keçin.
    3. Transistorun emmetri yerə düşür.
    4. Transistorun kollektoru Raspberry Pi -yə gedir.
  2. Səs yığmaq

    1. PI -dən amp -ə sağa və ya sola səs işlədin
    2. Amperə +5V işləyin
    3. 2 -ci tranzistora qədər gücləndirici zəmini işə salın.
    4. 2 -ci transizitorun emmetrini yerə aparın
    5. Tranzistor kollektorunu Raspberry Pi -yə aparın
  3. PI -yə naqilləri yığın
  4. Bu, PI üçün pinout təlimatlarıdır (bunlardan bəziləri JSON vasitəsilə konfiqurasiya edilə bilər)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. İşıq 10 (GPIO15)
    4. Sağ səs - GPIO 18

Adım 3: Adım 3: Əməliyyat Sistemi Proqramının Qurulması

  1. Raspberry Pi W hazırlayın

    1. Rasberry pi, Raspbian (və ya digər Debian) son versiyasını işlədən olmalıdır.
    2. Bu təlimatları izləmək tövsiyə olunur:
    3. Wifi wpa_supplicant faylını daxil etdiyinizə əmin olun.
    4. Ssh -ə daxil olmaq üçün ssh faylını sdcard -a qoyun.
  2. Üçüncü tərəf proqramını hazırlayın:

    1. Bütün lazım olan 3 -cü tərəf vasitələrini çəkmək üçün bu prosesi avtomatlaşdırdım, ancaq əl ilə işlədin və heç bir addımın uğursuz olduğundan əmin olmaq üçün nəzərdən keçirin.
    2. Aşağıdakı skripti yükləyin və işə salın:

Əməliyyat sistemini qurmaq üçün quraşdırma skriptinin nə etdiyini sizə təqdim edirik. Bu xətləri əl ilə idarə etmək ən yaxşısıdır, buna görə səhvləri izləyə bilərsiniz.

Skript Başlığı:

#!/bin/sh -e ##curl -sL vasitəsilə zəng etmək olar https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: bu skript kimi bir şeylə avtomatlaşdırın: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: wifi qurmaq # TODO: passwd və səlahiyyətli düymələri qurmaq # qeydlər:

Proqram təminatını OS səviyyəsində yeniləyin:

#apt-get şeylər (apt-get yeniləmə && apt-get -y yükseltme)> /dev /null apt-get dist-upgrade -y #Ümumi Dev apt-get yüklə -y git qur-əsas python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-views python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

Şəbəkə qurulması. Buradakı məqsədin bir hissəsi, sistemin bir giriş nöqtəsi ilə konfiqurasiya edilməsinə, öz wifi -yə qoşulmasına icazə vermək idi, lakin bu hələ tam olaraq yoxlanılmamışdır. Hal -hazırda wifi qurmaq üçün wpa_supplicant metodundan istifadə etmək tövsiyə olunur.

#networking setupecho nhllight>/etc/hostname #TODO:/etc/hosts -ı düzəlt #TODO: setup br0 mkdir/etc/hostapd/ #note: digər konfiqurasiya konfiqurasiya faylları və qabığın yeniləmənin bir hissəsi olaraq aşağı salınması ilə aparılır

Node və node kitabxanalarını yeniləyin

#nodecd/tmp ixrac 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: ikili qovşaq üçün sim bağlantısı yaradılsın? apt -get remove -y -npm node nodejs təmizləyin

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

#düyünü yeniləyin

#qovşaq asılılıqlarını nhl qovluğuna ixrac edin NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - topalın bütün dünyada quraşdırılmayacağını düzəldin

cd/opt/nhl npm lame # lame yükləyin, topaldır, qlobal olaraq qurulmayacaq c -R/opt/nhl/node_modules/lame $ NODE_PATH npm natiq quraşdırın # qlobal olaraq quraşdırmayın cp -R/opt/nhl/node_modules/spiker $ NODE_PATH npm i2c-bus qur #qlobal olaraq qurma cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm oled-i2c-bus qur #qlobal olaraq qurma cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm install lcd #qlobal olaraq qurulmayacaq cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm yüklə lcdi2c #qlobal olaraq quraşdırma cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH

npm install oled-font-5x7 #bütün dünyada quraşdırılmayacaq

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

npm install onoff #bütün dünyada quraşdırılmayacaq

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

#npm install pm2 #bütün dünyada quraşdırılmayacaq

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #qlobal olaraq qurulmayacaq #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# hər hansı bir qlobal modul

npm express body -parser child_process pm2 -g qurun

Ən son kodu çəkin:

#çek git codecd/opt/nhl #JSON birdəfəlik yaradılma 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 üçün hər şeyi quraşdırmaq üçün avtomatik zəng skriptini https://raw.githubusercontent.com/wga22/nodejs /ana… | sudo -E bash -

Buynuzları yükləyin!

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

Raspberry pi konfiqurasiya fayllarını yeniləyin - - sisteminiz üçün dəyişdirilməli ola bilər

#config fayl yeniləmələri#səs əlavə edin cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #turn in i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. mətn

#TODO: buna ehtiyac varmı? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset sayı = 1

#TODO: səs səviyyəsini təyin edin, 60%?

Yükləmə və kod yeniləmələri kimi avtomatlaşdırmanı avtomatlaşdırın:

# yeniləmə rc.local# DİQQƏT: faylın köçürülməsi, çünki standart bir son sətirdə "çıxış" olduğundan, sadəcə mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local əlavə edə bilməz 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'dan çıxın >> /etc/rc.local

# TODO: müntəzəm proqram yeniləmələrini hər həftə belə etmək üçün bir şey əlavə etməlisiniz# Bəlkə bu faylı birbaşa rc.weekly qovluğuna kopyalayın? 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

Saat qurşağı qurmaq kimi başqa şeylər:

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

node_path ilə # ətraf mühit dəyişənini yeniləyin

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 node üçün bunu təyin edin; #TODO: self.port = proses.env. NODEJS_PORT || 80;

Node server qurulması üçün PM2 -dən istifadə edin:

#TODO: test quraşdırma PM2cd /tmp /npm quraşdırma -g pm2 pm2 start cd /opt /nhl pm2 start NHL_work.js --node-args = "-max_old_space_size = 100 ifşa-gc" pm2 start webserver.js-düyün -args = "-max_old_space_size 100M" pm2 saxlamaq pm2 başlanğıcdan 0 çıxmaq

Adım 4: Adım 4: JSON Konfiqurasiyasını yeniləyin

İstədiyiniz komanda üçün JSON konfiqurasiya faylınızı qurun və s. Bu fayl /opt /nhl GO CAPITALS -da yerləşir! JSON faylını konfiqurasiya edin

Proqram, izlədiyiniz cihazı və komandanı konfiqurasiya etmək üçün JSON faylından istifadə edir. Komanda işləyəcək veb server vasitəsilə təyin edilə bilər, ancaq hardware qurğusunun əl ilə qurulması lazımdır:

Burada hər bir mümkün dəyərin izahı verilmişdir:

  • myteam: təqib etmək istədiyiniz komandanın 3 hərf kodudur
  • ayıklama: Mümkün dəyərlər 1 (doğru) və ya 0 (yanlış) olur və qeydlərin nə qədər yazılacağını nəzarət edəcək.
  • çıxış: bu skorların/detalların göstərilməli olduğu üsuldur. Mümkün dəyərlər bunlardır:

    • lcd: bu 2004 lcd
    • konsol: bu yalnız terminala yazacaq (əmr satırını işlətmək üçün)
    • oled: SSD6404 oled ekran üçün dəstək
  • işıq: dəstəklənən iki növ işıq var

    • həyəcan siqnalı: bu bir tranzistoru açmaq/söndürmək üçün tək bir GPIO idarə edəcək
    • çox ledli: çox rəngli və ya çoxlu ledləri dəstəkləyir
    • heç biri: işığı yoxdur
  • amp: bu, tranzistoru gücləndirən sürücü olan GPIO -dur

Tövsiyə: