Tabla de contenido:
- Paso 1: Paso 1: Ensamble sus piezas
- Paso 2: Paso 2: cableado y electrónica
- Paso 3: Paso 3: Configuración del software del sistema operativo
- Paso 4: Paso 4: actualice la configuración JSON
Video: Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
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
- Configuración basada en página web para seleccionar tu equipo y wifi
- Suena la luz y la bocina cuando tu equipo anota (incluso cuando eres el equipo visitante)
- Reproduce sonido para anunciar el comienzo del juego.
- Reproduce un sonido para anunciar la conclusión del juego.
- Proporciona la hora y la fecha del próximo juego, si no hay ningún juego en curso.
- Muestra la hora y el período del juego actual, si el juego está en curso.
- Muestra la fecha y hora actuales.
Paso 1: Paso 1: Ensamble sus piezas
Aquí hay una lista de piezas.
-
Frambuesa Pi W *
- Amazonas
- Prefiero obtener el mío de Microcenter, pero se puede encontrar en línea por menos en otros lugares.
- $10
- Tarjeta SD (mínimo 4 GB) *
- altavoz - Amazon - ~ $ 2 *
- amplificador - PAM8403 * - Amazon - ~ $ 1 cada uno
- ligero - Amazon - ~ $ 5
-
Caso - $ 1 *
- De Michael
- Recomiendo un pequeño estuche de madera para manualidades de la tienda de manualidades de Michael, ¡pero te lo dejo a ti!
-
LCD I2C 2004 - $ 3-7
- Amazonas
- 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)
- 2 transistores - 2N2222A- Amazon
- Cables misceláneos / solder12V
- fuente de alimentación - Amazon
- 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
-
Ensamblar luz
- El cableado de la luz debe correr 12 + a la luz.
- Ejecute el negativo de la luz a través de uno de los transistores.
- La emisión del transistor va a tierra.
- El colector del transistor va a la Raspberry Pi.
-
Ensamblar sonido
- Ejecute el sonido derecho o izquierdo desde PI al amplificador
- Ejecute + 5V al amplificador
- Ejecute la tierra del amplificador al segundo transistor.
- Ejecute el emmetter del segundo transisitor a tierra
- Ejecute el colector del transistor a la Raspberry Pi
- Ensamble el cableado al PI
-
Estas son las instrucciones de asignación de pines para el PI (algunas de ellas se pueden configurar a través de JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Luz 10 (GPIO15)
- Sonido correcto - GPIO 18
-
Paso 3: Paso 3: Configuración del software del sistema operativo
-
Prepara la Raspberry Pi W
- La rasberry pi debe ejecutar una versión reciente de Raspbian (u otra Debian).
- Se recomienda seguir estas instrucciones:
- Asegúrese de incluir el archivo wifi wpa_supplicant.
- Coloque el archivo ssh en la tarjeta sd para permitir el acceso a ssh.
-
Prepare el software de terceros:
- 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.
- 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:
Macintosh con pantalla táctil - Mac clásica con un iPad Mini para la pantalla: 5 pasos (con imágenes)
Macintosh con pantalla táctil | Mac clásico con un iPad Mini para la pantalla: esta es mi actualización y diseño revisado sobre cómo reemplazar la pantalla de un Macintosh antiguo con un iPad mini. Este es el sexto de estos que he hecho a lo largo de los años y estoy muy contento con la evolución y el diseño de este. En 2013, cuando hice
Lámpara de rayas LED para cabecera de cama con ESP8266-01: 5 pasos
Lámpara de Rayas LED para Cabecera de Cama con ESP8266-01: Este es un proyecto muy fácil que descuidé hace mucho tiempo, pero debido a la cuarentena hice algo diferente con las partes que tengo a mano, la idea era tener una luz atenuable, que pudiera ser controlado por comandos TCP simples o por un conmutador manual
Pantalla LCD I2C / IIC - Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: 5 pasos
Pantalla LCD I2C / IIC | Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: Hola a todos, ya que una pantalla LCD SPI 1602 normal tiene demasiados cables para conectar, por lo que es muy difícil conectarlo con arduino, pero hay un módulo disponible en el mercado que puede Convierta la pantalla SPI en la pantalla IIC, por lo que solo necesita conectar 4 cables
Control inalámbrico de cabecera de cama MQTT: 5 pasos (con imágenes)
Control inalámbrico de cabeceras de cama MQTT: Hace unos años compramos una nueva cama de espuma viscoelástica y, como es el caso de la mayoría de las camas, también tenía que comprar una de sus " bases aprobadas " para mantener una garantía. Entonces, optamos por la base menos costosa que también incluía t
Reloj de cabecera conectado para niños: 12 pasos
Reloj de cabecera conectado para niños: siguiendo estas instrucciones, podrá construir un reloj que se active por movimiento y mostrará la fecha, la hora y el evento relevante del día. Mostrará un modo nocturno cuando sea hora de dormir y cuando los niños se despierten, pueden recordar rápidamente qué