Sisällysluettelo:

NHL -yövalo ja LCD -näyttö: 4 vaihetta (kuvilla)
NHL -yövalo ja LCD -näyttö: 4 vaihetta (kuvilla)

Video: NHL -yövalo ja LCD -näyttö: 4 vaihetta (kuvilla)

Video: NHL -yövalo ja LCD -näyttö: 4 vaihetta (kuvilla)
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Marraskuu
Anonim
Image
Image
NHL -yöpöytävalo ja LCD
NHL -yöpöytävalo ja LCD

Johdanto

"NHL Light" on tarkoitettu jääkiekko -faneille, jotka haluavat seurata joukkuettaan, mutta eivät voi katsoa jokaista peliä. Sen paras ominaisuus on, että se simuloi maalintekopalloa jääkiekkotorvella (tiimillesi mukautettuna) ja valolla.

Jääkiekon torven ja valon lisäksi "NHL Light" -näytössä on näyttö, joka näyttää nykyisen tai viimeisimmän pelin pisteet, peliajan tai seuraavan pelin ajan ja nykyisen päivämäärän ja kellonajan.

"NHL Light" toimii yksinkertaisella osaluettelolla, joka on helppo koota elektroniikkaa ja koodi on vapaasti saatavilla.

ominaisuudet

  1. Verkkosivupohjainen kokoonpano tiimisi ja wifi: n valitsemiseksi
  2. Pelaa valoa ja sarvea, kun joukkue tekee maalin (vaikka olisit vierasjoukkue)
  3. Toistaa äänen ilmoittaakseen pelin alun
  4. Toistaa äänen ilmoittaakseen pelin päättymisestä
  5. Näyttää seuraavan pelin ajan ja päivämäärän, jos peli ei ole käynnissä.
  6. Näyttää nykyisen peliajan ja jakson, jos peli on käynnissä.
  7. Näyttää nykyisen päivämäärän ja kellonajan.

Vaihe 1: Vaihe 1: Kokoa osat

Vaihe 1: Kokoa osat
Vaihe 1: Kokoa osat

Tässä on osaluettelo.

  1. Vadelma Pi W*

    1. Amazon
    2. Haluan mieluummin hankkia omani Microcenteristä, mutta muualta löytyy halvemmalla.
    3. $10
  2. SD -kortti (vähintään 4 Gt)*
  3. kaiutin - Amazon - ~ $ 2 *
  4. vahvistin - PAM8403* - Amazon - ~ $ 1 kpl
  5. valo - Amazon - ~ 5 dollaria
  6. Kotelo - $ 1*

    1. Mikaelin
    2. Suosittelen pieniä puisia käsityölaukkuja Michaelin käsityöliikkeestä, mutta ne jätetään sinulle!
  7. I2C 2004 LCD - 3-7 dollaria
    1. Amazon
    2. Koodi tukee kolmea LCD -näyttöä, mutta I2C 2004 on se, jonka olen määrittänyt parhaaksi arvoksi ja kokoon. (SSD1306 on myös mahdollista)
  8. 2 transistoria - 2N2222A- Amazon
  9. Muut johdot / juote 12V
  10. virtalähde - Amazon
  11. 12V -> 5V buck -muunnin - Amazon

*Tämän osan valitsemisessa on joustavuutta.

HUOMAUTUS: Voit aloittaa suurimman osan tästä projektista vain vadelma Pi: lläsi odottaessasi muiden tuotteiden lähettämistä.

Vaihe 2: Vaihe 2: Johdotus ja elektroniikka

Vaihe 2: Johdotus ja elektroniikka
Vaihe 2: Johdotus ja elektroniikka
Vaihe 2: Johdotus ja elektroniikka
Vaihe 2: Johdotus ja elektroniikka
  1. Kokoa valo

    1. Valon johdotus on kulkea 12 + valolle.
    2. Aja negatiivisesti valosta yhden transistorin läpi.
    3. Transistorin emmetri menee maahan.
    4. Transistorin kerääjä menee Raspberry Pi: hen.
  2. Kokoa ääni

    1. Suorita oikea tai vasen ääni PI: stä vahvistimeen
    2. Kytke +5V vahvistimeen
    3. Suorita vahvistimen maa toiseen transistoriin.
    4. Aja toisen transistorin emmetri maahan
    5. Suorita transistorin kerääjä Raspberry Pi: lle
  3. Kokoa johdot PI: hen
  4. Nämä ovat PI: n pinout -ohjeet (jotkut näistä ovat konfiguroitavissa JSONin kautta)

    1. LCD -näyttö

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Light 10 (GPIO15)
    4. Ääni oikein - GPIO 18

Vaihe 3: Vaihe 3: Käyttöjärjestelmän ohjelmiston asennus

  1. Valmista Raspberry Pi W

    1. Rasberry pi: ssä on oltava Raspbianin (tai muun Debianin) uusin versio.
    2. Suosittelemme noudattamaan näitä ohjeita:
    3. Muista sisällyttää wifi wpa_supplicant -tiedosto.
    4. Laita ssh -tiedosto sdcardille salliaksesi ssh -käyttöoikeuden.
  2. Valmistele kolmannen osapuolen ohjelmisto:

    1. Olen automatisoinut tämän prosessin vetämään kaikki tarvittavat kolmannen osapuolen työkalut, mutta voit suorittaa ne manuaalisesti ja tarkistaa, ettei mikään vaihe epäonnistu.
    2. Lataa ja suorita seuraava komentosarja:

Tässä on erittely siitä, mitä käyttöjärjestelmän asennusohjelma tekee. On parasta suorittaa nämä rivit manuaalisesti, jotta voit tarkkailla virheitä.

Skriptin otsikko:

#!/bin/sh -e #voidaan soittaa #curl -sL: n kautta https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatisoi tämä komentosarja jollakin seuraavalla tavalla: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: aseta wifi # TODO: määritä salasana ja valtuutetut avaimet # huomautukset:

Päivitä ohjelmisto käyttöjärjestelmän tasolla:

#apt-get stuff (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #Yleinen 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

Verkkoasetukset. Osa tavoitteesta oli sallia järjestelmän konfigurointi tukiaseman kautta, muodostaa yhteys omaan wifi -verkkoon, mutta tätä ei ole vielä testattu täysin. Tällä hetkellä suositellaan wpa_supplicant -menetelmän käyttöä wifi -yhteyden määrittämiseen.

#networking setupecho nhllight>/etc/hostname #TODO: korjaa/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #Huomautus: muut asetukset tehdään määritystiedostojen ja kuoren avulla, jotka on vedetty osana päivitystä

Päivitä solmu- ja solmukirjastoja

#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 LISENSSI cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: tehdä sym linkin binaarille? apt -get remove -y --purge npm node nodejs

#Node setupmkdir/opt/nhl mkdir/opt/nhl/lokit mkdir/opt/nhl/sarvet mkdir/opt/nhl/node_modules/

#päivitä solmu

#asenna solmukohtaiset riippuvuudet nhl -hakemiston vientiin NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - korjaa, että ontto ei asennu maailmanlaajuisesti

cd/opt/nhl npm asenna lame # lame, on ontu, ei asenna maailmanlaajuisesti cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm install speaker #wont install globally cp -R/opt/nhl/node_modules/kaiutin $ NODE_PATH npm install i2c-bus #ei asenna maailmanlaajuisesti 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 install globally 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 #ei asenneta maailmanlaajuisesti

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

#npm install pm2 #ei asenneta maailmanlaajuisesti

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #ei asenneta maailmanlaajuisesti #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# kaikki globaalit moduulit

npm install express body -parser child_process pm2 -g

Vedä uusin koodi:

#pull git codecd/opt/nhl #JSON on kertaluonteinen luominen 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 automatized script to install all other for NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Lataa sarvet!

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

päivitä Raspberry pi -määritystiedostot - - joudut ehkä muuttamaan järjestelmääsi

#config tiedostopäivitykset#lisää ääni 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 = päällä / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = päällä / n' >>/boot/config. txt

#TODO: tarvitaanko tätä? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: aseta äänenvoimakkuus, 60%?

Automatisoi automaatio, kuten käynnistys ja koodipäivitykset:

# update rc.local# HUOMAUTUS: tiedoston siirtäminen, koska vakio sisältää viimeisen rivin "exit", joten sitä ei voi yksinkertaisesti liittää 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: täytyy lisätä jotain säännöllisten ohjelmistopäivitysten tekemiseksi viikoittain näin# Ehkä vain kopioi tämä tiedosto suoraan rc.weekly -kansioon? 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

Muut asiat, kuten aikavyöhykkeen asettaminen:

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

# päivitä ympäristömuuttuja solmupolulla

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: määritä tämä solmulle self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Hyödynnä PM2 solmupalvelimen asennuksessa:

#TODO: testiasetukset 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 tallenna pm2 käynnistyksen lopetus 0

Vaihe 4: Vaihe 4: Päivitä JSON -kokoonpano

Määritä JSON -määritystiedosto haluamallesi tiimille jne. Tämä tiedosto sijaitsee kohteessa /opt /nhl GO CAPITALS! config JSON -tiedosto

Ohjelmisto käyttää JSON -tiedostoa määrittääksesi seuraamasi laitteiston ja tiimin. Tiimi voidaan asettaa käynnissä olevan verkkopalvelimen kautta, mutta laitteiston asennus on määritettävä manuaalisesti:

Tässä on selitys jokaisesta mahdollisesta arvosta:

  • myteam: tämä on sen joukkueen 3 -kirjaiminen koodi, jota haluat seurata
  • debug: Mahdolliset arvot ovat 1 (tosi) tai 0 (epätosi), ja ne määräävät kuinka paljon kirjausta kirjoitetaan.
  • output: tämä on menetelmä, jolla tulokset/yksityiskohdat näytetään. Mahdollisia arvoja ovat:

    • lcd: tämä on vuoden 2004 lcd
    • konsoli: tämä kirjoittaa vain päätelaitteelle (komentoriville)
    • oled: SSD6404 -näytön tuki
  • valo: tuettuja valoja on kahdenlaisia
    • hälytys: tämä ajaa yhden GPIO: n transistorin kytkemiseksi päälle/pois
    • monivalo: tukee monivärisiä tai useita ledejä
    • ei mitään: ei valaisinta
  • amp: tämä on GPIO, joka ohjaa vahvistimen transistoria

Suositeltava: