Sadržaj:
Video: NHL noćno hokejsko svjetlo i LCD: 4 koraka (sa slikama)
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
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
- Konfiguracija temeljena na web stranici za odabir vašeg tima i WiFi
- Svira i trubi kad vaša momčad zabije (čak i kad ste u gostima)
- Reproducira zvuk koji najavljuje početak igre
- Reproducira zvuk koji najavljuje završetak igre
- Pruža vrijeme i datum sljedeće igre, ako nije u tijeku.
- Prikazuje trenutno vrijeme i razdoblje igre, ako je igra u tijeku.
- Prikazuje trenutni datum i vrijeme.
Korak 1: Korak 1: Sastavite dijelove
Ovdje je popis dijelova.
-
Malina Pi W*
- Amazon
- Radije bih nabavio svoj iz Microcentera, ali se na internetu može jeftinije pronaći na drugim mjestima.
- $10
- SD kartica (najmanje 4 gb)*
- zvučnik - Amazon - ~ 2 USD *
- pojačalo - PAM8403* - Amazon - ~ 1 USD svaki
- svjetlo - Amazon - ~ 5 USD
-
Futrola - 1 USD*
- Michaelova
- Preporučujem malu drvenu kutiju za zanate iz Michaelove zanatske trgovine, ali to prepuštam vama!
-
I2C 2004 LCD - 3-7 USD
- Amazon
- Kod podržava 3 vrste LCD -a, ali I2C 2004 sam odlučio za najbolju vrijednost i veličinu. (SSD1306 je također moguć)
- 2 tranzistora - 2N2222A- Amazon
- Ostalo Žice / lemljenje12V
- napajanje - Amazon
- 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
-
Sastavite svjetlo
- Ožičenje svjetla mora ići 12 + do svjetla.
- Provedite negativno svjetlo kroz jedan od tranzistora.
- Emimetr tranzistora ide na masu.
- Kolektor tranzistora ide na Raspberry Pi.
-
Sastavite zvuk
- Pustite desni ili lijevi zvuk od PI do pojačala
- Uključite +5V do pojačala
- Pokrenite pojačalo pojačala do 2. tranzistora.
- Emmetter drugog tranzisitora pokrenite na tlo
- Pokrenite sakupljač tranzistora na Raspberry Pi
- Sastavite ožičenje na PI
-
Ovo su upute za pinout za PI (neke se mogu konfigurirati putem JSON -a)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Svjetlo 10 (GPIO15)
- Zvuk udesno - GPIO 18
-
Korak 3: Korak 3: Postavljanje softvera operacijskog sustava
-
Pripremite Raspberry Pi W
- Rasberry pi mora imati najnoviju verziju Raspbiana (ili drugog Debiana).
- Preporučuje se slijediti ove upute:
- Svakako uključite wifi datoteku wpa_supplicant.
- Stavite ssh datoteku na sdcard kako biste omogućili ssh pristup.
-
Pripremite softver treće strane:
- 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.
- 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