Innehållsförteckning:

NHL sänghockeyljus och LCD: 4 steg (med bilder)
NHL sänghockeyljus och LCD: 4 steg (med bilder)

Video: NHL sänghockeyljus och LCD: 4 steg (med bilder)

Video: NHL sänghockeyljus och LCD: 4 steg (med bilder)
Video: NHL Highlights | Blue Jackets vs. Kraken - January 28, 2024 2024, November
Anonim
Image
Image
NHL sänghockeyljus och LCD
NHL sänghockeyljus och LCD

Introduktion

"NHL Light" är för hockeyfans som vill följa sitt lag, men inte kan titta på varje match. Den bästa egenskapen är att den simulerar en målpoäng med ett hockeyhorn (anpassat till ditt lag) och lätt.

Förutom hockeyhornet och ljuset har "NHL Light" en display som ger aktuellt eller senaste spelets poäng, speltid eller tid för nästa spel och aktuellt datum och tid.

"NHL Light" körs på en enkel lista över delar, som är lätt att montera elektronik och kod som är fritt tillgänglig.

Funktioner

  1. Webbsidebaserad konfiguration för att välja ditt team och wifi
  2. Spelar ljus och horn när ditt lag gör mål (även när du är bortalag)
  3. Spelar ljud för att tillkännage början av spelet
  4. Spelar ett ljud för att meddela avslutningen av spelet
  5. Ger tid och datum för nästa spel, om inget spel pågår.
  6. Visar den aktuella speltiden och perioden om spelet pågår.
  7. Visar aktuellt datum och tid.

Steg 1: Steg 1: Montera dina delar

Steg 1: Montera dina delar
Steg 1: Montera dina delar

Här är en dellista.

  1. Raspberry Pi W*

    1. Amazon
    2. Jag föredrar att få min från Microcenter, men kan hittas på nätet för mindre på andra ställen.
    3. $10
  2. SD -kort (minst 4 GB)*
  3. högtalare - Amazon - ~ $ 2 *
  4. förstärkare - PAM8403* - Amazon - ~ $ 1 styck
  5. ljus - Amazon - ~ $ 5
  6. Fodral - $ 1*

    1. Michaels
    2. Jag rekommenderar ett litet träfodral från Michaels hantverksbutik, men lämnar det till dig!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Koden stöder 3 typer av LCD -skärmar, men I2C 2004 är den jag har bestämt mig för som bästa värde och storlek. (SSD1306 är också möjlig)
  8. 2 transistorer - 2N2222A- Amazon
  9. Övriga ledningar / lödare12V
  10. strömförsörjning - Amazon
  11. 12V -> 5V buck converter - Amazon

*Det finns flexibilitet när det gäller att välja denna del.

OBS: Du kan börja på det mesta av detta projekt med bara din hallon Pi, medan du väntar på att andra artiklar ska skickas.

Steg 2: Steg 2: Kabeldragning och elektronik

Steg 2: Kabeldragning och elektronik
Steg 2: Kabeldragning och elektronik
Steg 2: Kabeldragning och elektronik
Steg 2: Kabeldragning och elektronik
  1. Montera ljus

    1. Ledningarna för ljuset är att köra 12 + till ljuset.
    2. Kör negativt från ljuset genom en av transistorerna.
    3. Transistorns emmetter går till marken.
    4. Transistorns kollektor går till Raspberry Pi.
  2. Montera ljud

    1. Kör höger eller vänster ljud från PI till förstärkaren
    2. Kör +5V till förstärkaren
    3. Kör förstärkaren till den andra transistorn.
    4. Kör emitteraren för den andra transistorn till marken
    5. Kör transistorns kollektor till Raspberry Pi
  3. Montera ledningar till PI
  4. Detta är pinout -instruktionerna för PI (några av dessa kan konfigureras via JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Ljus 10 (GPIO15)
    4. Ljud rätt - GPIO 18

Steg 3: Steg 3: Installation av operativsystemprogramvara

  1. Förbered Raspberry Pi W

    1. Raspberry pi måste ha en ny version av Raspbian (eller annan Debian).
    2. Rekommenderas att följa dessa instruktioner:
    3. Var noga med att inkludera wifi wpa_supplicant -filen.
    4. Lägg ssh -filen på sdcard för att tillåta ssh -åtkomst.
  2. Förbered tredjepartsprogramvaran:

    1. Jag har automatiserat den här processen för att dra alla nödvändiga tredjepartsverktyg, men kör dem manuellt och granska för att säkerställa att inga steg misslyckas.
    2. Ladda ner och kör följande skript:

Här är en sammanfattning av vad installationsskriptet för att konfigurera operativsystemet gör. Det är bäst att köra dessa rader manuellt, så att du kan se efter fel.

Skriptrubrik:

#!/bin/sh -e #kan kallas via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatisera detta skript med något liknande: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd och auktoriserade nycklar # anteckningar:

Uppdatera programvara på OS -nivå:

#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

Nätverksinställning. En del av målet här var att låta systemet konfigureras via en åtkomstpunkt, för att ansluta till din egen wifi, men detta har inte testats helt än. Rekommenderas för närvarande att använda wpa_supplicant -metoden för att konfigurera wifi.

#networking setupecho nhllight>/etc/hostname #TODO: fixa/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #note: annan installation görs via konfigurationsfilerna och skalet dras ner som en del av uppdateringen

Uppdatera nod- och nodbibliotek

#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 LICENS cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: gör sym-länk för nod binär? apt -get remove -y --purge npm node nodejs

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

#uppdateringsnod

#installera nodberoenden i nhl -katalogexporten NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - fixa att den lamme inte kommer att installeras globalt

cd/opt/nhl npm installera lame # lame, är halt, kommer inte att installera globalt cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm installera högtalare #wont installera globalt cp -R/opt/nhl/node_modules/högtalare $ NODE_PATH npm installera i2c-buss #kommer inte att installera globalt cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm installera oled-i2c-buss #kommer inte att installera 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 globally cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH

npm installera 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 installera pm2 #kommer inte att installeras globalt

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #kommer inte att installeras globalt #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# några globala moduler

npm installera express body -parser child_process pm2 -g

Dra senaste koden:

#pull git codecd/opt/nhl #JSON är en enda gång -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 automatiserat skript för att installera allt annat för NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Ladda ner hornen!

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

uppdatera Raspberry pi -konfigurationsfilerna - - kan behöva ändras för ditt system

#config-filuppdateringar#lägg till ljud 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. Text

#TODO: behövs detta? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: ställ in volym, 60%?

Automatisera automatiseringen, t.ex. uppstart och koduppdateringar:

# uppdatera rc.local# OBS: flytta filen, eftersom standard ett innehåller en "exit" på sista raden, så kan inte helt enkelt lägga till 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åste du lägga till något för att göra de vanliga programuppdateringarna varje vecka så här# Kanske bara kopiera den här filen direkt till 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 saker, som att ställa in tidszon:

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

# uppdatera miljövariabel med node_path

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: definiera detta för nod self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Använd PM2 för nodserverinställning:

#TODO: testinstallation PM2cd /tmp /npm installera -g pm2 pm2 starta cd /opt /nhl pm2 starta NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "-max_old_space_size 100M" pm2 spara pm2 start avsluta 0

Steg 4: Steg 4: Uppdatera JSON -konfigurationen

Ställ in din JSON -konfigurationsfil för det team du föredrar, etc. Denna fil finns i /opt /nhl GO CAPITALS! config JSON -fil

Programvaran använder en JSON -fil för att konfigurera hårdvaran och teamet du följer. Teamet kan ställas in via den webbserver som kommer att köras, men hårdvaruinstallationen måste ställas in manuellt:

Här är en förklaring av varje möjligt värde:

  • myteam: detta är koden på tre bokstäver för laget du vill följa
  • felsökning: Möjliga värden är 1 (true) eller 0 (false) och styr hur mycket loggning som skrivs ut.
  • output: detta är metoden för att poäng/detaljer ska visas. Möjliga värden är:

    • lcd: detta är 2004 lcd
    • konsol: detta kommer bara att skriva till terminalen (för att köra kommandoraden)
    • oled: stöd för SSD6404 oled -skärm
  • ljus: det finns två typer av lampor som stöds

    • larm: detta kommer att driva en enda GPIO för att slå på/av en transistor
    • multi-led: stöder en flerfärgad eller flera lysdioder
    • ingen: inget ljus bifogat
  • amp: detta är GPIO som driver transistorn för förstärkaren

Rekommenderad: