Turinys:

NHL ledo ritulio šviesa ir LCD ekranas: 4 žingsniai (su nuotraukomis)
NHL ledo ritulio šviesa ir LCD ekranas: 4 žingsniai (su nuotraukomis)

Video: NHL ledo ritulio šviesa ir LCD ekranas: 4 žingsniai (su nuotraukomis)

Video: NHL ledo ritulio šviesa ir LCD ekranas: 4 žingsniai (su nuotraukomis)
Video: Умные часы GOKOO S11: что нужно знать // Обзор из реальной жизни 2024, Lapkritis
Anonim
Image
Image
NHL ledo ritulio lemputė ir LCD ekranas
NHL ledo ritulio lemputė ir LCD ekranas

Įvadas

„NHL Light“skirtas ledo ritulio gerbėjams, norintiems sekti savo komandą, bet negalintiems stebėti visų rungtynių. Geriausias bruožas yra tai, kad jis imituoja įvarčio įvartį ledo ritulio ragu (pagal jūsų komandą) ir šviesa.

Be ledo ritulio rago ir šviesos, „NHL Light“turi ekraną, kuriame pateikiamas dabartinis arba naujausio žaidimo rezultatas, žaidimo laikas arba kito žaidimo laikas bei dabartinė data ir laikas.

„NHL Light“veikia pagal paprastą dalių sąrašą, kurį lengva surinkti elektroniką ir kodą, kuris yra laisvai prieinamas.

funkcijos

  1. Tinklalapiu pagrįsta konfigūracija, skirta pasirinkti komandą ir „Wi -Fi“
  2. Žaidžia šviesiai ir ragu, kai komanda įmuša įvartį (net kai esate svečio komanda)
  3. Paleidžiamas garsas, skelbiantis žaidimo pradžią
  4. Paleidžia garsą, kuris praneša apie žaidimo pabaigą
  5. Pateikia kito žaidimo laiką ir datą, jei nevyksta žaidimas.
  6. Rodo dabartinį žaidimo laiką ir laikotarpį, jei žaidimas vyksta.
  7. Rodo dabartinę datą ir laiką.

1 žingsnis: 1 žingsnis: Surinkite savo dalis

1 žingsnis: Surinkite savo dalis
1 žingsnis: Surinkite savo dalis

Čia yra dalių sąrašas.

  1. Raspberry Pi W*

    1. „Amazon“
    2. Aš norėčiau gauti savo iš „Microcenter“, bet kitur galima rasti pigiau internete.
    3. $10
  2. SD kortelė (mažiausiai 4 GB)*
  3. garsiakalbis - „Amazon“- ~ 2 USD *
  4. stiprintuvas - PAM8403* - „Amazon“- ~ 1 USD
  5. šviesa - „Amazon“- ~ 5 USD
  6. Dėklas - 1 USD*

    1. Michaelio
    2. Aš rekomenduoju nedidelį medinį amatų dėklą iš Michaelo amatų parduotuvės, bet paliksiu jums!
  7. „I2C 2004“LCD - 3–7 USD

    1. „Amazon“
    2. Kodas palaiko 3 tipų LCD, tačiau „I2C 2004“yra tas, kurį aš nusprendžiau kaip geriausią vertę ir dydį. (Galima ir SSD1306)
  8. 2 tranzistoriai - 2N2222A- „Amazon“
  9. Įvairūs laidai / litavimas 12V
  10. maitinimo šaltinis - „Amazon“
  11. 12V -> 5V buck konverteris - „Amazon“

*Yra lankstumas renkantis šią dalį.

PASTABA: didžiąją šio projekto dalį galite pradėti naudodami tik savo aviečių Pi, kol laukiate kitų prekių pristatymo.

2 veiksmas: 2 žingsnis: laidai ir elektronika

2 žingsnis: laidai ir elektronika
2 žingsnis: laidai ir elektronika
2 žingsnis: laidai ir elektronika
2 žingsnis: laidai ir elektronika
  1. Surinkite šviesą

    1. Šviesos laidai turi būti nukreipti 12 + į šviesą.
    2. Eikite neigiamai nuo šviesos per vieną iš tranzistorių.
    3. Tranzistoriaus emmetras eina į žemę.
    4. Tranzistoriaus kolektorius eina į „Raspberry Pi“.
  2. Surinkite garsą

    1. Paleiskite dešinįjį arba kairįjį garsą iš PI į stiprintuvą
    2. Paleiskite +5V prie stiprintuvo
    3. Paleiskite stiprintuvo žemę prie 2 -ojo tranzistoriaus.
    4. Paleiskite antrojo tranzistoriaus emmetrą prie žemės
    5. Paleiskite tranzistoriaus kolektorių prie „Raspberry Pi“
  3. Surinkite laidus prie PI
  4. Tai yra PI nurodymo instrukcijos (kai kurias iš jų galima konfigūruoti naudojant JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. „Light 10“(GPIO15)
    4. Garsas teisingas - GPIO 18

3 veiksmas: 3 veiksmas: operacinės sistemos programinės įrangos sąranka

  1. Paruoškite „Raspberry Pi W“

    1. „Rasberry pi“turi paleisti naujausią „Raspbian“(arba kitos „Debian“) versiją.
    2. Rekomenduojama laikytis šių nurodymų:
    3. Būtinai įtraukite „wifi wpa_supplicant“failą.
    4. Įdėkite ssh failą į sdcard, kad leistumėte ssh prieigą.
  2. Paruoškite trečiosios šalies programinę įrangą:

    1. Aš automatizavau šį procesą, kad gaučiau visus reikalingus trečiųjų šalių įrankius, tačiau nedvejodami paleiskite juos rankiniu būdu ir peržiūrėkite, kad įsitikintumėte, jog jokie veiksmai nepavyksta.
    2. Atsisiųskite ir paleiskite šį scenarijų:

Čia pateikiamas operacinės sistemos diegimo scenarijaus aprašymas. Geriausia šias eilutes vykdyti rankiniu būdu, kad galėtumėte stebėti klaidas.

Scenarijaus antraštė:

#!/bin/sh -e #galima skambinti per #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatizuokite šį scenarijų naudodami kažką panašaus: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: sąranka wifi # TODO: sąrankos slaptažodis ir įgalioti raktai # pastabos:

Atnaujinkite programinę įrangą OS lygiu:

#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

Tinklo sąranka. Dalis šio tikslo buvo leisti sukonfigūruoti sistemą per prieigos tašką, prisijungti prie savo „Wi -Fi“, tačiau tai dar nebuvo visiškai išbandyta. Šiuo metu rekomenduojama naudoti „wpa_supplicant“metodą „Wi -Fi“nustatymui.

#networking setupecho nhllight>/etc/hostname #TODO: pataisykite/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #pastaba: kita sąranka atliekama naudojant konfigūracijos failus ir apvalkalą, ištrauktą kaip atnaujinimo dalis

Atnaujinkite mazgų ir mazgų bibliotekas

#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 LICENCIJA cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: padaryti mazgo dvejetainio simbolio nuorodą? apt -get remove -y --purge npm node nodejs

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

#atnaujinti mazgą

#diegti mazgų priklausomybes į nhl katalogo eksportą NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - pataisykite, kad šlubas nebus įdiegtas visame pasaulyje

cd/opt/nhl npm install lame # lame, yra šlykštus, neįdiegiamas visame pasaulyje cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm install garsiakalbis #wont install globally cp -R/opt/nhl/node_modules/speaker $ NODE_PATH npm įdiegti „i2c-bus“#neįdiegti visame pasaulyje cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm įdiegti oled-i2c-bus #neįdiegti visame pasaulyje $ 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 įdiegti oled-font-5x7 #neįdiegti visame pasaulyje

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

npm install onoff #nebus įdiegta visame pasaulyje

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

#npm install pm2 #nebus įdiegtas visame pasaulyje

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express # #nebus įdiegta visame pasaulyje #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# bet kokie globalūs moduliai

npm install express body -parser child_process pm2 -g

Paimkite naujausią kodą:

#pull git codecd/opt/nhl #JSON yra vienkartinis kūrimas 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 automatinis scenarijus, skirtas viskam kitam įdiegti NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Atsisiųskite ragus!

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

atnaujinti „Raspberry pi“konfigūracijos failus - gali tekti pakeisti jūsų sistemoje

#config failų atnaujinimai#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: ar to reikia? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules

amixer cset numid = 1

#TODO: nustatyti garsumą, 60%?

Automatizuokite automatizavimą, pvz., Įkrovos ir kodo atnaujinimus:

# update rc.local# PASTABA: perkelkite failą, nes standartiniame įraše paskutinėje eilutėje yra išėjimas, todėl negalima tiesiog pridėti 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: reikia ką nors pridėti, kad kas savaitę atliktumėte reguliarius programinės įrangos atnaujinimus# Gal tiesiog nukopijuokite šį failą tiesiai į aplanką 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

Įvairūs dalykai, pvz., Laiko juostos nustatymas:

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

# atnaujinkite aplinkos kintamąjį naudodami node_path

cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: nustatykite tai mazgui self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Naudokite PM2 mazgų serverio sąrankai:

#TODO: bandymo sąranka PM2cd /tmp /npm install -g pm2 pm2 paleisties 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 išsaugoti pm2 paleisties išėjimą 0

4 veiksmas: 4 veiksmas: atnaujinkite JSON konfigūraciją

Nustatykite JSON konfigūracijos failą norimai komandai ir pan. Šis failas yra /opt /nhl GO CAPITALS! konfigūruoti JSON failą

Programinė įranga naudoja JSON failą, kad sukonfigūruotų jūsų stebimą aparatūrą ir komandą. Komandą galima nustatyti naudojant veikiančią žiniatinklio serverį, tačiau aparatūros sąranką reikia nustatyti rankiniu būdu:

Čia pateikiamas kiekvienos galimos vertės paaiškinimas:

  • myteam: tai yra komandos, kurią norite sekti, trijų raidžių kodas
  • derinimas: galimos reikšmės yra 1 (tiesa) arba 0 (klaidinga), ir jos valdys, kiek registruojama.
  • išvestis: tai metodas, kuriuo turi būti rodomi balai/detalės. Galimos vertės:

    • LCD: tai yra 2004 m. LCD
    • konsolė: tai bus rašoma tik į terminalą (komandinei eilutei paleisti)
    • oled: SSD6404 OLED ekrano palaikymas
  • šviesa: palaikomi dviejų tipų žibintai

    • aliarmas: tai paskatins vieną GPIO įjungti/išjungti tranzistorių
    • kelių lempučių: palaiko daugiaspalvius arba kelis šviesos diodus
    • nėra: nėra šviesos
  • stiprintuvas: tai GPIO, kuris valdo stiprintuvo tranzistorių

Rekomenduojamas: