Tartalomjegyzék:

NHL éjjeli jégkoronglámpa és LCD: 4 lépés (képekkel)
NHL éjjeli jégkoronglámpa és LCD: 4 lépés (képekkel)

Videó: NHL éjjeli jégkoronglámpa és LCD: 4 lépés (képekkel)

Videó: NHL éjjeli jégkoronglámpa és LCD: 4 lépés (képekkel)
Videó: A Thunderman család Előtt és után SOKKOLÓ 😱 2024, December
Anonim
Image
Image
NHL éjjeli jégkoronglámpa és LCD
NHL éjjeli jégkoronglámpa és LCD

Bevezetés

Az "NHL Light" azoknak a jégkorong rajongóknak szól, akik szeretnék követni csapatukat, de nem tudnak minden meccset nézni. A legjobb tulajdonsága az, hogy gólszerzést szimulál a jégkorong kürtjével (az Ön csapatának megfelelően) és a fényen.

A jégkorongkürtön és a fényen kívül az "NHL Light" kijelzője rendelkezik az aktuális vagy a legutóbbi játék pontszámával, a játék idejével vagy a következő mérkőzés idejével, valamint az aktuális dátummal és idővel.

Az "NHL Light" az alkatrészek egyszerű listáján fut, könnyen összeállítható elektronikával és szabadon hozzáférhető kóddal.

Jellemzők

  1. Weboldal -alapú konfiguráció a csapat és a wifi kiválasztásához
  2. Könnyedén játszik, amikor csapata gólt szerez (még akkor is, ha Ön a vendégcsapat)
  3. Hangot ad a játék kezdetének bejelentéséhez
  4. Hangot ad a játék befejezésének bejelentéséhez
  5. A következő játék időpontját és dátumát adja meg, ha nincs folyamatban.
  6. Megjeleníti az aktuális játékidőt és időszakot, ha a játék folyamatban van.
  7. Az aktuális dátumot és időt jeleníti meg.

1. lépés: 1. lépés: Szerelje össze az alkatrészeket

Lépés: Szerelje össze az alkatrészeket
Lépés: Szerelje össze az alkatrészeket

Itt egy alkatrészlista.

  1. Raspberry Pi W*

    1. amazon
    2. Inkább a Microcenterből szerezem be az enyémet, de máshol olcsóbban megtalálható az interneten.
    3. $10
  2. SD kártya (minimum 4 GB)*
  3. hangszóró - Amazon - ~ 2 USD *
  4. erősítő - PAM8403* - Amazon - egyenként ~ 1 USD
  5. fény - Amazon - ~ 5 dollár
  6. Tok - 1 USD*

    1. Michaelé
    2. Ajánlom a kis fa kézműves tokot Michael kézműves boltjából, de meghagyja neked!
  7. I2C 2004 LCD - 3-7 dollár

    1. amazon
    2. A kód 3 típusú LCD -t támogat, de az I2C 2004 az egyik legjobb érték és méret. (SSD1306 is lehetséges)
  8. 2 tranzisztor - 2N2222A- Amazon
  9. Egyéb vezetékek / forrasztó 12V
  10. tápegység - Amazon
  11. 12V -> 5V bak konverter - Amazon

*Van rugalmasság az alkatrész kiválasztásakor.

MEGJEGYZÉS: A projekt nagy részét csak a málna Pi -jével kezdheti, miközben várakozik a többi elem szállítására.

2. lépés: 2. lépés: huzalozás és elektronika

2. lépés: Kábelezés és elektronika
2. lépés: Kábelezés és elektronika
2. lépés: Kábelezés és elektronika
2. lépés: Kábelezés és elektronika
  1. Szerelje össze a fényt

    1. A lámpa vezetékezése 12 + -ig a fény felé vezet.
    2. Futtassa negatív irányba a fényt az egyik tranzisztoron keresztül.
    3. A tranzisztor emmetere földre kerül.
    4. A tranzisztor gyűjtője a Raspberry Pi -hez megy.
  2. Hang összeállítása
    1. Jobb vagy bal hang futtatása a PI -ről az erősítőre
    2. Futtassa a +5V -ot az erősítőre
    3. Futtassa az erősítő földjét a 2. tranzisztorhoz.
    4. Futtassa a 2. tranzisztor emmetterét a földhöz
    5. Futtassa a tranzisztor kollektorát a Raspberry Pi -hez
  3. Szerelje össze a vezetékeket a PI -hez
  4. Ez a PI pinout utasítása (ezek egy része a JSON segítségével konfigurálható)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Light 10 (GPIO15)
    4. Hang jobb - GPIO 18

3. lépés: 3. lépés: Az operációs rendszer szoftverének beállítása

  1. Készítse elő a Raspberry Pi W -t

    1. A rasberry pi -n a Raspbian (vagy más Debian) legújabb verzióját kell futtatni.
    2. Javasoljuk, hogy kövesse ezeket az utasításokat:
    3. Ügyeljen arra, hogy tartalmazza a wifi wpa_supplicant fájlt.
    4. Helyezze az ssh fájlt az sdcardra az ssh hozzáférés engedélyezéséhez.
  2. Készítse elő a harmadik féltől származó szoftvert:

    1. Automatizáltam ezt a folyamatot, hogy lehívja az összes szükséges harmadik féltől származó eszközt, de bátran futtassa ezeket manuálisan, és ellenőrizze, hogy egyetlen lépés sem sikertelen.
    2. Töltse le és futtassa a következő szkriptet:

Itt található az operációs rendszer beállításához szükséges telepítési parancsfájl részletezése. A legjobb, ha ezeket a sorokat manuálisan futtatja, így figyelheti a hibákat.

Szkript fejléce:

#!/bin/sh -e #hívható a #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatizálja ezt a szkriptet valami ilyesmivel: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: wifi beállítása # TODO: passwd és engedélyezett kulcsok beállítása # megjegyzések:

Szoftver frissítése OS szinten:

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

Hálózati beállítás. A cél egy része az volt, hogy lehetővé tegye a rendszer konfigurálását egy hozzáférési ponton keresztül, hogy csatlakozhasson a saját wifi -jéhez, de ezt még nem tesztelték teljesen. Jelenleg a wpa_supplicant módszer használata ajánlott a wifi beállításához.

#networking setupecho nhllight>/etc/hostname #TODO: javítsa meg az/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #megjegyzést: a többi beállítás a frissítés részeként lehúzott konfigurációs fájlokon és héjon keresztül történik

Frissítse a csomópont- és csomópont -könyvtárakat

#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 LICENC cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: készítsen sym linket bináris csomóponthoz? apt -get remove -y --purge npm node nodejs

#Node setupmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/horns mkdir/opt/nhl/node_modules/

#frissítés csomópont

#telepítse a csomópontfüggőségeket az nhl könyvtár exportálásába NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - javítsd ki, hogy a béna nem települ globálisan

cd/opt/nhl npm install lame # béna, béna, nem települ globálisan npm telepítés i2c-busz #nem telepíthető globálisan cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm telepítés oled-i2c-busz #nem telepíthető globálisan 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 #nem telepíthető globálisan

cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH

npm install onoff #nem települ globálisan

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

#npm install pm2 #nem telepíthető globálisan

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #nem települ globálisan #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# bármilyen globális modul

npm install express body -parser gyermek_folyamat pm2 -g

Húzza le a legújabb kódot:

#pull git codecd/opt/nhl #A JSON egyszeri létrehozás 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 automatizált szkript az összes többi telepítéséhez az NHL curl -sL számára https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Töltse le a kürtöket!

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

frissítse a Raspberry pi konfigurációs fájljait - - esetleg módosítania kell a rendszerben

#config fájlfrissítések#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 #turn on i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. txt

#TODO: szükség van erre? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: hangerő beállítása, 60%?

Automatizálja az automatizálást, például a rendszerindítást és a kódfrissítéseket:

# update rc.local# MEGJEGYZÉS: a fájl áthelyezése, mivel a standard egy "exit" -t tartalmaz az utolsó sorban, ezért nem lehet egyszerűen hozzáfűzni az 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: hozzá kell adni valamit a rendszeres szoftverfrissítésekhez, így hetente# Lehet, hogy csak másolja ezt a fájlt közvetlenül az rc.weekly mappába? 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

Egyéb dolgok, például az időzóna beállítása:

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

# frissítse a környezeti változót a node_path útvonallal

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: ezt határozza meg a csomópont self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Használja a PM2 -t a csomópont -kiszolgáló beállításához:

#TODO: tesztbeállítás 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 mentés pm2 indítási kilépés 0

4. lépés: 4. lépés: Frissítse a JSON konfigurációt

Állítsa be JSON konfigurációs fájlját a kívánt csapat számára, stb. Ez a fájl a /opt /nhl GO CAPITALS mappában található! config JSON fájl

A szoftver egy JSON -fájlt használ a követendő hardver és csapat beállításához. A csapat beállítható a futó webszerveren keresztül, de a hardver beállítását manuálisan kell beállítani:

Íme a lehetséges értékek magyarázata:

  • myteam: ez a követendő csapat 3 betűs kódja
  • hibakeresés: A lehetséges értékek 1 (igaz) vagy 0 (hamis), és szabályozzák a naplózás kiírásának mértékét.
  • output: ez az a módszer, amellyel a pontszámokat/részleteket meg kell jeleníteni. A lehetséges értékek a következők:

    • lcd: ez a 2004 -es lcd
    • konzol: ez csak a terminálra ír (parancssor futtatásához)
    • oled: támogatja az SSD6404 OLED kijelzőt
  • fény: kétféle lámpa támogatott

    • riasztás: ez egyetlen GPIO -t hajt végre a tranzisztor be- és kikapcsolásához
    • több LED: támogatja a többszínű vagy több LED-et
    • nincs: nincs fény
  • erősítő: ez a GPIO hajtja meg az erősítő tranzisztorát

Ajánlott: