Índice:
- Etapa 1: Etapa 1: montar suas peças
- Etapa 2: Etapa 2: Fiação e eletrônicos
- Etapa 3: Etapa 3: Configuração do software do sistema operacional
- Etapa 4: Etapa 4: Atualizar a configuração JSON
Vídeo: NHL Bedside Hockey Light and LCD: 4 Steps (with pictures)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Introdução
O "NHL Light" é para os fãs de hóquei que querem seguir seu time, mas não podem assistir a todos os jogos. Sua melhor característica é que ele simula um gol com uma buzina de hóquei (personalizada para o seu time) e luz.
Além da buzina e da luz de hóquei, o "NHL Light" tem um visor que fornece a pontuação do jogo atual ou mais recente, a hora do jogo ou a hora do próximo jogo e a data e hora atuais.
O "NHL Light" é executado em uma lista simples de peças, que é fácil de montar eletrônicos, e código que está disponível gratuitamente.
Recursos
- Configuração baseada na página da web para selecionar sua equipe e wi-fi
- Toca luz e buzina quando seu time marca (mesmo quando você é o time visitante)
- Toca som para anunciar o início do jogo
- Toca um som para anunciar a conclusão do jogo
- Fornece hora e data do próximo jogo, se não houver jogo em andamento.
- Exibe a hora e o período do jogo atual, se o jogo estiver em andamento.
- Exibe a data e hora atuais.
Etapa 1: Etapa 1: montar suas peças
Aqui está uma lista de peças.
-
Raspberry Pi W *
- Amazonas
- Eu prefiro obter o meu no Microcenter, mas posso ser encontrado online por menos em outros lugares.
- $10
- Cartão SD (mínimo de 4 GB) *
- alto-falante - Amazon - ~ $ 2 *
- amp - PAM8403 * - Amazon - ~ $ 1 cada
- light - Amazon - ~ $ 5
-
Caixa - $ 1 *
- Michael's
- Eu recomendo pequena caixa de artesanato de madeira da loja de artesanato de Michael, mas vou deixar com você!
-
I2C 2004 LCD - $ 3-7
- Amazonas
- O código suporta 3 tipos de LCDs, mas I2C 2004 é aquele que escolhi como o melhor valor e tamanho. (SSD1306 também é possível)
- 2 transistores - 2N2222A- Amazon
- Fios diversos / solda 12V
- fonte de alimentação - Amazon
- 12V -> 5V conversor buck - Amazon
* Existe flexibilidade quando se trata de selecionar esta parte.
NOTA: Você pode iniciar a maior parte deste projeto apenas com o seu Raspberry Pi, enquanto espera o envio de outros itens.
Etapa 2: Etapa 2: Fiação e eletrônicos
-
Montar luz
- A fiação da luz deve passar 12+ para a luz.
- Execute o negativo da luz através de um dos transistores.
- O emissor do transistor vai para o aterramento.
- O coletor do transistor vai para o Raspberry Pi.
-
Montar som
- Execute o som direito ou esquerdo do PI para o amplificador
- Execute + 5V para o amplificador
- Execute o amplificador aterrado para o segundo transistor.
- Execute o emmetter do 2º transisitor para aterrar
- Execute o coletor do transistor para o Raspberry Pi
- Monte a fiação no PI
-
Estas são as instruções de pinagem para o PI (algumas delas são configuráveis por meio do JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Light 10 (GPIO15)
- Som certo - GPIO 18
-
Etapa 3: Etapa 3: Configuração do software do sistema operacional
-
Prepare o Raspberry Pi W
- O rasberry pi deve estar executando uma versão recente do Raspbian (ou outro Debian).
- Recomendado para seguir estas instruções:
- Certifique-se de incluir o arquivo wpa_supplicant wi-fi.
- Coloque o arquivo ssh no sdcard para permitir o acesso ssh.
-
Prepare o software de terceiros:
- Automatizei esse processo para obter todas as ferramentas de terceiros necessárias, mas sinta-se à vontade para executá-las manualmente e revisar para garantir que nenhuma etapa falhe.
- Baixe e execute o seguinte script:
Aqui está uma análise do que o script de instalação para configurar o sistema operacional faz. É melhor executar essas linhas manualmente, para que você possa observar os erros.
Cabeçalho do Script:
#! / bin / sh -e # pode ser chamado via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatize este script com algo como: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd e chaves autorizadas # notas:
Atualize o software no nível do sistema operacional:
# 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
Configuração de rede. Parte do objetivo aqui era permitir que o sistema fosse configurado através de um ponto de acesso, para se conectar ao seu próprio wi-fi, mas isso ainda não foi totalmente testado. Atualmente recomendado usar o método wpa_supplicant para configurar wi-fi.
#networking setupecho nhllight> / etc / hostname #TODO: conserte o / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # observação: outra configuração é feita por meio dos arquivos de configuração e do shell retirado como parte da atualização
Atualizar Nó e bibliotecas de nós
#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 LICENÇA cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: criar link sym para o nó binário? 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 /
#update Node
#install dependências do nó no diretório nhl export NODE_PATH = / usr / local / lib / node_modules
#HACK - TODO - conserta que lame não instala globalmente
cd / opt / nhl npm instalar coxo # coxo, é coxo, não vai instalar globalmente cp -R / opt / nhl / node_modules / lame $ NODE_PATH npm instalar alto-falante # não instalar globalmente cp -R / opt / nhl / node_modules / alto-falante $ NODE_PATH npm instala i2c-bus # não instala globalmente cp -R / opt / nhl / node_modules / i2c-bus $ NODE_PATH npm instala oled-i2c-bus # não instala globalmente cp -R / opt / nhl / node_modules / oled-i2c-bus $ NODE_PATH npm instala lcd # não instala globalmente cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm instala lcdi2c # não instala globalmente cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH
npm install oled-font-5x7 #wont install globalmente
cp -R / opt / nhl / node_modules / oled-font-5x7 $ NODE_PATH
npm install onoff #não instalará globalmente
cp -R / opt / nhl / node_modules / onoff $ NODE_PATH
#npm install pm2 #não instalará globalmente
#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express # não instalará globalmente #cp -R / opt / nhl / node_modules / express $ NODE_PATH
# quaisquer módulos globais
npm install express body-parser child_process pm2 -g
Extraia o código mais recente:
#pull git codecd / opt / nhl #JSON é criação ú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 o resto para NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma… | sudo -E bash -
Baixe os chifres!
#pull hornscd / opt / nhl / horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
atualizar os arquivos de configuração do Raspberry pi - - pode ser necessário alterar para o seu sistema
# atualizações do arquivo de configuração # 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: isso é necessário? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules
amixer cset numid = 1
#TODO: definir volume, 60%?
Automatize a automação, como inicialização e atualizações de código:
# update rc.local # NOTA: mover o arquivo, porque o padrão inclui uma "saída" na última linha, então não pode simplesmente anexar 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: preciso adicionar algo para fazer atualizações semanais regulares de software como este # Talvez apenas copiar este arquivo diretamente para a pasta 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
Coisas diversas, como definir o fuso horário:
ln -sf / usr / share / zoneinfo / America / New_York / etc / localtime
# atualize a variável de ambiente com node_path
cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: defina isso para o nó self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Utilize PM2 para configuração de servidor de nó:
#TODO: teste de configuração PM2cd / tmp / npm install -g pm2 pm2 inicialização 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 salvar pm2 inicialização saída 0
Etapa 4: Etapa 4: Atualizar a configuração JSON
Defina seu arquivo de configuração JSON para a equipe de sua preferência, etc. Este arquivo está localizado em / opt / nhl GO CAPITALS! arquivo de configuração JSON
O software usa um arquivo JSON para configurar o hardware e a equipe que você está seguindo. A equipe pode ser definida por meio do servidor da web que estará em execução, mas a configuração do hardware precisa ser definida manualmente:
Aqui está uma explicação de cada valor possível:
- myteam: este é o código de 3 letras da equipe que você deseja seguir
- debug: os valores possíveis são 1 (verdadeiro) ou 0 (falso) e controlam quanto log é gravado.
-
saída: este é o método pelo qual as pontuações / detalhes devem ser mostrados. Os valores possíveis são:
- lcd: este é o lcd de 2004
- console: isso vai gravar apenas no terminal (para executar a linha de comando)
- oled: suporte para display SSD6404 oled
-
luz: há dois tipos de luzes com suporte
- alarme: isso irá conduzir um único GPIO para ligar / desligar um transistor
- multi-led: suporta leds multicoloridos ou múltiplos
- nenhum: nenhuma luz anexada
- amp: este é o GPIO que aciona o transistor para o amp
Recomendado:
"High-Fivey" the Cardboard Micro: bit Robot: 18 Steps (with pictures)
"High-Fivey" o Cardboard Micro: bit Robot: Preso em casa, mas ainda precisa de high-five para alguém? Fizemos um pequeno robô amigável com um pouco de papelão e um micro: um pouco junto com a placa de bits Crazy Circuits e tudo o que ela quer de você é um high-five para manter vivo o amor dela por você
BookWorm Light-Up Book Light and Bookmark: 13 etapas (com imagens)
BookWorm Light-Up Book Light and Bookmark: Faça este bookworm divertido que funciona como uma luz de livro! Vamos imprimir, recortar, colorir e decorar, e eles o usarão para iluminar a noite para que você possa ler no escuro. Ele é feito com apenas alguns materiais e faz um ótimo primeiro ci
IoT- Ubidots- ESP32 + Long-Range-Wireless-Vibration-And-Temperature-Sensor: 7 Steps
IoT- Ubidots- ESP32 + Long-Range-Wireless-Vibration-And-Temperature-Sensor: A vibração é realmente um movimento de vaivém - ou oscilação - de máquinas e componentes em dispositivos motorizados. A vibração no sistema industrial pode ser um sintoma ou motivo de um incômodo ou pode estar associada à operação diária. Por exemplo, osci
Esp32-Ubidots-Wireless-long-range Temperature-And-Humidity: 6 Steps
Esp32-Ubidots-Wireless-long-range Temperature-And-Humidity: Neste tutorial, iremos medir diferentes dados de temperatura e umidade usando sensor de temperatura e umidade. Você também aprenderá como enviar esses dados para Ubidots. Para que você possa analisá-lo de qualquer lugar para diferentes aplicativos
Mesa de air hockey de baixo custo faça você mesmo: 27 etapas (com fotos)
Mesa de air hockey DIY de baixo custo: uma configuração de air hockey profissional geralmente está disponível apenas em fliperamas devido aos sofisticados sistemas necessários para operá-la. Nosso objetivo era construir uma mesa de air hockey DIY, trazendo essa experiência de jogo para casa. Usando comumente disponível