İçindekiler:

NHL Başucu Hokey Işığı ve LCD: 4 Adım (Resimlerle)
NHL Başucu Hokey Işığı ve LCD: 4 Adım (Resimlerle)

Video: NHL Başucu Hokey Işığı ve LCD: 4 Adım (Resimlerle)

Video: NHL Başucu Hokey Işığı ve LCD: 4 Adım (Resimlerle)
Video: Karantinada Evdeyken Yapılabilecek Şeyler! Sizi Geliştirip, Eğlendirecek Kitap ve Film Tavsiyeleri 2024, Kasım
Anonim
Image
Image
NHL Başucu Hokey Işığı ve LCD
NHL Başucu Hokey Işığı ve LCD

Tanıtım

"NHL Light", takımlarını takip etmek isteyen ancak her maçı izleyemeyen hokey hayranları içindir. En iyi özelliği, bir hokey kornası (takımınıza özel) ve ışıkla bir gol skorunu simüle etmesidir.

Hokey kornası ve ışığına ek olarak, "NHL Light", mevcut veya en son oyunun skorunu, oyun saatini veya bir sonraki maçın saatini ve mevcut tarih ve saati sağlayan bir ekrana sahiptir.

"NHL Light", elektroniklerin montajı kolay olan basit bir parça listesi ve ücretsiz olarak temin edilebilen kod üzerinde çalışır.

Özellikleri

  1. Ekibinizi ve wifi'nizi seçmek için web sayfası tabanlı yapılandırma
  2. Takımınız gol attığında hafif ve korna çalar (deplasman takımı olsanız bile)
  3. Oyunun başladığını duyurmak için ses çalar
  4. Oyunun bittiğini duyurmak için bir ses çalar
  5. Devam eden oyun yoksa, bir sonraki oyunun saatini ve tarihini sağlar.
  6. Oyun devam ediyorsa, mevcut oyun zamanını ve periyodunu görüntüler.
  7. Geçerli tarih ve saati görüntüler.

Adım 1: Adım 1: Parçalarınızı Birleştirin

Adım 1: Parçalarınızı Birleştirin
Adım 1: Parçalarınızı Birleştirin

İşte bir parça listesi.

  1. Ahududu Pi W*

    1. Amazon
    2. Benimkini Microcenter'dan almayı tercih ediyorum, ancak başka yerlerde daha ucuza çevrimiçi olarak bulunabilir.
    3. $10
  2. SD Kart (minimum 4gb)*
  3. konuşmacı - Amazon - ~2$ *
  4. amp - PAM8403* - Amazon - her biri ~1$
  5. hafif - Amazon - ~5$
  6. Kasa - 1$*

    1. Michael'ın
    2. Michael'ın zanaat mağazasından küçük ahşap zanaat çantasını tavsiye ederim, ama size bırakacağım!
  7. I2C 2004 LCD - 3-7 $

    1. Amazon
    2. Kod 3 tip LCD'yi destekler, ancak I2C 2004 en iyi değer ve boyut olarak karar verdiğim koddur. (SSD1306 da mümkündür)
  8. 2 transistör - 2N2222A- Amazon
  9. Çeşitli Teller / lehim12V
  10. güç kaynağı - Amazon
  11. 12V -> 5V dönüştürücü - Amazon

*Bu bölümü seçme konusunda esneklik vardır.

NOT: Diğer öğelerin gönderilmesini beklerken bu projenin çoğuna yalnızca ahududu Pi'nizle başlayabilirsiniz.

Adım 2: Adım 2: Kablolama ve Elektronik

Adım 2: Kablolama ve Elektronik
Adım 2: Kablolama ve Elektronik
Adım 2: Kablolama ve Elektronik
Adım 2: Kablolama ve Elektronik
  1. Işık birleştirin

    1. Işık için kablolama, ışığa 12 + çalıştırmaktır.
    2. Transistörlerden birinden ışıktan negatif çalıştırın.
    3. Transistörün emmetteri toprağa gider.
    4. Transistörün toplayıcısı Raspberry Pi'ye gider.
  2. ses birleştir

    1. PI'den amfiye doğru veya sol sesi çalıştırın
    2. Amfiye + 5V çalıştırın
    3. Amp topraklamayı 2. transistöre çalıştırın.
    4. 2. transistörün emmetterini toprağa çalıştırın
    5. Transistörün toplayıcısını Raspberry Pi'ye çalıştırın
  3. PI'ye kabloları monte edin
  4. Bu, PI için pin çıkışı talimatlarıdır (bunlardan bazıları JSON aracılığıyla yapılandırılabilir)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Işık 10 (GPIO15)
    4. Sağ Ses - GPIO 18

Adım 3: Adım 3: İşletim Sistemi Yazılım Kurulumu

  1. Raspberry Pi W'yi hazırlayın

    1. Rasberry pi, Raspbian'ın (veya başka bir Debian) yeni bir sürümünü çalıştırıyor olmalıdır.
    2. Bu talimatları izlemeniz önerilir:
    3. Wifi wpa_supplicant dosyasını eklediğinizden emin olun.
    4. Ssh erişimine izin vermek için ssh dosyasını sd karta koyun.
  2. 3. taraf yazılımı hazırlayın:

    1. Gerekli tüm 3. taraf araçlarını çekmek için bu işlemi otomatikleştirdim, ancak bunları manuel olarak çalıştırmaktan çekinmeyin ve hiçbir adımın başarısız olmadığından emin olmak için gözden geçirin.
    2. Aşağıdaki betiği indirin ve çalıştırın:https://github.com/wga22/nodejs/blob/master/nhl/mi…

İşletim sistemini kurmak için kurulum komut dosyasının ne yaptığının bir dökümü burada. Bu satırları manuel olarak çalıştırmak en iyisidir, böylece hataları izleyebilirsiniz.

Komut Dosyası Başlığı:

#!/bin/sh -e# #curl -sL üzerinden çağrılabilir https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: bu betiği şuna benzer bir şeyle otomatikleştirin: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # YAPILACAKLAR: wifi kurulumu # YAPILACAKLAR: şifre ve yetkili anahtarları ayarlayın # notlar:

İşletim sistemi düzeyinde yazılımı güncelleyin:

#apt-get şeyler(apt-get update && apt-get -y upgrade) > /dev/null apt-get dist-upgrade -y #General Dev apt-get install -y git build-essential python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get kurulumu -y raspi-gpio python-görüntüleme python-smbus libasound2-dev #networking apt-get install -y köprü-utils hostapd dnsmasq apt-get clean -y

Ağ kurulumu. Buradaki amacın bir kısmı, sistemin bir erişim noktası aracılığıyla yapılandırılmasına, kendi wifi ağınıza bağlanmasına izin vermekti, ancak bu henüz tam olarak test edilmedi. Şu anda wifi kurulumu için wpa_supplicant yöntemini kullanmanız önerilir.

#networking setupecho nhllight > /etc/hostname #TODO: /etc/hosts'u düzeltin #TODO: setup br0 mkdir /etc/hostapd/ # not: diğer kurulumlar yapılandırma dosyaları aracılığıyla yapılır ve güncellemenin bir parçası olarak kabuk aşağı çekilir

Düğüm ve düğüm kitaplıklarını güncelleyin

#update nodecd /tmp dışa aktarma düğümü=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 düğüm için sym bağlantısı yapılsın mı? apt-get remove -y --purge npm düğüm düğümü

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

#güncelleme Düğümü

#node bağımlılıklarını nhl dizinine aktarın NODE_PATH=/usr/local/lib/node_modules

#HACK - YAPILACAKLAR - küresel olarak yüklenmeyecek bu topal sorunu düzeltin

cd /opt/nhl npm yükleme topal # topal, topal, global olarak kurulmayacak cp -R /opt/nhl/node_modules/lame $NODE_PATH npm hoparlör kurulumu #glont global olarak kurulmayacak cp -R /opt/nhl/node_modules/hoparlör $NODE_PATH npm i2c-bus kurulumu #glont olarak kurulmayacak cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm oled-i2c-bus kurulumu #glont olarak kurulmayacak cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm lcd kurulumunu #glont olarak kurmayacak cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm lcdi2c kurulumunu #wont global olarak kurmayacak cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH

npm oled-font-5x7'yi kurun # global olarak kurulmayacak

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

npm install onoff #küresel olarak kurulmayacak

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

#npm pm2'yi kurun #küresel olarak kurulmayacak

#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm express yükleme #glont olarak yükleme #cp -R /opt/nhl/node_modules/express $NODE_PATH

# herhangi bir global modül

npm ekspres gövde ayrıştırıcısını kurun child_process pm2 -g

En son kodu çekin:

#pull git codecd /opt/nhl #JSON tek seferlik bir oluşturmadır 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 için diğer her şeyi yüklemek üzere #call otomatik komut dosyası https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Kornaları indirin!

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

Raspberry pi yapılandırma dosyalarını güncelleyin - - sisteminiz için değiştirmeniz gerekebilir

#config dosyası güncellemeleri#ses ekle 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. txt

#TODO: bu gerekli mi?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules

amixer cset numid=1

#TODO: ses seviyesi ayarla, %60?

Önyükleme ve kod güncellemeleri gibi otomasyonu otomatikleştirin:

# update rc.local# NOT: dosyayı hareket ettirin, çünkü standart dosya son satırda bir "çıkış" içerir, bu nedenle basitçe mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local eklenemez 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 çıkış 0' >> /etc/rc.local

#TODO: Bunun gibi haftalık düzenli yazılım güncellemelerini yapmak için bir şeyler eklemeniz gerekiyor# Belki bu dosyayı doğrudan rc.weekly klasörüne 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 dilimini ayarlamak gibi çeşitli şeyler:

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

# ortam değişkenini node_path ile güncelle

cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: bunu kendi düğümü için tanımlayın.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Düğüm sunucusu kurulumu için PM2'yi kullanın:

#TODO: test kurulumu PM2cd /tmp/ npm kurulum -g pm2 pm2 başlangıç cd'si /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 Exposure-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 pm2 kaydet başlangıç çıkış 0

4. Adım: 4. Adım: JSON Yapılandırmasını Güncelleyin

Tercih ettiğiniz takım için JSON yapılandırma dosyanızı kurun, vb. Bu dosya /opt/nhl GO CAPITALS! JSON dosyasını yapılandır

Yazılım, takip ettiğiniz donanımı ve ekibi yapılandırmak için bir JSON dosyası kullanır. Ekip, çalışacak web sunucusu üzerinden ayarlanabilir, ancak donanım kurulumunun manuel olarak ayarlanması gerekir:

{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }

Her olası değerin açıklaması aşağıda verilmiştir:

  • myteam: Bu, takip etmek istediğiniz takımın 3 harfli kodudur.
  • hata ayıklama: Olası değerler 1 (doğru) veya 0 (yanlış)'dir ve ne kadar günlük kaydı yazılacağını kontrol eder.
  • çıktı: bu, puanların/ayrıntıların gösterileceği yöntemdir. Olası değerler şunlardır:

    • lcd: bu 2004 lcd
    • konsol: bu sadece terminale yazacaktır (komut satırını çalıştırmak için)
    • oled: SSD6404 oled ekran desteği
  • ışık: desteklenen iki tür ışık vardır

    • alarm: bu, bir transistörü açmak/kapatmak için tek bir GPIO'yu çalıştırır
    • çoklu led: çok renkli veya çoklu led'leri destekler
    • hiçbiri: eklenmiş ışık yok
  • amp: bu, amp için transistörü çalıştıran GPIO'dur.

Önerilen: