Taula de continguts:

Llum i LCD d'hoquei de nit NHL: 4 passos (amb imatges)
Llum i LCD d'hoquei de nit NHL: 4 passos (amb imatges)

Vídeo: Llum i LCD d'hoquei de nit NHL: 4 passos (amb imatges)

Vídeo: Llum i LCD d'hoquei de nit NHL: 4 passos (amb imatges)
Vídeo: Колыма - родина нашего страха / Kolyma - Birthplace of Our Fear 2024, Desembre
Anonim
Image
Image
Llum i pantalla LCD d’hoquei de nit NHL
Llum i pantalla LCD d’hoquei de nit NHL

Introducció

El "NHL Light" és per als aficionats a l'hoquei que vulguin seguir el seu equip, però que no puguin veure tots els partits. La millor característica és que simula un gol amb una trompa d’hoquei (personalitzada per al vostre equip) i lleuger.

A més de la llum i la bocina d'hoquei, la "Llum NHL" té una pantalla que proporciona la puntuació actual, o la part més recent, l'hora del joc o l'hora del proper partit i la data i l'hora actuals.

El "NHL Light" funciona amb una llista senzilla de peces, que és fàcil de muntar electrònica, i un codi que està disponible de forma gratuïta.

Característiques

  1. Configuració basada en pàgines web per seleccionar el vostre equip i el vostre wifi
  2. Toca llum i trompa quan el vostre equip marca (fins i tot quan sou l'equip visitant)
  3. Sona per anunciar el començament del joc
  4. Reprodueix un so per anunciar la conclusió del joc
  5. Proporciona l'hora i la data del proper partit, si no hi ha cap joc en curs.
  6. Mostra el temps i el període de joc actuals, si el joc està en curs.
  7. Mostra la data i l'hora actuals.

Pas 1: Pas 1: Munteu les peces

Pas 1: Munteu les peces
Pas 1: Munteu les peces

Aquí hi ha una llista de peces.

  1. Raspberry Pi W *

    1. Amazon
    2. Prefereixo obtenir el meu de Microcenter, però es pot trobar en línia per menys en altres llocs.
    3. $10
  2. Targeta SD (mínim 4 GB) *
  3. altaveu - Amazon - ~ $ 2 *
  4. amp - PAM8403 * - Amazon - ~ $ 1 cadascun
  5. light - Amazon - ~ 5 $
  6. Estoig: 1 $ *

    1. De Michael
    2. Us recomano una petita caixa artesanal de fusta de la botiga d'artesania de Michael, però us la deixaré.
  7. LCD I2C 2004: entre 3 i 7 dòlars

    1. Amazon
    2. El codi admet tres tipus de LCD, però I2C 2004 és el que he establert com a millor valor i mida. (També és possible SSD1306)
  8. 2 transistors - 2N2222A- Amazon
  9. Diversos cables / soldadura 12V
  10. font d'alimentació: Amazon
  11. Convertidor de 12 V -> 5 V de dòlars: Amazon

* Hi ha flexibilitat a l’hora de seleccionar aquesta part.

NOTA: Podeu iniciar la major part d’aquest projecte només amb el vostre raspberry Pi mentre espereu que s’envien altres articles.

Pas 2: pas 2: cablejat i electrònica

Pas 2: cablejat i electrònica
Pas 2: cablejat i electrònica
Pas 2: cablejat i electrònica
Pas 2: cablejat i electrònica
  1. Muntar la llum

    1. El cablejat de la llum ha de funcionar 12 + fins a la llum.
    2. Executar negatiu des de la llum a través d’un dels transistors.
    3. L'emetter del transistor va a terra.
    4. El col·lector del transistor va al Raspberry Pi.
  2. Muntar so

    1. Executeu so dret o esquerre des de PI fins a l'amplificador
    2. Executeu + 5V fins a l'amplificador
    3. Executeu la massa d'amplificador al segon transistor.
    4. Executeu l’emetre del 2n transitor a terra
    5. Executeu el col·lector del transistor al Raspberry Pi
  3. Munteu el cablejat al PI
  4. Aquestes són les instruccions per identificar el PI (algunes d'aquestes es poden configurar mitjançant el JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Llum 10 (GPIO15)
    4. So correcte: GPIO 18

Pas 3: Pas 3: Configuració del programari del sistema operatiu

  1. Prepareu el Raspberry Pi W

    1. El rasberry pi ha d'executar una versió recent de Raspbian (o un altre Debian).
    2. Es recomana seguir aquestes instruccions:
    3. Assegureu-vos d’incloure el fitxer wifi wpa_supplicant.
    4. Poseu el fitxer ssh a la sdcard per permetre l'accés ssh.
  2. Prepareu el programari de tercers:

    1. He automatitzat aquest procés per obtenir totes les eines de tercers necessàries, però no dubteu a executar-les manualment i reviseu-les per assegurar-vos que no hi hagi cap pas.
    2. Descarregueu i executeu el següent script:

Aquí teniu un desglossament del que fa l’escript d’instal·lació per configurar el sistema operatiu. El millor és executar aquestes línies manualment perquè pugueu detectar errors.

Capçalera de guió:

#! / bin / sh -e # es pot trucar mitjançant #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatitza aquest script amb alguna cosa així: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: configuració wifi # TODO: configuració passwd i claus autoritzades # notes:

Actualitzeu el programari a nivell de SO:

# 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

Configuració de la xarxa. Part de l'objectiu aquí era permetre que el sistema es configurés mitjançant un punt d'accés per connectar-se al vostre propi wifi, però fins ara no s'ha provat completament. Actualment es recomana utilitzar el mètode wpa_supplicant per configurar el wifi.

#networking setupecho nhllight> / etc / hostname #TODO: corregiu el / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # note: l'altra configuració es realitza mitjançant els fitxers de configuració i l'intèrpret d'ordres com a part de l'actualització

Actualitzeu les biblioteques de nodes i nodes

#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 LICÈNCIA cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: fer l'enllaç sym per al node binari? 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 /

Node #update

#install dependencies de nodes a l'exportació del directori nhl NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - soluciona que els coixos no s'instal·laran globalment

cd / opt / nhl npm install lame # lame, is lame, no s’instal·larà globalment 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 install 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

npm install oled-font-5x7 #wont install globalment

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

npm install onoff # no s'instal·larà globalment

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

#npm install pm2 # no s’instal·larà globalment

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express # no s’instal·larà globalment #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# qualsevol mòdul global

npm instal·lar express body-parser process_infant pm2 -g

Traieu el codi més recent:

#pull git codecd / opt / nhl #JSON és una sola vegada wget de creació --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 script automatitzat per instal·lar tota la resta de NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma … | sudo -E bash -

Descarregueu-vos les banyes!

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

actualitzeu els fitxers de configuració de Raspberry pi - - pot ser que hagueu de canviar el vostre sistema

#config file updates # 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: cal això? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: volum definit, 60%?

Automatitzeu l'automatització, com ara arrencades i actualitzacions de codi:

# update rc.local # NOTA: es mou el fitxer, perquè l'estàndard inclou una "sortida" a l'última línia, de manera que no es pot afegir simplement 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 sortida 0' >> /etc/rc.local

#TODO: cal afegir alguna cosa per fer les actualitzacions de programari periòdiques setmanalment com aquesta # Potser només copieu aquest fitxer directament a la carpeta 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

Coses diverses, com ara establir la zona horària:

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

# variable d'entorn d'actualització amb node_path

cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: definiu-ho per al node self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Utilitzeu PM2 per a la configuració del servidor de nodes:

#TODO: test setup PM2cd / tmp / npm install -g pm2 pm2 start 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 save pm2 startup exit 0

Pas 4: pas 4: actualitzeu la configuració JSON

Configureu el fitxer de configuració JSON per a l'equip que preferiu, etc. Aquest fitxer es troba a / opt / nhl GO CAPITALS. config fitxer JSON

El programari utilitza un fitxer JSON per configurar el maquinari i l'equip que esteu seguint. L'equip es pot configurar a través del servidor web que s'executarà, però la configuració del maquinari s'ha de configurar manualment:

Aquí teniu una explicació de cada valor possible:

  • myteam: aquest és el codi de 3 lletres de l'equip que voleu seguir
  • depuració: els valors possibles són 1 (cert) o 0 (fals) i controlaran la quantitat de registre que s'ha escrit.
  • sortida: aquest és el mètode mitjançant el qual es mostren les puntuacions / detalls. Els valors possibles són:

    • lcd: és el lcd del 2004
    • consola: això només escriurà al terminal (per executar la línia d'ordres)
    • oled: suport per a la pantalla SSD6404 oled
  • llum: hi ha dos tipus de llums suportats

    • alarma: accionarà un sol GPIO per encendre / apagar un transistor
    • multi-led: admet un led multicolor o múltiples
    • cap: no hi ha llum lligada
  • amp: aquest és el GPIO que condueix el transistor per a l'amplificador

Recomanat: