Cuprins:

NHL Noptieră Hochei și LCD: 4 pași (cu imagini)
NHL Noptieră Hochei și LCD: 4 pași (cu imagini)

Video: NHL Noptieră Hochei și LCD: 4 pași (cu imagini)

Video: NHL Noptieră Hochei și LCD: 4 pași (cu imagini)
Video: The Obsidian blade 2024, Noiembrie
Anonim
Image
Image
NHL Nightside Hockey Light și LCD
NHL Nightside Hockey Light și LCD

Introducere

„NHL Light” este pentru fanii hochei care doresc să-și urmeze echipa, dar nu pot urmări fiecare meci. Cea mai bună caracteristică este că simulează un scor cu un corn de hochei (personalizat pentru echipa dvs.) și ușor.

În plus față de claxonul și lumina de hochei, „NHL Light” are un afișaj care oferă scorul actual sau cel mai recent al jocului, ora jocului sau ora următorului joc și data și ora curente.

"NHL Light" rulează pe o listă simplă de piese, care este ușor de asamblat electronice, și cod care este disponibil gratuit.

Caracteristici

  1. Configurare bazată pe pagină web pentru selectarea echipei și a conexiunii wifi
  2. Joacă ușor și claxon când echipa ta marchează (chiar și atunci când ești echipa în deplasare)
  3. Joacă sunet pentru a anunța începutul jocului
  4. Redă un sunet pentru a anunța încheierea jocului
  5. Oferă ora și data următorului joc, dacă nu există un joc în desfășurare.
  6. Afișează timpul și perioada de joc curente, dacă jocul este în desfășurare.
  7. Afișează data și ora curentă.

Pasul 1: Pasul 1: Asamblați-vă piesele

Pasul 1: Asamblați-vă piesele
Pasul 1: Asamblați-vă piesele

Iată o listă de piese.

  1. Raspberry Pi W *

    1. Amazon
    2. Prefer să-l iau pe al meu de la Microcenter, dar pot fi găsit online pentru mai puțin în alte locuri.
    3. $10
  2. Card SD (minim 4 GB) *
  3. difuzor - Amazon - ~ 2 $ *
  4. amp - PAM8403 * - Amazon - ~ 1 $ fiecare
  5. light - Amazon - ~ 5 $
  6. Carcasă - 1 $ *

    1. A lui Michael
    2. Vă recomandăm o cutie mică pentru ambarcațiuni din lemn de la magazinul de artizanat Michael, dar vă voi lăsa!
  7. I2C 2004 LCD - 3-7 USD

    1. Amazon
    2. Codul acceptă 3 tipuri de LCD-uri, dar I2C 2004 este cel pe care m-am stabilit ca fiind cea mai bună valoare și dimensiune. (SSD1306 este, de asemenea, posibil)
  8. 2 tranzistori - 2N2222A- Amazon
  9. Diverse fire / lipire 12V
  10. sursa de alimentare - Amazon
  11. 12V -> 5V convertor buck - Amazon

* Există flexibilitate atunci când vine vorba de selectarea acestei părți.

NOTĂ: Puteți începe cea mai mare parte a acestui proiect doar cu raspberry Pi, în timp ce așteptați livrarea altor articole.

Pasul 2: Pasul 2: Cablare și electronică

Pasul 2: Cablare și electronică
Pasul 2: Cablare și electronică
Pasul 2: Cablare și electronică
Pasul 2: Cablare și electronică
  1. Asamblați Lumina
    1. Cablajul luminii trebuie să ruleze 12 + către lumină.
    2. Rulați negativ de la lumină printr-unul dintre tranzistoare.
    3. Emmetrul tranzistorului ajunge la sol.
    4. Colectorul tranzistorului merge la Raspberry Pi.
  2. Asamblați sunetul

    1. Rulați sunetul din dreapta sau din stânga de la PI la amplificator
    2. Rulați + 5V la amplificator
    3. Rulați amplificatorul la al 2-lea tranzistor.
    4. Rulați emmetrul celui de-al doilea tranzitor la masă
    5. Rulați colectorul tranzistorului către Raspberry Pi
  3. Asamblați cablajul la PI
  4. Aceasta este instrucțiunile de identificare pentru PI (unele dintre acestea sunt configurabile prin intermediul JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Lumina 10 (GPIO15)
    4. Sunet dreapta - GPIO 18

Pasul 3: Pasul 3: Configurarea software-ului sistemului de operare

  1. Pregătiți Raspberry Pi W

    1. Raspberry pi trebuie să ruleze o versiune recentă a Raspbian (sau a altui Debian).
    2. Recomandat să urmați aceste instrucțiuni:
    3. Asigurați-vă că includeți fișierul wifi wpa_supplicant.
    4. Puneți fișierul ssh pe sdcard pentru a permite accesul ssh.
  2. Pregătiți software-ul terță parte:

    1. Am automatizat acest proces pentru a trage toate instrumentele necesare de la terțe părți, dar nu ezitați să le rulați manual și să le examinați pentru a vă asigura că nu eșuează pașii.
    2. Descărcați și rulați următorul script:

Iată o defalcare a ceea ce face scriptul de instalare pentru configurarea sistemului de operare. Cel mai bine este să rulați aceste linii manual, astfel încât să puteți urmări erorile.

Antet script:

#! / bin / sh -e # poate fi apelat prin #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatizează acest script cu ceva de genul: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd și chei autorizate # note:

Actualizați software-ul la nivel de sistem de operare:

# 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

Configurare rețea. O parte din obiectivul de aici a fost de a permite configurarea sistemului printr-un punct de acces, pentru a vă conecta la propriul Wi-Fi, dar acest lucru nu a fost încă testat până acum. În prezent, se recomandă utilizarea metodei wpa_supplicant pentru configurarea wifi.

#networking setupecho nhllight> / etc / hostname #TODO: reparați / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # notă: altă configurare se face prin fișierele de configurare și shell-ul este tras ca parte a actualizării

Actualizați bibliotecile de noduri și noduri

#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 LICENȚĂ cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: face link sym pentru nodul binar? apt-get remove -y --purge npm node nodejs

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

# actualizare Nod

#instalați dependențele nodului în exportul directorului NHL NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - remediați faptul că șchiopul nu va instala la nivel global

cd / opt / nhl npm install lame # lame, este lame, nu va instala global cp -R / opt / nhl / node_modules / lame $ NODE_PATH npm install speaker #wont install global cp -R / opt / nhl / node_modules / speaker $ NODE_PATH npm install i2c-bus #wont install global cp -R / opt / nhl / node_modules / i2c-bus $ NODE_PATH npm install oled-i2c-bus #wont install global cp -R / opt / nhl / node_modules / oled-i2c-bus $ NODE_PATH npm install lcd #wont install global cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm install lcdi2c #wont install global cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

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

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

npm install onoff #wont install global

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

#npm install pm2 #wont install global

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express #wont install global #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# orice module globale

npm instala expres body-parser copil_proces pm2 -g

Trageți cel mai recent cod:

#pull git codecd / opt / nhl #JSON este o singură creație 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 script automatizat pentru a instala orice altceva pentru NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma … | sudo -E bash -

Descarcă coarnele!

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

actualizați fișierele de configurare Raspberry pi - - ar putea fi necesar să vă schimbați sistemul

#config file updates # add sound 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: este necesar? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: setează volumul, 60%?

Automatizați automatizarea, cum ar fi pornirea și actualizările de cod:

# actualizare rc.local # NOTĂ: mutarea fișierului, deoarece standardul include o „ieșire” în ultima linie, deci nu se poate adăuga pur și simplu 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: trebuie să adăugați ceva pentru a face actualizările periodice ale software-ului săptămânal ca acesta # Poate doar să copiați acest fișier direct în folderul 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

Lucruri diverse, cum ar fi setarea fusului orar:

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

# actualizați variabila de mediu cu node_path

cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: definiți acest lucru pentru nodul self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Utilizați PM2 pentru configurarea serverului nodului:

#TODO: test setup PM2cd / tmp / npm install -g pm2 pm2 start 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 salvați pm2 startup exit 0

Pasul 4: Pasul 4: Actualizați configurația JSON

Configurați fișierul de configurare JSON pentru echipa pe care o preferați etc. Acest fișier se află în / opt / nhl GO CAPITALS! config fișier JSON

Software-ul folosește un fișier JSON pentru a configura hardware-ul și echipa pe care o urmăriți. Echipa poate fi setată prin intermediul serverului web care va rula, dar configurarea hardware trebuie setată manual:

Iată o explicație a fiecărei valori posibile:

  • myteam: acesta este codul cu 3 litere al echipei pe care doriți să o urmăriți
  • depanare: valorile posibile sunt 1 (adevărat) sau 0 (fals) și vor controla cât de mult este înregistrat jurnalul.
  • ieșire: aceasta este metoda prin care trebuie afișate scorurile / detaliile. Valorile posibile sunt:

    • lcd: acesta este lcd 2004
    • consolă: aceasta va scrie doar la terminal (pentru rularea liniei de comandă)
    • oled: suport pentru afișarea SSD6404 oled
  • lumină: există două tipuri de lumini acceptate

    • alarmă: aceasta va conduce un singur GPIO pentru pornirea / oprirea unui tranzistor
    • multi-led: acceptă un led multicolor sau mai multe
    • niciunul: nici o lumină atașată
  • amp: acesta este GPIO care conduce tranzistorul pentru amplificator

Recomandat: