Innholdsfortegnelse:

NHL Nattbordshockeylys og LCD: 4 trinn (med bilder)
NHL Nattbordshockeylys og LCD: 4 trinn (med bilder)

Video: NHL Nattbordshockeylys og LCD: 4 trinn (med bilder)

Video: NHL Nattbordshockeylys og LCD: 4 trinn (med bilder)
Video: NHL Highlights | Blue Jackets vs. Kraken - January 28, 2024 2024, November
Anonim
Image
Image
NHL nattbordshockeylys og LCD
NHL nattbordshockeylys og LCD

Introduksjon

"NHL Light" er for hockeyfans som ønsker å følge laget sitt, men ikke kan se hver kamp. Den beste egenskapen er at den simulerer en målscore med et hockeyhorn (tilpasset laget ditt) og lett.

I tillegg til hockeyhornet og lyset, har "NHL Light" en skjerm som gir nåværende eller siste kamps poengsum, spilletid eller tidspunkt for neste kamp, og gjeldende dato og klokkeslett.

"NHL Light" kjører på en enkel liste over deler, som er lett å montere elektronikk, og kode som er fritt tilgjengelig.

Funksjoner

  1. Nettsidebasert konfigurasjon for valg av team og wifi
  2. Spiller lys og horn når laget ditt scorer (selv når du er bortelaget)
  3. Spiller lyd for å kunngjøre begynnelsen av spillet
  4. Spiller av en lyd for å kunngjøre avslutningen på spillet
  5. Oppgir klokkeslett og dato for neste kamp, hvis ingen kamp pågår.
  6. Viser gjeldende spilletid og periode hvis spillet pågår.
  7. Viser gjeldende dato og klokkeslett.

Trinn 1: Trinn 1: Monter delene dine

Trinn 1: Monter delene dine
Trinn 1: Monter delene dine

Her er en deleliste.

  1. Bringebær Pi W*

    1. Amazon
    2. Jeg foretrekker å få min fra Microcenter, men kan bli funnet på nettet for mindre andre steder.
    3. $10
  2. SD -kort (minimum 4 GB)*
  3. høyttaler - Amazon - ~ $ 2 *
  4. forsterker - PAM8403* - Amazon - ~ $ 1 hver
  5. lys - Amazon - ~ $ 5
  6. Etui - $ 1*

    1. Michaels
    2. Jeg anbefaler et lite håndverkskabinett av tre fra Michaels håndverksbutikk, men vil overlate til deg!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Koden støtter 3 typer LCD -skjermer, men I2C 2004 er den jeg har bestemt meg for som beste verdi og størrelse. (SSD1306 er også mulig)
  8. 2 transistorer - 2N2222A- Amazon
  9. Diverse ledninger / loddetinn 12V
  10. strømforsyning - Amazon
  11. 12V -> 5V buck converter - Amazon

*Det er fleksibilitet når det gjelder å velge denne delen.

MERK: Du kan starte på det meste av dette prosjektet med din bringebær Pi, mens du venter på at andre varer skal sendes.

Trinn 2: Trinn 2: Kabling og elektronikk

Trinn 2: Kabling og elektronikk
Trinn 2: Kabling og elektronikk
Trinn 2: Kabling og elektronikk
Trinn 2: Kabling og elektronikk
  1. Monter lys

    1. Ledningene for lyset skal kjøre 12 + til lyset.
    2. Kjør negativt fra lyset gjennom en av transistorene.
    3. Transistorens emmetter går til bakken.
    4. Transistorens kollektor går til Raspberry Pi.
  2. Monter lyd

    1. Kjør høyre eller venstre lyd fra PI til forsterkeren
    2. Kjør +5V til forsterkeren
    3. Kjør forsterkerjord til den andre transistoren.
    4. Kjør emmetteren til den andre transisitoren til bakken
    5. Kjør samleren til transistoren til Raspberry Pi
  3. Monter ledninger til PI
  4. Dette er pinout -instruksjonene for PI (noen av 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 riktig - GPIO 18

Trinn 3: Trinn 3: Programvareoppsett for operativsystem

  1. Forbered Raspberry Pi W

    1. Raspberry pi må kjøre en nylig versjon av Raspbian (eller annen Debian).
    2. Anbefales å følge disse instruksjonene:
    3. Sørg for å inkludere wifi wpa_supplicant -fil.
    4. Sett ssh -filen på sdcard for å tillate ssh -tilgang.
  2. Forbered tredjeparts programvare:

    1. Jeg har automatisert denne prosessen for å trekke alle nødvendige tredjepartsverktøy, men kjør disse manuelt, og gå gjennom for å sikre at ingen trinn mislykkes.
    2. Last ned og kjør følgende skript:

Her er en oversikt over hva installasjonsskriptet for å sette opp operativsystemet gjør. Det er best å kjøre disse linjene manuelt, slik at du kan se etter feil.

Skripttekst:

#!/bin/sh -e #kan kalles via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatiser dette skriptet med noe som: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd og autoriserte nøkler # notater:

Oppdater programvare på operativnivå:

#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

Oppsett av nettverk. En del av målet her var å la systemet konfigureres via et tilgangspunkt, for å koble til ditt eget wifi, men dette har ikke blitt fullstendig testet ennå. For tiden anbefalt å bruke wpa_supplicant -metoden for å sette opp wifi.

#networking setupecho nhllight>/etc/hostname #TODO: fikser/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #note: annet oppsett utføres via konfigurasjonsfilene og skallet trekkes ned som en del av oppdateringen

Oppdater node- og nodebiblioteker

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

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

#oppdateringsnode

#installer node -avhengigheter i nhl -katalogeksporten NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - fikser det lamme ikke installeres globalt

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

npm install oled-font-5x7 #wont install globally

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

npm install onoff #wont install globally

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

# noen globale moduler

npm installer express body -parser child_process pm2 -g

Trekk siste kode:

#pull git codecd/opt/nhl #JSON er en gang -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 automatisert script for å installere alt annet for NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Last ned hornene!

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

oppdater Raspberry pi -konfigurasjonsfilene - - må kanskje endres for systemet ditt

#config filoppdateringer#legg til 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 on i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = på / n' >>/boot/config. tekst

#TODO: er dette nødvendig? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: angitt volum, 60%?

Automatiser automatiseringen, for eksempel oppstart og kodeoppdateringer:

# oppdater rc.local# MERK: flytte filen, fordi standard en inneholder en "exit" på siste linje, så kan ikke bare legge til 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 exit 0' >> /etc/rc.local

#TODO: må du legge til noe for å gjøre de vanlige programvareoppdateringene ukentlig som dette# Kanskje bare kopiere denne filen direkte til mappen 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

Diverse ting, som å angi tidssone:

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

# oppdatere 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;

Bruk PM2 for node -serveroppsett:

#TODO: testoppsett PM2cd /tmp /npm installasjon -g pm2 pm2 oppstart 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 lagre pm2 oppstart exit 0

Trinn 4: Trinn 4: Oppdater JSON -konfigurasjonen

Sett opp JSON -konfigurasjonsfilen for teamet du foretrekker osv. Denne filen ligger i /opt /nhl GO CAPITALS! config JSON -fil

Programvaren bruker en JSON -fil for å konfigurere maskinvaren og teamet du følger. Teamet kan settes gjennom webserveren som skal kjøres, men maskinvareoppsett må settes manuelt:

Her er en forklaring på hver mulig verdi:

  • myteam: dette er koden på 3 bokstaver til teamet du ønsker å følge
  • feilsøking: Mulige verdier er 1 (true) eller 0 (false), og vil kontrollere hvor mye logging som skrives ut.
  • output: dette er metoden som poeng/detaljer skal vises på. Mulige verdier er:

    • lcd: dette er 2004 lcd
    • konsoll: dette vil bare skrive til terminalen (for kjøring av kommandolinje)
    • oled: støtte for SSD6404 oled -skjerm
  • lys: det er to typer lys som støttes

    • alarm: dette vil drive en enkelt GPIO for å slå på/av en transistor
    • multi-led: støtter en flerfarget eller flere lysdioder
    • ingen: ingen lys festet
  • amp: dette er GPIO som driver transistoren for forsterkeren

Anbefalt: