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: Migaj z nami - NHL (Nočna hokejska liga) 2024, Studeni
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 svoju momčad, ali ne mogu gledati svaku utakmicu. Njegova najbolja karakteristika je to što simulira gol s hokejskim rogom (prilagođeno vašoj momčadi) i svjetlom.

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

"NHL Light" radi na jednostavnom popisu dijelova koji se lako sastavljaju, i kodu koji je slobodno dostupan.

Značajke

  1. Konfiguracija temeljena na web stranici za odabir vašeg tima i WiFi
  2. Svira i trubi kad vaša momčad zabije (čak i kad ste u gostima)
  3. Reproducira zvuk koji najavljuje početak igre
  4. Reproducira zvuk koji najavljuje završetak igre
  5. Pruža vrijeme i datum sljedeće igre, ako nije u tijeku.
  6. Prikazuje trenutno vrijeme i razdoblje igre, ako je igra u tijeku.
  7. Prikazuje trenutni datum i vrijeme.

Korak 1: Korak 1: Sastavite dijelove

Korak 1: Sastavite svoje dijelove
Korak 1: Sastavite svoje dijelove

Ovdje je popis dijelova.

  1. Malina Pi W*

    1. Amazon
    2. Radije bih nabavio svoj iz Microcentera, ali se na internetu može jeftinije pronaći 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. svjetlo - Amazon - ~ 5 USD
  6. Futrola - 1 USD*

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

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

*Postoji mogućnost fleksibilnosti 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. Provedite negativno svjetlo 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 2. tranzistora.
    4. Emmetter drugog tranzisitora pokrenite na tlo
    5. Pokrenite sakupljač tranzistora na Raspberry Pi
  3. Sastavite ožičenje na PI
  4. Ovo su upute za pinout za PI (neke 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 udesno - GPIO 18

Korak 3: Korak 3: Postavljanje softvera operacijskog sustava

  1. Pripremite Raspberry Pi W

    1. Rasberry pi mora imati najnoviju verziju Raspbiana (ili drugog Debiana).
    2. Preporučuje se slijediti ove upute:
    3. Svakako 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 postupak da povučem sve potrebne alate treće strane, ali slobodno ih ručno pokrenite i pregledajte kako biste bili sigurni da koraci ne uspijevaju.
    2. Preuzmite i pokrenite sljedeću skriptu:

Ovdje je pregled onoga što radi instalacijska skripta za postavljanje operacijskog sustava. Najbolje je pokrenuti ove retke ručno kako biste mogli promatrati pogreške.

Zaglavlje skripte:

#!/bin/sh -e #može se 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 razini OS -a:

#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

Postavljanje mreže. Ovdje je dio cilja bio omogućiti konfiguriranje sustava putem pristupne točke, povezivanje s vlastitim WiFi -jem, no to još nije u potpunosti testirano. Trenutačno se preporučuje korištenje metode wpa_supplicant za postavljanje WiFi -ja.

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

Ažurirajte čvor i knjižnice č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/lokalni/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

#Postavljanje čvoramkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/rogovi mkdir/opt/nhl/node_modules/

#ažuriraj čvor

#instalirajte ovisnosti čvorova u direktorij nhl 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š sustav

#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. txt

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

amikser cset numid = 1

#TODO: postavljena glasnoća, 60%?

Automatizirajte automatizaciju, poput pokretanja i ažuriranja koda:

# update rc.local# NAPOMENA: premještanje datoteke jer standardni uključuje "exit" 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: trebate dodati nešto za redovita ažuriranja softvera tjedno poput ovoga# Možda samo kopirati ovu datoteku izravno u mapu 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

Razno, poput postavljanja vremenske zone:

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

# ažuriranje varijable okruženja s 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: testno postavljanje PM2cd /tmp /npm install -g pm2 pm2 startup 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 spremi pm2 izlaz pri pokretanju 0

Korak 4: Korak 4: Ažurirajte JSON konfiguraciju

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

Softver koristi JSON datoteku za konfiguriranje hardvera i tima koje pratite. Tim se može postaviti putem web poslužitelja koji će biti pokrenut, ali postavljanje hardvera potrebno je postaviti ručno:

Evo objašnjenja svake moguće vrijednosti:

  • myteam: ovo je troslovni kôd tima koji želite slijediti
  • debug: Moguće vrijednosti su 1 (true) ili 0 (false), i kontrolirat će koliko je zapisano.
  • izlaz: ovo je metoda kojom se ocjene/pojedinosti prikazuju. Moguće vrijednosti su:

    • lcd: ovo je lcd iz 2004. godine
    • konzola: ovo će pisati samo na terminal (za pokretanje naredbenog retka)
    • oled: podrška za SSD6404 oled zaslon
  • 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: nema priključenog svjetla
  • pojačalo: ovo je GPIO koji pokreće tranzistor za pojačalo

Preporučeni: