Indholdsfortegnelse:

NHL Nightside Hockey Light og LCD: 4 trin (med billeder)
NHL Nightside Hockey Light og LCD: 4 trin (med billeder)

Video: NHL Nightside Hockey Light og LCD: 4 trin (med billeder)

Video: NHL Nightside Hockey Light og LCD: 4 trin (med billeder)
Video: World's Longest Field Goal- Robot vs NFL Kicker 2024, November
Anonim
Image
Image
NHL -sengelyshockeylys og LCD
NHL -sengelyshockeylys og LCD

Introduktion

"NHL Light" er for hockey -fans, der ønsker at følge deres hold, men ikke kan se hver kamp. Den bedste funktion er, at den simulerer en målscore med et hockeyhorn (tilpasset dit hold) og let.

Ud over hockeyhornet og lyset har "NHL Light" et display, der giver nuværende eller seneste spilles score, spilletid eller tidspunkt for næste kamp og aktuel dato og klokkeslæt.

"NHL Light" kører på en simpel liste over dele, der er let at samle elektronik og kode, der er frit tilgængelig.

Funktioner

  1. Websidebaseret konfiguration til valg af dit team og wifi
  2. Spiller lys og horn når dit hold scorer (selv når du er udeholdet)
  3. Afspiller lyd for at annoncere begyndelsen af spillet
  4. Afspiller en lyd for at annoncere afslutningen på spillet
  5. Giver tid og dato for næste spil, hvis der ikke er noget spil i gang.
  6. Viser den aktuelle spilletid og -periode, hvis spillet er i gang.
  7. Viser den aktuelle dato og klokkeslæt.

Trin 1: Trin 1: Saml dine dele

Trin 1: Saml dine dele
Trin 1: Saml dine dele

Her er en deleliste.

  1. Raspberry Pi W*

    1. Amazon
    2. Jeg foretrækker at få mit fra Microcenter, men kan findes online billigere andre steder.
    3. $10
  2. SD -kort (minimum 4 GB)*
  3. højttaler - Amazon - ~ $ 2 *
  4. forstærker - PAM8403* - Amazon - ~ $ 1 hver
  5. lys - Amazon - ~ $ 5
  6. Etui - $ 1*

    1. Michaels
    2. Jeg anbefaler en lille håndværksetui i træ fra Michaels håndværksbutik, men vil overlade til dig!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Koden understøtter 3 typer LCD'er, men I2C 2004 er den, jeg har afgjort som den bedste værdi og størrelse. (SSD1306 er også mulig)
  8. 2 transistorer - 2N2222A- Amazon
  9. Diverse ledninger / lodde 12V
  10. strømforsyning - Amazon
  11. 12V -> 5V buck converter - Amazon

*Der er fleksibilitet, når det kommer til at vælge denne del.

BEMÆRK: Du kan starte på det meste af dette projekt med bare din hindbær Pi, mens du venter på, at andre varer sendes.

Trin 2: Trin 2: Ledninger og elektronik

Trin 2: Ledninger og elektronik
Trin 2: Ledninger og elektronik
Trin 2: Ledninger og elektronik
Trin 2: Ledninger og elektronik
  1. Saml lys

    1. Ledningerne til lyset skal køre 12 + til lyset.
    2. Kør negativt fra lyset gennem en af transistorerne.
    3. Transistorens emmetter går til jorden.
    4. Transistorens samler går til Raspberry Pi.
  2. Saml lyd

    1. Kør højre eller venstre lyd fra PI til forstærkeren
    2. Kør +5V til forstærkeren
    3. Kør forstærkerjord til den 2. transistor.
    4. Kør emitteren af den 2. transitor til jorden
    5. Kør transistorens samler til Raspberry Pi
  3. Saml ledninger til PI
  4. Dette er pinout -instruktionerne for PI'en (nogle af disse kan konfigureres via JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Lys 10 (GPIO15)
    4. Lyd rigtigt - GPIO 18

Trin 3: Trin 3: Opsætning af operativsystemsoftware

  1. Forbered Raspberry Pi W

    1. Raspberry pi skal køre en nylig version af Raspbian (eller anden Debian).
    2. Anbefales at følge disse instruktioner:
    3. Sørg for at inkludere wifi wpa_supplicant -fil.
    4. Sæt ssh -fil på sdcard for at tillade ssh -adgang.
  2. Forbered tredjepartssoftwaren:

    1. Jeg har automatiseret denne proces til at trække alle nødvendige tredjepartsværktøjer, men du er velkommen til at køre disse manuelt og gennemgå for at sikre, at ingen trin mislykkes.
    2. Download og kør følgende script:

Her er en oversigt over, hvad installations scriptet til opsætning af operativsystemet gør. Det er bedst at køre disse linjer manuelt, så du kan se efter fejl.

Scriptoverskrift:

#!/bin/sh -e #kan kaldes via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatiser dette script med noget i stil med: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd og autoriserede nøgler # noter:

Opdater software på OS -niveau:

#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-essential 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

Opsætning af netværk. En del af målet her var at tillade system at blive konfigureret via et adgangspunkt, at oprette forbindelse til din egen wifi, men dette er ikke blevet testet fuldstændigt endnu. I øjeblikket anbefales det at bruge wpa_supplicant -metoden til opsætning af wifi.

#networking setupecho nhllight>/etc/hostname #TODO: fix/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #note: anden opsætning udføres via konfigurationsfilerne og skal trækkes ned som en del af opdateringen

Opdater Node- og nodebiblioteker

#update 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 LICENS cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: lav sym link til node binær? apt -get remove -y -purge npm node nodejs

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

#opdater knude

#install node -afhængigheder i nhl -bibliotekseksport NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - fix den halte vil ikke installeres globalt

cd/opt/nhl npm installer lame # halt, er halt, vil ikke installere globalt cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm installere højttaler # vil ikke installere globalt cp -R/opt/nhl/node_modules/højttaler $ NODE_PATH npm installere i2c-bus #vil ikke installere globalt cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm installere oled-i2c-bus #vil ikke installere globalt cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm install lcd #wont install globally cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm install lcdi2c #wont install globalt cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH

npm installer oled-font-5x7 #vil ikke installere globalt

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

npm install onoff #wont install globalt

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

#npm installer pm2 #vil ikke installere globalt

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #vil ikke installere globalt #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# eventuelle globale moduler

npm installer express body -parser child_process pm2 -g

Træk seneste kode:

#pull git codecd/opt/nhl #JSON er én gang oprettelses 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 automatiseret script for at installere alt andet til NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Download hornene!

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

opdater Raspberry pi -konfigurationsfilerne - - skal muligvis ændres for dit system

#config-filopdateringer#tilføj lyd cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / 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: er dette nødvendigt? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: indstillet volumen, 60%?

Automatiser automatiseringen, f.eks. Opstart og kodeopdateringer:

# opdater rc.local# BEMÆRK: flytning af filen, fordi standard en indeholder en "exit" i sidste linje, så kan ikke bare tilføje mv /etc/rc.local /etc/rc.local.bak tryk på /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 exit 0' >> /etc/rc.local

#TODO: nødt til at tilføje noget for at lave de regelmæssige softwareopdateringer ugentligt som dette# Måske bare kopiere denne fil direkte ned til rc.weekly -mappen? 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

Diverse ting, f.eks. Indstilling af tidszone:

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

# opdater miljøvariabel med node_path

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: definer dette for node self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Brug PM2 til node -serveropsætning:

#TODO: testopsætning PM2cd /tmp /npm installation -g pm2 pm2 opstart 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 gem pm2 opstart exit 0

Trin 4: Trin 4: Opdater JSON -konfigurationen

Opsæt din JSON -konfigurationsfil for det team, du foretrækker osv. Denne fil er placeret i /opt /nhl GO CAPITALS! config JSON -fil

Softwaren bruger en JSON -fil til at konfigurere den hardware og det team, du følger. Teamet kan indstilles via den webserver, der kører, men hardwareopsætning skal indstilles manuelt:

Her er en forklaring på hver mulig værdi:

  • myteam: dette er koden på 3 bogstaver for det team, du ønsker at følge
  • fejlfinding: Mulige værdier er 1 (sand) eller 0 (falsk) og styrer, hvor meget logning der skrives ud.
  • output: dette er den metode, hvormed scores/detaljer skal vises. Mulige værdier er:

    • lcd: dette er 2004 lcd
    • konsol: dette vil kun skrive til terminalen (til at køre kommandolinje)
    • oled: understøttelse af SSD6404 oled -skærm
  • lys: der understøttes to typer lys

    • alarm: dette driver en enkelt GPIO til at tænde/slukke en transistor
    • multi-led: understøtter en flerfarvet eller flere lysdioder
    • ingen: intet lys påsat
  • amp: dette er GPIO, der driver transistoren til forstærkeren

Anbefalede: