Kazalo:
- 1. korak: 1. korak: Sestavite svoje dele
- 2. korak: 2. korak: Ožičenje in elektronika
- 3. korak: 3. korak: Namestitev programske opreme operacijskega sistema
- 4. korak: 4. korak: Posodobite konfiguracijo JSON
Video: Nočna hokejska luč NHL in LCD: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Uvod
"NHL Light" je za ljubitelje hokeja, ki želijo slediti svoji ekipi, vendar si ne morejo ogledati vsake tekme. Njegova najboljša lastnost je, da simulira gol z hokejskim rogom (po meri vaše ekipe) in svetlobo.
Poleg hokejskega roga in luči ima "NHL Light" zaslon, ki prikazuje trenutni ali zadnji rezultat igre, čas igre ali uro naslednje tekme ter trenutni datum in uro.
"NHL Light" deluje na preprostem seznamu delov, ki je enostaven za sestavljanje elektronike, in kodi, ki je prosto dostopna.
Lastnosti
- Spletna stran temelji na konfiguraciji za izbiro vaše ekipe in wifi
- Lahka in hupa, ko vaša ekipa zadene (tudi če ste v gosteh)
- Predvaja zvok, ki oznanja začetek igre
- Predvaja zvok za naznanitev zaključka igre
- Zagotavlja čas in datum naslednje igre, če ni v teku.
- Prikaže trenutni čas in obdobje igre, če je igra v teku.
- Prikaže trenutni datum in čas.
1. korak: 1. korak: Sestavite svoje dele
Tu je seznam delov.
-
Raspberry Pi W*
- Amazon
- Moj najraje dobim pri Microcenteru, vendar ga na spletu za manj dobim na drugih mestih.
- $10
- SD kartica (najmanj 4 GB)*
- zvočnik - Amazon - ~ 2 USD *
- amp - PAM8403* - Amazon - ~ 1 USD vsak
- svetloba - Amazon - ~ 5 USD
-
Etui - 1 USD*
- Michael's
- Priporočam majhno leseno ohišje za obrt iz Michaelove obrtne trgovine, a prepustite vam!
-
LCD I2C 2004 - 3-7 USD
- Amazon
- Koda podpira 3 vrste LCD -jev, toda I2C 2004 sem se odločil za najboljšo vrednost in velikost. (Možen je tudi SSD1306)
- 2 tranzistorja - 2N2222A- Amazon
- Ostale žice / spajkanje 12V
- napajanje - Amazon
- 12V -> 5V dolar pretvornik - Amazon
*Pri izbiri tega dela obstaja prožnost.
OPOMBA: Večino tega projekta lahko začnete samo z malinovim Pi, medtem ko čakate na pošiljanje drugih predmetov.
2. korak: 2. korak: Ožičenje in elektronika
-
Sestavite svetlobo
- Ožičenje luči naj bo 12 + do luči.
- Skozi enega od tranzistorjev speljite negativno svetlobo.
- Emmetter tranzistorja pade na tla.
- Zbiralec tranzistorja gre na Raspberry Pi.
-
Sestavite zvok
- Zaženite desni ali levi zvok od PI do ojačevalnika
- Napajajte +5V do ojačevalnika
- Ozemljite ojačevalnik do 2. tranzistorja.
- Emmetter drugega tranzistorja spustite na tla
- Zaženite zbiralnik tranzistorja do Raspberry Pi
- Sestavite ožičenje na PI
-
To so navodila za pinout za PI (nekatere od teh je mogoče konfigurirati prek JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Svetloba 10 (GPIO15)
- Zvok v redu - GPIO 18
-
3. korak: 3. korak: Namestitev programske opreme operacijskega sistema
-
Pripravite Raspberry Pi W
- Rasberry pi mora izvajati najnovejšo različico Raspbiana (ali drugega Debiana).
- Priporočljivo je, da sledite tem navodilom:
- Vključite datoteko wpa_supplicant wifi.
- Datoteko ssh postavite na kartico sdcard, da omogočite dostop ssh.
-
Pripravite programsko opremo tretje osebe:
- Ta postopek sem avtomatiziral tako, da potegnem vsa potrebna orodja tretjih oseb, vendar jih lahko zaženete ročno in pregledate, da se prepričate, da koraki ne uspejo.
- Prenesite in zaženite naslednji skript:
Tukaj je razčlenitev namestitvenega skripta za nastavitev operacijskega sistema. Najbolje je, da te vrstice zaženete ročno, da boste lahko opazovali napake.
Glava skripta:
#!/bin/sh -e #lahko pokličete prek #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: avtomatizirajte ta skript z nekaj takega: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: nastavitev wifi # TODO: nastavitev gesla in pooblaščenih ključev # opombe:
Posodobite programsko opremo na ravni operacijskega sistema:
#apt-get stuff (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #Splošno Dev apt-get install -y git build-bistven 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
Nastavitev omrežja. Del tega cilja je bil omogočiti konfiguriranje sistema prek dostopne točke, povezavo z lastnim wifi, vendar to še ni bilo v celoti preizkušeno. Trenutno je za nastavitev wifi priporočljivo uporabiti metodo wpa_supplicant.
#networking setupecho nhllight>/etc/hostname #TODO: popravite/etc/hosts #TODO: nastavitev br0 mkdir/etc/hostapd/ #opomba: druga nastavitev se izvede prek konfiguracijskih datotek in lupina se potegne kot del posodobitve
Posodobite knjižnice vozlišč in vozlišč
#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 LICENCA cp -R */usr/local/rm -R/tmp/node-v $ {nodeverzija} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: naredi povezavo sym za binarno vozlišče? apt -get remove -y --purge npm vozlišče nodejs
#Nastavitev vozliščamkdir/opt/nhl mkdir/opt/nhl/dnevniki mkdir/opt/nhl/rogovi mkdir/opt/nhl/node_modules/
#update Node
#instalirajte odvisnosti vozlišč v imenik nhl izvoz NODE_PATH =/usr/local/lib/node_modules
#HACK - TODO - popravite, da hromi ne bodo nameščeni po vsem svetu
cd/opt/nhl npm install lame # lame, je hrom, ne bo nameščen globalno 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 namestite vodilo i2c #ne namestite globalno cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm namestite oled-i2c-bus #ne namestite globalno cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm namestite lcd #ne namestite globalno cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm namestite lcdi2c #ne namestite globalno cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH
npm install oled-font-5x7 #wont install globalno
cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH
npm install onoff #wont install globalno
cp -R/opt/nhl/node_modules/onoff $ NODE_PATH
#npm install pm2 #ne namestite globalno
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #wont install globalno #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# kateri koli globalni modul
npm install express body -parser child_process pm2 -g
Povlecite najnovejšo kodo:
#pull git codecd/opt/nhl #JSON je enkratno ustvarjanje 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… #pokliči avtomatiziran skript za namestitev vsega drugega za curl NHL -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Prenesite rogove!
#pull hornscd/opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
posodobite konfiguracijske datoteke Raspberry pi - - bo morda treba spremeniti za vaš sistem
#posodobitve datotek #config#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 #vklopite i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. txt
#TODO: ali je to potrebno? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules
amixer cset numid = 1
#TODO: nastavljena glasnost, 60%?
Avtomatizirajte avtomatizacijo, na primer zagon in posodobitve kode:
# update rc.local# OPOMBA: premaknite datoteko, ker standardna vsebuje "exit" v zadnji vrstici, zato je ni mogoče preprosto 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 izhod 0' >> /etc/rc.local
#TODO: moram dodati nekaj za redne tedenske posodobitve programske opreme, kot je ta# Mogoče preprosto kopirajte to datoteko neposredno v mapo 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, na primer nastavitev časovnega pasu:
ln -sf/usr/share/zoneinfo/America/New_York/etc/localtime
# posodobitev spremenljivke okolja s potjo vozlišča
cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: določite to za vozlišče self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Uporabite PM2 za nastavitev strežnika vozlišč:
#TODO: testna nastavitev PM2cd /tmp /npm install -g pm2 pm2 zagon 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 shrani pm2 zagon izhod 0
4. korak: 4. korak: Posodobite konfiguracijo JSON
Nastavite konfiguracijsko datoteko JSON za izbrano ekipo itd. Ta datoteka se nahaja v /opt /nhl GO CAPITALS! config datoteko JSON
Programska oprema uporablja datoteko JSON za konfiguracijo strojne opreme in ekipe, ki jo spremljate. Ekipo lahko nastavite prek spletnega strežnika, ki se bo izvajal, nastavitev strojne opreme pa morate nastaviti ročno:
Tu je razlaga vsake možne vrednosti:
- myteam: to je tričrkovna koda ekipe, ki ji želite slediti
- debug: Možne vrednosti so 1 (true) ali 0 (false) in bodo nadzorovale, koliko zapisovanja je zapisano.
-
output: to je metoda, s katero je treba prikazati rezultate/podrobnosti. Možne vrednosti so:
- lcd: to je lcd 2004
- console: to bo pisalo samo v terminal (za zagon ukazne vrstice)
- oled: podpora za oled zaslon SSD6404
-
luč: podpirata se dve vrsti luči
- alarm: to bo poganjalo en sam GPIO za vklop/izklop tranzistorja
- multi-led: podpira večbarvno ali več LED
- nič: luč ni pritrjena
- amp: to je GPIO, ki poganja tranzistor za ojačevalnik
Priporočena:
Samodejna nočna luč za hodnik IoT z ESP8266: 4 koraki (s slikami)
Samodejna nočna luč za hodnik IoT z ESP8266: Ta projekt sem začel po navdihu luči stopnišča iz druge objave. Razlika je v tem, da možgani vezja uporabljajo ESP8266, kar pomeni, da bo prišla IoT naprava. V mislih imam nočno luč za hodnik za
Nočna luč Bokken: 4 koraki
Bokken Night Light: Pred leti sem treniral Kendo, potem pa sem s puščico do kolena. Zdaj je oprema, ki sem jo uporabil, v skladišču in sem pomislil: " Zakaj z njo ne bi naredili kaj uporabnega? &Quot; Bokken je meč iz trdega lesa, ki je predstavljal katano. Moja je bila poškodovana
DIY nizkocenovna hokejska miza: 27 korakov (s slikami)
DIY nizkocenovna hokejska miza: Profesionalna nastavitev zračnega hokeja je običajno na voljo samo v arkadah zaradi prefinjenih sistemov, ki so potrebni za njeno uporabo. Naš cilj je bil zgraditi mizo za zračni hokej DIY, ki bo to igralno izkušnjo prinesla doma. Z uporabo splošno dostopnih
Nočna luč Dr Who Tardis z Googlovim pomočnikom: 4 koraki (s slikami)
Nočna luč Dr Who Tardis z Googlovim pomočnikom: Hello Instructables in Dr. Who Fans Zato sem pred časom za svojega malega dečka zgradil manjšo različico tega, približno 20 cm visoko, in se mi je zdelo, da mora biti v hiši en oče. To je velika 35 -centimetrska nočna luč Tardis, ki jo poganja ESP8266 z
Preprosta nočna luč z uporabo pravljičnih luči: 3 koraki (s slikami)
Enostavna nočna luč z uporabo pravljičnih luči: Včasih sem uporabljal preprosto nočno žarnico, potem pa sem imel nekaj čudovitih pravljičnih luči, pomislil sem, zakaj jih ne bi uporabil kot nočno luč? To tudi preprečuje, da bi žarnica motila spanec, če bi kdaj vstala ponoči in kar je najpomembneje, razgled je neverjeten