INHOUDSOPGAWE:

NHL beddens hokkie lig en LCD: 4 stappe (met foto's)
NHL beddens hokkie lig en LCD: 4 stappe (met foto's)

Video: NHL beddens hokkie lig en LCD: 4 stappe (met foto's)

Video: NHL beddens hokkie lig en LCD: 4 stappe (met foto's)
Video: Serta 11" Cal King Cushion Firm Fortify Mattress Set with Kerstin Lindquist 2024, November
Anonim
Image
Image
NHL beddens hokkie lig en LCD
NHL beddens hokkie lig en LCD

Inleiding

Die "NHL Light" is vir hokkie -aanhangers wat hul span wil volg, maar nie elke wedstryd kan kyk nie. Die beste kenmerk is dat dit 'n doelpunt simuleer met 'n hokkiehoring (aangepas by u span) en lig.

Benewens die hokkiehoring en lig, het die "NHL Light" ook 'n skerm wat die huidige of mees onlangse wedstryd se telling, speeltyd of tyd van die volgende wedstryd en huidige datum en tyd bied.

Die "NHL Light" bevat 'n eenvoudige lys onderdele, wat maklik is om elektronika te monteer, en kode wat vrylik beskikbaar is.

Kenmerke

  1. Webbladgebaseerde konfigurasie om u span en wifi te kies
  2. Speel lig en horing as jou span punte maak (selfs as jy die wegspan is)
  3. Speel klank om die begin van die spel aan te kondig
  4. Speel 'n geluid om die einde van die spel aan te kondig
  5. Verskaf tyd en datum van die volgende wedstryd, indien daar geen spel aan die gang is nie.
  6. Gee die huidige tyd en tydperk van die spel, as die spel aan die gang is.
  7. Gee huidige datum en tyd.

Stap 1: Stap 1: Monteer u onderdele

Stap 1: Monteer u onderdele
Stap 1: Monteer u onderdele

Hier is 'n onderdele lys.

  1. Framboos Pi W*

    1. Amazon
    2. Ek verkies om myne by Microcenter te kry, maar kan op ander plekke minder aanlyn gevind word.
    3. $10
  2. SD -kaart (minimum 4 GB)*
  3. luidspreker - Amazon - ~ $ 2 *
  4. versterker - PAM8403* - Amazon - ~ $ 1 elk
  5. lig - Amazon - ~ $ 5
  6. Saak - $ 1*

    1. Van Michael
    2. Ek beveel 'n klein houtkissie uit die handwerkwinkel van Michael aan, maar ek sal dit aan u oorlaat!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Die kode ondersteun 3 soorte LCD's, maar I2C 2004 is die een waarop ek die beste waarde en grootte besluit het. (SSD1306 is ook moontlik)
  8. 2 transistors - 2N2222A- Amazon
  9. Diverse drade / soldeersel 12V
  10. kragtoevoer - Amazon
  11. 12V -> 5V boksomskakelaar - Amazon

*Daar is buigsaamheid by die keuse van hierdie onderdeel.

OPMERKING: u kan die grootste deel van hierdie projek net met u framboos Pi begin, terwyl u wag totdat ander items gestuur word.

Stap 2: Stap 2: Bedrading en elektronika

Stap 2: Bedrading en elektronika
Stap 2: Bedrading en elektronika
Stap 2: Bedrading en elektronika
Stap 2: Bedrading en elektronika
  1. Monteer lig

    1. Die bedrading vir die lig moet 12 + na die lig loop.
    2. Gaan negatief uit die lig deur een van die transistors.
    3. Die emetter van die transistor gaan grond toe.
    4. Die versamelaar van die transistor gaan na die Raspberry Pi.
  2. Monteer klank

    1. Draai die regter- of linkerklank van PI na die versterker
    2. Draai +5V na die versterker
    3. Draai amp grond na die 2de transistor.
    4. Laat die emitter van die 2de transitor op die grond loop
    5. Begin versamelaar van die transistor na die Raspberry Pi
  3. Monteer bedrading aan die PI
  4. Dit is die pinout -instruksies vir die PI (sommige hiervan is instelbaar via die JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Lig 10 (GPIO15)
    4. Klink reg - GPIO 18

Stap 3: Stap 3: sagteware -opstelling van die bedryfstelsel

  1. Berei die Raspberry Pi W voor

    1. Die framboos -pi moet 'n onlangse weergawe van Raspbian (of ander Debian) gebruik.
    2. Dit word aanbeveel om hierdie instruksies te volg:
    3. Sluit seker die wifi wpa_supplicant -lêer in.
    4. Plaas ssh -lêer op die sdcard om toegang tot ssh te verkry.
  2. Berei die derdeparty -sagteware voor:

    1. Ek het hierdie proses geoutomatiseer om al die nodige hulpmiddels van derde partye te gebruik, maar ek kan dit handmatig uitvoer en kyk of daar geen stappe is nie.
    2. Laai die volgende script af en voer dit uit:

Hier is 'n uiteensetting van wat die installasie -script vir die opstel van die bedryfstelsel doen. Dit is die beste om hierdie reëls handmatig uit te voer, sodat u kan let op foute.

Skrifkop:

#!/bin/sh -e #kan gebel word via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: outomatiseer hierdie script met iets soos: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: instel wifi # TODO: instel wagwoord en gemagtigde sleutels # notas:

Dateer sagteware op OS -vlak op:

#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 #netwerk apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

Netwerkopstelling. 'N Deel van die doel hier was om toe te laat dat die stelsel via 'n toegangspunt gekonfigureer word, om aan te sluit op u eie wifi, maar dit is nog nie volledig getoets nie. Tans word dit aanbeveel om die wpa_supplicant -metode te gebruik vir die opstel van wifi.

#netwerkopstellingecho nhllight>/etc/gasheernaam #TODO: herstel die/etc/hosts #TODO: opstelling br0 mkdir/etc/hostapd/ #let op: die ander opstelling word uitgevoer via die konfigurasielêers en die dop word as deel van die opdatering afgetrek

Dateer node- en nodebiblioteke op

#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 LISENSIE cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: maak sym skakel vir node binêre? apt -get remove -y -purge npm node nodejs

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

#opdatering Node

#installeer nodusse in die nhl -gids uitvoer NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - herstel die kreupel wat nie wêreldwyd geïnstalleer word nie

cd/opt/nhl npm installeer lame # lam, is lam, sal nie wêreldwyd installeer nie cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm installeer luidspreker #wont wêreldwyd installeer cp -R/opt/nhl/node_modules/luidspreker $ NODE_PATH npm installeer i2c-bus #sal nie wêreldwyd installeer nie cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm installeer oled-i2c-bus #sal nie wêreldwyd installeer nie 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 installeer oled-font-5x7 #nie wêreldwyd installeer nie

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

npm installeer onoff #wêreldwyd nie geïnstalleer nie

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

#npm installeer pm2 #sal nie wêreldwyd installeer nie

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #nie wêreldwyd geïnstalleer nie #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# enige wêreldwye modules

npm installeer express body -parser child_process pm2 -g

Trek die nuutste kode:

#pull git codecd/opt/nhl #JSON is 'n eenmalige skeppingswget -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 outomatiese script om al die ander te installeer vir NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Laai die horings af!

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

werk die Raspberry pi -konfigurasielêers op - - sal moontlik vir u stelsel moet verander

#config-lêeropdaterings#voeg klank by 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 = aan / n' >>/boot/config. txt

#TODO: is dit nodig? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: stel volume, 60%?

Outomatiseer die outomatisering, soos opstart en kode -opdaterings:

# werk rc.local op# LET WEL: die lêer verskuif, want standaard een bevat 'n "exit" in die laaste reël, dus kan u nie net mv /etc/rc.local /etc/rc.local.bak aanraak nie /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 afrit 0' >> /etc/rc.local

#TODO: moet u weekliks so iets byvoeg om die gereelde sagteware -opdaterings te doen# Miskien moet u hierdie lêer direk na die rc.weekly -gids kopieer? 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

Ander dinge, soos om tydsone in te stel:

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

# omgewingsveranderlike opdateer met node_path

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

Gebruik PM2 vir die opstel van nodusbedieners:

#TODO: toetsopstelling PM2cd /tmp /npm installeer -g pm2 pm2 opstart-cd /opt /nhl pm2 begin NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "-max_old_space_size 100M" pm2 stoor pm2 opstart afrit 0

Stap 4: Stap 4: Werk die JSON -konfigurasie op

Stel u JSON -konfigurasielêer op vir die span wat u verkies, ens. Hierdie lêer is geleë in /opt /nhl GO CAPITALS! config JSON lêer

Die sagteware gebruik 'n JSON -lêer om die hardeware en span wat u volg op te stel. Die span kan ingestel word via die webbediener wat werk, maar hardeware -opstelling moet handmatig ingestel word:

Hier is 'n verduideliking van elke moontlike waarde:

  • myteam: dit is die kode van 3 letters van die span wat u wil volg
  • ontfouting: moontlike waardes is 1 (waar) of 0 (onwaar), en sal beheer hoeveel uitteken word.
  • uitset: dit is die metode waarmee tellings/besonderhede getoon moet word. Moontlike waardes is:

    • lcd: dit is die 2004 lcd
    • konsole: dit sal slegs na die terminale skryf (vir die opdragreël)
    • oled: ondersteuning vir SSD6404 oled -skerm
  • lig: daar word twee soorte ligte ondersteun

    • alarm: dit sal 'n enkele GPIO bestuur om 'n transistor aan/uit te skakel
    • multi-led: ondersteun 'n veelkleurige of meer LED's
    • geen: geen lig aangeheg nie
  • amp: dit is die GPIO wat die transistor vir die versterker dryf

Aanbeveel: