Talaan ng mga Nilalaman:

NHL Bedside Hockey Light at LCD: 4 na Hakbang (na may Mga Larawan)
NHL Bedside Hockey Light at LCD: 4 na Hakbang (na may Mga Larawan)

Video: NHL Bedside Hockey Light at LCD: 4 na Hakbang (na may Mga Larawan)

Video: NHL Bedside Hockey Light at LCD: 4 na Hakbang (na may Mga Larawan)
Video: GamePro Issue #23 - June 1991 2024, Nobyembre
Anonim
Image
Image
NHL Bedside Hockey Light at LCD
NHL Bedside Hockey Light at LCD

Panimula

Ang "NHL Light" ay para sa mga tagahanga ng hockey na nais na sundin ang kanilang koponan, ngunit hindi mapanood ang bawat laro. Ang pinakamagandang tampok ay ang simulate nito ng isang marka ng layunin sa isang hockey sungay (pasadyang sa iyong koponan), at ilaw.

Bilang karagdagan sa hockey sungay at ilaw, ang "NHL Light", ay may isang display na nagbibigay ng kasalukuyang, o pinakahuling iskor ng laro, oras ng laro o oras ng susunod na laro, at kasalukuyang petsa at oras.

Ang "NHL Light" ay tumatakbo sa isang simpleng listahan ng mga bahagi, madali i-ipon ang electronics, at code na malayang magagamit.

Mga Tampok

  1. Ang pagsasaayos batay sa webpage para sa pagpili ng iyong koponan at wifi
  2. Nagpe-play ng ilaw at sungay kapag nagmamarka ang iyong koponan (kahit na ikaw ang nasa malayo na koponan)
  3. Nagpe-play ng tunog upang ipahayag ang simula ng laro
  4. Nagpe-play ng tunog upang ipahayag ang pagtatapos ng laro
  5. Nagbibigay ng oras at petsa ng susunod na laro, kung walang isinasagawang laro.
  6. Ipinapakita ang kasalukuyang oras at oras ng laro, kung ang laro ay isinasagawa.
  7. Ipinapakita ang kasalukuyang petsa at oras.

Hakbang 1: Hakbang 1: Ipunin ang Iyong Mga Bahagi

Hakbang 1: Ipunin ang Iyong Mga Bahagi
Hakbang 1: Ipunin ang Iyong Mga Bahagi

Narito ang isang listahan ng mga bahagi.

  1. Raspberry Pi W *

    1. Amazon
    2. Mas gusto kong makuha ang minahan mula sa Microcenter, ngunit matatagpuan sa online nang mas kaunti sa ibang mga lugar.
    3. $10
  2. SD Card (4gb minimum) *
  3. speaker - Amazon - ~ $ 2 *
  4. amp - PAM8403 * - Amazon - ~ $ 1 bawat isa
  5. ilaw - Amazon - ~ $ 5
  6. Kaso - $ 1 *

    1. Kay Michael
    2. Inirerekumenda ko ang maliit na kaso ng gawa sa kahoy na bapor mula sa tindahan ng bapor ni Michael, ngunit iiwan ako sa iyo!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Sinusuportahan ng code ang 3 uri ng LCD, ngunit ang I2C 2004 ay ang naayos ko bilang pinakamahusay na halaga at laki. (Posible rin ang SSD1306)
  8. 2 transistors - 2N2222A- Amazon
  9. Misc Wires / solder12V
  10. supply ng kuryente - Amazon
  11. 12V -> 5V buck converter - Amazon

* May kakayahang umangkop pagdating sa pagpili ng bahaging ito.

TANDAAN: Maaari kang magsimula sa karamihan ng proyektong ito sa pamamagitan lamang ng iyong raspberry Pi, habang naghihintay ka para sa iba pang mga item na maipapadala.

Hakbang 2: Hakbang 2: Mga Kable at Elektronika

Hakbang 2: Mga Kable at Elektronika
Hakbang 2: Mga Kable at Elektronika
Hakbang 2: Mga Kable at Elektronika
Hakbang 2: Mga Kable at Elektronika
  1. Magtipon ng Liwanag

    1. Ang mga kable para sa ilaw ay upang patakbuhin ang 12 + sa ilaw.
    2. Patakbuhin ang negatibo mula sa ilaw sa pamamagitan ng isa sa mga transistor.
    3. Ang emmetter ng transistor ay napupunta sa lupa.
    4. Ang kolektor ng transistor ay papunta sa Raspberry Pi.
  2. Magtipon ng tunog

    1. Patakbuhin ang kanan o kaliwa na tunog mula sa PI patungo sa amp
    2. Patakbuhin ang + 5V sa amp
    3. Patakbuhin ang amp ground sa ika-2 transistor.
    4. Patakbuhin ang emmetter ng 2nd transisitor sa lupa
    5. Patakbuhin ang kolektor ng transistor sa Raspberry Pi
  3. Magtipon ng mga kable sa PI
  4. Ito ang mga tagubilin sa pinout para sa PI (ang ilan sa mga ito ay mai-configure sa pamamagitan ng JSON)

    1. LCD

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

Hakbang 3: Hakbang 3: Pag-set up ng System Software System

  1. Ihanda ang Raspberry Pi W

    1. Ang rasberry pi ay dapat na nagpapatakbo ng isang kamakailang bersyon ng Raspbian (o iba pang Debian).
    2. Inirerekumenda na sundin ang mga tagubiling ito:
    3. Siguraduhing isama ang wifi wpa_supplicant file.
    4. Ilagay ang ssh file sa sdcard upang payagan ang pag-access ng ssh.
  2. Ihanda ang software ng ika-3 partido:

    1. Na-automate ko ang prosesong ito upang hilahin ang lahat ng kinakailangang mga tool sa 3rd party, ngunit huwag mag-atubiling patakbuhin ang mga ito nang manu-mano, at suriin upang matiyak na walang mga hakbang na mabibigo.
    2. I-download at patakbuhin ang sumusunod na script:

Narito ang isang pagkasira ng kung ano ang ginagawa ng script ng pag-install para sa pag-set up ng operating system. Pinakamainam na patakbuhin nang manu-mano ang mga linyang ito, upang mapanood mo ang mga error.

Header ng Script:

Ang #! / bin / sh -e # ay maaaring tawagan sa pamamagitan ng #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: i-automate ang script na ito sa isang bagay tulad ng: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd at mga pinahintulutang key # note:

I-update ang software sa antas ng OS:

# 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

Pag-setup sa network. Bahagi ng layunin dito ay payagan ang system na mai-configure sa pamamagitan ng isang access point, upang kumonekta sa iyong sariling wifi, ngunit hindi pa ito ganap na nasusubukan hanggang ngayon. Kasalukuyang inirerekumenda na gamitin ang wpa_supplicant na pamamaraan para sa pag-set up ng wifi.

#networking setupecho nhllight> / etc / hostname #TODO: ayusin ang / etc / host #TODO: setup br0 mkdir / etc / hostapd / # note: ang iba pang pag-setup ay tapos na sa pamamagitan ng mga config file at shell na hinila bilang isang bahagi ng pag-update

I-update ang mga aklatan ng Node at node

#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 LICENSE cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: gumawa ng sym link para sa node binary? apt-get alisin -y --purge npm node nodejs

#Node setupmkdir / opt / nhl mkdir / opt / nhl / log mkdir / opt / nhl / sungay mkdir / opt / nhl / node_modules /

#update Node

# i-install ang mga dependency ng node sa direktoryo ng nhl export NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - ayusin ang pilay na kostumbre sa buong mundo

cd / opt / nhl npm install lame # lame, ay pilay, hindi mai-install sa buong mundo ang cp -R / opt / nhl / node_modules / pilay $ NODE_PATH npm i-install ang speaker #wont install globally cp -R / opt / nhl / node_modules / speaker $ NODE_PATH Nag-install ako ng 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 install globally cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

Nag-install ako ng oled-font-5x7 #wont install globally

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

Nag-install ako onoff #wont install pandaigdigan

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

# anumang mga pandaigdigang modyul

npm i-install ang express body-parser child_process pm2 -g

Hilahin ang pinakabagong code:

#pull git codecd / opt / nhl #JSON ay isang beses sa paglikha ng 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 automated script upang mai-install ang lahat para sa NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma… | sudo -E bash -

I-download ang mga sungay!

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

i-update ang mga Raspberry pi config file - - maaaring kailanganing baguhin para sa iyong system

#config file update # 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: kailangan ba ito? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: itakda ang dami, 60%?

I-automate ang pag-aautomat, tulad ng mga pag-update ng bootup at code:

# update rc.local # TANDAAN: paglipat ng file, dahil ang pamantayan ng isa ay may kasamang isang "exit" sa huling linya, kaya't hindi maaaring idagdag lamang ang 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: kailangang magdagdag ng isang bagay upang gawin ang regular na pag-update ng software lingguhan tulad nito # Siguro kopyahin lamang ang file na ito nang direkta pababa sa rc.weekly folder? 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

Mga iba pang bagay, tulad ng pagtatakda ng timezone:

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

# i-update ang variable ng kapaligiran na may node_path

cp / etc / environment /etc/en environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: tukuyin ito para sa node self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Gamitin ang PM2 para sa pag-setup ng node server:

#TODO: subukan ang pag-set up PM2cd / tmp / npm install -g pm2 pm2 startup cd / opt / nhl pm2 simulan ang NHL_work.js --node-args = "- max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "- max_old_space_size 100M" pm2 makatipid pm2 startup exit 0

Hakbang 4: Hakbang 4: I-update ang Configuration ng JSON

I-set up ang iyong JSON file ng pagsasaayos para sa koponan na gusto mo, atbp. Ang file na ito ay matatagpuan sa / opt / nhl GO CAPITALS! config JSON file

Gumagamit ang software ng isang JSON file upang mai-configure ang hardware at koponan na sinusundan mo. Ang pangkat ay maaaring itakda sa pamamagitan ng webserver na tatakbo, ngunit ang pag-setup ng hardware ay kailangang itakda nang manu-mano:

Narito ang isang paliwanag sa bawat posibleng halaga:

  • myteam: ito ang 3 titik code ng koponan na nais mong sundin
  • debug: Ang mga posibleng halaga ay 1 (totoo) o 0 (hindi totoo), at makokontrol kung magkano ang na-log out.
  • output: ito ang pamamaraan kung saan ipapakita ang mga marka / detalye. Ang mga posibleng halaga ay:

    • lcd: ito ang 2004 lcd
    • console: magsusulat lamang ito sa terminal (para sa pagpapatakbo ng linya ng utos)
    • oled: suporta para sa SSD6404 oled display
  • ilaw: mayroong dalawang uri ng mga ilaw na sinusuportahan

    • alarma: magdadala ito ng isang solong GPIO para sa pag-on / off ng isang transistor
    • multi-led: sumusuporta sa isang maraming kulay, o maraming mga leds
    • wala: walang ilaw na nakakabit
  • amp: ito ang GPIO na nagtutulak sa transistor para sa amp

Inirerekumendang: