Sadržaj:

NHL noćno hokejsko svjetlo i LCD: 4 koraka (sa slikama)
NHL noćno hokejsko svjetlo i LCD: 4 koraka (sa slikama)

Video: NHL noćno hokejsko svjetlo i LCD: 4 koraka (sa slikama)

Video: NHL noćno hokejsko svjetlo i LCD: 4 koraka (sa slikama)
Video: Faca iz grada: Anthony London (selektor i profesionalni igrač hokeja) // emisija @konacnopetak 2024, Novembar
Anonim
Image
Image
NHL noćno hokejsko svjetlo i LCD
NHL noćno hokejsko svjetlo i LCD

Uvod

"NHL Light" je za ljubitelje hokeja koji žele pratiti svoj tim, ali ne mogu gledati svaku utakmicu. Njegova najbolja karakteristika je to što simulira gol sa hokejaškom trubom (prilagođeno vašem timu) i laganim.

Osim hokejaške trube i svjetla, "NHL Light" ima ekran koji prikazuje trenutni ili posljednji rezultat utakmice, vrijeme ili vrijeme sljedeće utakmice, te trenutni datum i vrijeme.

"NHL Light" radi na jednostavnoj listi dijelova, koja se lako sastavlja, i elektronici, te kodu koji je slobodno dostupan.

Karakteristike

  1. Konfiguracija zasnovana na web stranici za odabir vašeg tima i WiFi
  2. Svira i trubi kada vaš tim postigne gol (čak i kada ste u gostima)
  3. Pušta zvuk koji najavljuje početak igre
  4. Reproducira zvuk koji najavljuje završetak igre
  5. Pruža vrijeme i datum sljedeće utakmice, ako igra nije u toku.
  6. Prikazuje trenutno vrijeme i period igre, ako je igra u toku.
  7. Prikazuje trenutni datum i vrijeme.

Korak 1: Korak 1: Sastavite dijelove

Korak 1: Sastavite dijelove
Korak 1: Sastavite dijelove

Ovdje je lista dijelova.

  1. Raspberry Pi W*

    1. Amazon
    2. Radije bih nabavio svoj iz Microcentera, ali mogu se jeftinije pronaći na internetu na drugim mjestima.
    3. $10
  2. SD kartica (najmanje 4 gb)*
  3. zvučnik - Amazon - ~ 2 USD *
  4. pojačalo - PAM8403* - Amazon - ~ 1 USD svaki
  5. light - Amazon - ~ 5 USD
  6. Futrola - 1 USD*

    1. Michael's
    2. Preporučujem malu drvenu kutiju za zanate iz Michaelove zanatske radnje, ali to prepuštam vama!
  7. I2C 2004 LCD - 3-7 USD

    1. Amazon
    2. Kôd podržava 3 vrste LCD -a, ali I2C 2004 sam odlučio za najbolju vrijednost i veličinu. (SSD1306 je takođe moguć)
  8. 2 tranzistora - 2N2222A- Amazon
  9. Ostalo Žice / lemljenje12V
  10. napajanje - Amazon
  11. 12V -> 5V konverter u dolarima - Amazon

*Postoji fleksibilnost pri odabiru ovog dijela.

NAPOMENA: Većinu ovog projekta možete započeti samo s malinom Pi, dok čekate da se drugi artikli isporuče.

Korak 2: Korak 2: Ožičenje i elektronika

Korak 2: Ožičenje i elektronika
Korak 2: Ožičenje i elektronika
Korak 2: Ožičenje i elektronika
Korak 2: Ožičenje i elektronika
  1. Sastavite svjetlo

    1. Ožičenje svjetla mora ići 12 + do svjetla.
    2. Prođite negativno iz svjetlosti kroz jedan od tranzistora.
    3. Emimetr tranzistora ide na masu.
    4. Kolektor tranzistora ide na Raspberry Pi.
  2. Sastavite zvuk

    1. Pustite desni ili lijevi zvuk od PI do pojačala
    2. Uključite +5V do pojačala
    3. Pokrenite pojačalo pojačala do drugog tranzistora.
    4. Emmetter drugog tranzisitora okrenite na zemlju
    5. Pokrenite sakupljač tranzistora na Raspberry Pi
  3. Sastavite ožičenje na PI
  4. Ovo su upute za pinout za PI (neke od njih se mogu konfigurirati putem JSON -a)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Svjetlo 10 (GPIO15)
    4. Zvuk u redu - GPIO 18

Korak 3: Korak 3: Postavljanje softvera operativnog sistema

  1. Pripremite Raspberry Pi W

    1. Rasberry pi mora imati najnoviju verziju Raspbiana (ili drugog Debiana).
    2. Preporučuje se slijediti ova uputstva:
    3. Obavezno uključite wifi datoteku wpa_supplicant.
    4. Stavite ssh datoteku na sdcard kako biste omogućili ssh pristup.
  2. Pripremite softver treće strane:

    1. Automatizirao sam ovaj proces kako bih povukao sve potrebne alate treće strane, ali slobodno ih pokrenite ručno i pregledajte kako biste bili sigurni da koraci ne uspijevaju.
    2. Preuzmite i pokrenite sljedeću skriptu:

Evo raščlambe onoga što radi instalacijska skripta za postavljanje operativnog sistema. Najbolje je pokrenuti ove redove ručno, kako biste mogli pratiti greške.

Zaglavlje skripte:

#!/bin/sh -e #se može pozvati putem #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatizirajte ovu skriptu nečim poput: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: postavljanje wifi -a # TODO: postavljanje lozinke i ovlašteni ključevi # napomene:

Ažurirajte softver na nivou OS:

#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

Podešavanje mreže. Ovdje je dio cilja bio omogućiti konfiguriranje sistema putem pristupne tačke, povezivanje sa vašim vlastitim WiFi -em, ali to još nije u potpunosti testirano. Trenutno se preporučuje upotreba metode wpa_supplicant za postavljanje WiFi -ja.

#umrežavanje setupecho nhllight>/etc/hostname #TODO: popravite/etc/hosts #TODO: postavljanje br0 mkdir/etc/hostapd/ #napomena: drugo postavljanje se vrši putem konfiguracijskih datoteka i ljuska je povučena kao dio ažuriranja

Ažurirajte čvor i biblioteke čvorova

#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 čvor-v $ {nodeverzija} -linux-armv6l. tar.xz cd čvor-v $ {nodeverzija} -linux-armv6l rm -f *.md rm -f LICENCA cp -R */usr/lokalno/rm -R/tmp/čvor-v $ {nodeverzija} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: napraviti sim vezu za binarni čvor? apt -get remove -y --purge npm čvor nodejs

#Podešavanje čvoramkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/rogovi mkdir/opt/nhl/node_modules/

#update Node

#instalirajte zavisnosti čvorova u nhl direktorij izvoz NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - popravite to hromi se neće instalirati globalno

cd/opt/nhl npm install lame # lame, je hrom, neće se globalno instalirati cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm install speaker # wont install globally cp -R/opt/nhl/node_modules/speaker $ NODE_PATH npm install i2c-bus #wont install globally cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm install oled-i2c-bus #wont install globally 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 global global 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 install pm2 #wont install globally

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

# bilo koji globalni modul

npm install express body -parser child_process pm2 -g

Povucite najnoviji kod:

#pull git codecd/opt/nhl #JSON je jednokratna kreacija 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 automatizirana skripta za instaliranje svega ostalog za NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Preuzmite trube!

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

ažurirajte konfiguracijske datoteke Raspberry pi - - možda će se morati promijeniti za vaš sistem

#ažuriranja datoteka config#dodaj zvuk cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #uključite i2c printf '\ n / ndtparam = i2c1 = na / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. poruka

#TODO: je li ovo potrebno? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amikser cset numid = 1

#TODO: podesite jačinu zvuka, 60%?

Automatizirajte automatizaciju, poput pokretanja i ažuriranja koda:

# update rc.local# NAPOMENA: premještanje datoteke, jer standardna uključuje "izlaz" u zadnjem retku, pa se ne može jednostavno dodati 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 izlaz 0' >> /etc/rc.local

#TODO: treba dodati nešto za redovno ažuriranje softvera sedmično poput ovoga# Možda samo kopirati ovu datoteku direktno u fasciklu 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

Razne stvari, poput postavljanja vremenske zone:

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

# ažuriranje varijable okruženja sa node_path

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: definirajte ovo za čvor self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Iskoristite PM2 za postavljanje poslužitelja čvora:

#TODO: postavljanje testa PM2cd /tmp /npm instalacija -g pm2 pm2 pokretanje cd /opt /nhl pm2 početak NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 početak webserver.js --node -args = "-max_old_space_size 100M" pm2 spremanje pm2 izlaz pri pokretanju 0

Korak 4: Korak 4: Ažurirajte JSON konfiguraciju

Postavite svoju JSON konfiguracijsku datoteku za tim koji želite, itd. Ova datoteka se nalazi u /opt /nhl GO CAPITALS! config JSON datoteku

Softver koristi JSON datoteku za konfiguriranje hardvera i tima koji pratite. Tim se može postaviti putem web servera koji će biti pokrenut, ali hardversko postavljanje treba postaviti ručno:

Evo objašnjenja svake moguće vrijednosti:

  • myteam: ovo je troslovni kod tima koji želite pratiti
  • otklanjanje grešaka: Moguće vrijednosti su 1 (tačno) ili 0 (netačno), i kontrolirat će koliko je zapisano.
  • izlaz: ovo je metoda pomoću koje se ocjene/detalji prikazuju. Moguće vrijednosti su:

    • lcd: ovo je lcd iz 2004. godine
    • console: ovo će pisati samo na terminal (za pokretanje naredbenog retka)
    • oled: podrška za SSD6404 oled ekran
  • svjetlo: podržane su dvije vrste svjetala
    • alarm: ovo će pokretati jedan GPIO za uključivanje/isključivanje tranzistora
    • multi-LED: podržava višebojne ili više LED dioda
    • ništa: nije pričvršćeno svetlo
  • pojačalo: ovo je GPIO koji pokreće tranzistor za pojačalo

Preporučuje se: