Tabla de contenido:

Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)
Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)

Video: Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)

Video: Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)
Video: Momentos Embarazosos de la TELEVISIÓN en VIVO 2024, Noviembre
Anonim
Image
Image
Pantalla LCD y luz de hockey de cabecera de la NHL
Pantalla LCD y luz de hockey de cabecera de la NHL

Introducción

El "NHL Light" es para los fanáticos del hockey que quieren seguir a su equipo, pero no pueden ver todos los partidos. Su mejor característica es que simula un marcador de gol con un cuerno de hockey (personalizado para su equipo) y ligero.

Además de la bocina y la luz de hockey, la "NHL Light" tiene una pantalla que muestra la puntuación del juego actual o más reciente, la hora del juego o la hora del próximo juego y la fecha y hora actuales.

El "NHL Light" se ejecuta en una lista simple de piezas, que es fácil de ensamblar y un código que está disponible gratuitamente.

Características

  1. Configuración basada en página web para seleccionar tu equipo y wifi
  2. Suena la luz y la bocina cuando tu equipo anota (incluso cuando eres el equipo visitante)
  3. Reproduce sonido para anunciar el comienzo del juego.
  4. Reproduce un sonido para anunciar la conclusión del juego.
  5. Proporciona la hora y la fecha del próximo juego, si no hay ningún juego en curso.
  6. Muestra la hora y el período del juego actual, si el juego está en curso.
  7. Muestra la fecha y hora actuales.

Paso 1: Paso 1: Ensamble sus piezas

Paso 1: ensamble sus piezas
Paso 1: ensamble sus piezas

Aquí hay una lista de piezas.

  1. Frambuesa Pi W *

    1. Amazonas
    2. Prefiero obtener el mío de Microcenter, pero se puede encontrar en línea por menos en otros lugares.
    3. $10
  2. Tarjeta SD (mínimo 4 GB) *
  3. altavoz - Amazon - ~ $ 2 *
  4. amplificador - PAM8403 * - Amazon - ~ $ 1 cada uno
  5. ligero - Amazon - ~ $ 5
  6. Caso - $ 1 *

    1. De Michael
    2. Recomiendo un pequeño estuche de madera para manualidades de la tienda de manualidades de Michael, ¡pero te lo dejo a ti!
  7. LCD I2C 2004 - $ 3-7

    1. Amazonas
    2. El código admite 3 tipos de LCD, pero I2C 2004 es el que me he decidido por el mejor valor y tamaño. (SSD1306 también es posible)
  8. 2 transistores - 2N2222A- Amazon
  9. Cables misceláneos / solder12V
  10. fuente de alimentación - Amazon
  11. Convertidor buck 12V -> 5V - Amazon

* Existe flexibilidad a la hora de seleccionar esta pieza.

NOTA: Puede comenzar en la mayor parte de este proyecto solo con su Raspberry Pi, mientras espera que se envíen otros artículos.

Paso 2: Paso 2: cableado y electrónica

Paso 2: cableado y electrónica
Paso 2: cableado y electrónica
Paso 2: cableado y electrónica
Paso 2: cableado y electrónica
  1. Ensamblar luz

    1. El cableado de la luz debe correr 12 + a la luz.
    2. Ejecute el negativo de la luz a través de uno de los transistores.
    3. La emisión del transistor va a tierra.
    4. El colector del transistor va a la Raspberry Pi.
  2. Ensamblar sonido

    1. Ejecute el sonido derecho o izquierdo desde PI al amplificador
    2. Ejecute + 5V al amplificador
    3. Ejecute la tierra del amplificador al segundo transistor.
    4. Ejecute el emmetter del segundo transisitor a tierra
    5. Ejecute el colector del transistor a la Raspberry Pi
  3. Ensamble el cableado al PI
  4. Estas son las instrucciones de asignación de pines para el PI (algunas de ellas se pueden configurar a través de JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Luz 10 (GPIO15)
    4. Sonido correcto - GPIO 18

Paso 3: Paso 3: Configuración del software del sistema operativo

  1. Prepara la Raspberry Pi W

    1. La rasberry pi debe ejecutar una versión reciente de Raspbian (u otra Debian).
    2. Se recomienda seguir estas instrucciones:
    3. Asegúrese de incluir el archivo wifi wpa_supplicant.
    4. Coloque el archivo ssh en la tarjeta sd para permitir el acceso a ssh.
  2. Prepare el software de terceros:

    1. Automaticé este proceso para extraer todas las herramientas de terceros necesarias, pero siéntase libre de ejecutarlas manualmente y revisar para asegurarse de que ningún paso falle.
    2. Descargue y ejecute el siguiente script:

Aquí hay un desglose de lo que hace el script de instalación para configurar el sistema operativo. Es mejor ejecutar estas líneas manualmente, para que pueda estar atento a los errores.

Encabezado del script:

#! / bin / sh -e # se puede llamar a través de #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatiza este script con algo como: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd y claves autorizadas # notas:

Actualice el software a nivel del sistema operativo:

# apt-get stuff (apt-get update && apt-get -y upgrade)> / dev / null apt-get dist-upgrade -y # Desarrollo general 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ón de redes. Parte del objetivo aquí era permitir que el sistema se configurara a través de un punto de acceso para conectarse a su propio wifi, pero esto aún no se ha probado completamente. Actualmente se recomienda utilizar el método wpa_supplicant para configurar wifi.

#networking setupecho nhllight> / etc / hostname #TODO: arregla / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # nota: otra configuración se realiza a través de los archivos de configuración y el shell se despliega como parte de la actualización

Actualizar nodos y bibliotecas de nodos

#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 LICENCIA cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: ¿hacer un enlace simbólico para el nodo binario? apt-get remove -y --purge npm node nodejs

#Configuración de nodo mkdir / opt / nhl mkdir / opt / nhl / logs mkdir / opt / nhl / horns mkdir / opt / nhl / node_modules /

#update Node

#instalar las dependencias de los nodos en el directorio nhl exportar NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - corrige que lame no se instalará globalmente

cd / opt / nhl npm install cojo # cojo, es cojo, no se instalará globalmente cp -R / opt / nhl / node_modules / cojo $ NODE_PATH npm install speaker # no se instalará globalmente 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 # no se instalará globalmente cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm install lcdi2c # no se instalará globalmente cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

npm install oled-font-5x7 # no se instalará globalmente

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

npm install onoff # no se instalará globalmente

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

#npm install pm2 # no se instalará globalmente

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express # no instalará globalmente #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# cualquier módulo global

npm instalar express body-parser child_process pm2 -g

Extraiga el último código:

#pull git codecd / opt / nhl #JSON es una creación única 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 script automatizado para instalar todo lo demás para NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma… | sudo -E bash -

¡Descarga los cuernos!

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

actualice los archivos de configuración de Raspberry pi - - es posible que deba cambiarlos para su sistema

# actualizaciones de archivos de configuración # agregar sonido 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: ¿es necesario? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: ¿establecer volumen, 60%?

Automatice la automatización, como el arranque y las actualizaciones de código:

# actualizar rc.local # NOTA: mover el archivo, porque uno estándar incluye una "salida" en la última línea, por lo que no se puede simplemente agregar 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 salir 0' >> /etc/rc.local

#TODO: necesito agregar algo para hacer las actualizaciones de software regulares semanalmente como esta # ¿Quizás simplemente copie este archivo directamente 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

Cosas varias, como configurar la zona horaria:

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

# actualizar la variable de entorno con node_path

cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: defina esto para el nodo self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Utilice PM2 para la configuración del servidor de nodo:

#TODO: configuración de prueba PM2cd / tmp / npm install -g pm2 pm2 inicio 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 guardar pm2 salida de inicio 0

Paso 4: Paso 4: actualice la configuración JSON

Configure su archivo de configuración JSON para el equipo que prefiera, etc. Este archivo se encuentra en / opt / nhl GO CAPITALS! archivo JSON de configuración

El software usa un archivo JSON para configurar el hardware y el equipo que está siguiendo. El equipo se puede configurar a través del servidor web que se ejecutará, pero la configuración del hardware debe configurarse manualmente:

Aquí hay una explicación de cada valor posible:

  • myteam: este es el código de 3 letras del equipo que desea seguir
  • debug: los valores posibles son 1 (verdadero) o 0 (falso), y controlarán la cantidad de registro que se escribe.
  • salida: este es el método por el cual se mostrarán las puntuaciones / detalles. Los posibles valores son:

    • lcd: este es el lcd 2004
    • consola: esto escribirá solo en la terminal (para ejecutar la línea de comando)
    • oled: soporte para pantalla oled SSD6404
  • luz: hay dos tipos de luces compatibles

    • alarma: esto activará un solo GPIO para encender / apagar un transistor
    • multi-led: admite un leds multicolor o múltiples
    • ninguno: sin luz adjunta
  • amplificador: este es el GPIO que impulsa el transistor para el amplificador

Recomendado: