Sommario:
- Passaggio 1: Passaggio 1: assemblare le parti
- Passaggio 2: Passaggio 2: cablaggio ed elettronica
- Passaggio 3: Passaggio 3: configurazione del software del sistema operativo
- Passaggio 4: Passaggio 4: aggiornare la configurazione JSON
Video: NHL Comodino Hockey Light e LCD: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
introduzione
La "NHL Light" è per gli appassionati di hockey che vogliono seguire la loro squadra, ma non possono guardare tutte le partite. La sua caratteristica migliore è che simula un goal con un corno da hockey (personalizzato per la tua squadra) e leggero.
Oltre al corno e alla luce dell'hockey, "NHL Light", ha un display che fornisce il punteggio della partita corrente o più recente, l'ora della partita o l'ora della partita successiva e la data e l'ora correnti.
La "NHL Light" funziona su un semplice elenco di parti, componenti elettronici facili da assemblare e codice disponibile gratuitamente.
Caratteristiche
- Configurazione basata su pagina web per selezionare la tua squadra e il wifi
- Suona la luce e il clacson quando la tua squadra segna (anche quando sei la squadra in trasferta)
- Riproduce il suono per annunciare l'inizio del gioco
- Riproduce un suono per annunciare la conclusione del gioco
- Fornisce l'ora e la data della prossima partita, se nessuna partita è in corso.
- Visualizza l'ora e il periodo di gioco correnti, se il gioco è in corso.
- Visualizza la data e l'ora correnti.
Passaggio 1: Passaggio 1: assemblare le parti
Ecco un elenco delle parti.
-
Lampone Pi W*
- Amazon
- Preferisco ottenere il mio da Microcenter, ma può essere trovato online per meno in altri posti.
- $10
- Scheda SD (minimo 4 GB)*
- altoparlante - Amazon - ~$2 *
- amplificatore - PAM8403* - Amazon - ~$1 ciascuno
- luce - Amazon - ~$5
-
Caso - $ 1*
- di Michael
- Raccomando una piccola custodia artigianale in legno dal negozio di artigianato di Michael, ma lascerò a te!
-
LCD I2C 2004 - $3-7
- Amazon
- Il codice supporta 3 tipi di LCD, ma I2C 2004 è quello che ho scelto come miglior valore e dimensione. (SSD1306 è anche possibile)
- 2 transistor - 2N2222A- Amazon
- Cavi vari / saldatura12V
- alimentatore - Amazon
- Convertitore buck 12V -> 5V - Amazon
* C'è flessibilità quando si tratta di selezionare questa parte.
NOTA: puoi iniziare la maggior parte di questo progetto solo con il tuo Raspberry Pi, mentre aspetti che vengano spediti altri articoli.
Passaggio 2: Passaggio 2: cablaggio ed elettronica
-
Assemblare la luce
- Il cablaggio per la luce deve eseguire 12 + alla luce.
- Esegui negativo dalla luce attraverso uno dei transistor.
- L'emettitore del transistor va a massa.
- Il collettore del transistor va al Raspberry Pi.
-
Assemblare il suono
- Esegui il suono destro o sinistro dal PI all'amplificatore
- Esegui +5V sull'amplificatore
- Esegui la massa dell'amplificatore sul secondo transistor.
- Portare a massa l'emettitore del 2° transistor
- Esegui il collettore del transistor sul Raspberry Pi
- Assemblare il cablaggio al PI
-
Queste sono le istruzioni di pinout per il PI (alcune di queste sono configurabili tramite JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - CCV (+5)
- AMP 8 (GPIO 14)
- Luce 10 (GPIO15)
- Audio corretto - GPIO 18
-
Passaggio 3: Passaggio 3: configurazione del software del sistema operativo
-
Prepara il Raspberry Pi W
- Il rasberry pi deve eseguire una versione recente di Raspbian (o altro Debian).
- Si consiglia di seguire queste istruzioni:
- Assicurati di includere il file wifi wpa_supplicant.
- Metti il file ssh sulla sdcard per consentire l'accesso ssh.
-
Preparare il software di terze parti:
- Ho automatizzato questo processo per estrarre tutti gli strumenti di terze parti necessari, ma sentiti libero di eseguirli manualmente e rivedi per assicurarmi che nessun passaggio fallisca.
- Scarica ed esegui il seguente script:
Ecco una ripartizione di ciò che fa lo script di installazione per la configurazione del sistema operativo. È meglio eseguire queste righe manualmente, in modo da poter controllare gli errori.
Intestazione dello script:
#!/bin/sh -e#può essere chiamato tramite #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatizza questo script con qualcosa del tipo: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd e chiavi autorizzate # note:
Aggiorna il software a livello di sistema operativo:
#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
Configurazione della rete. Parte dell'obiettivo qui era consentire la configurazione del sistema tramite un punto di accesso, per connettersi al proprio wifi, ma questo non è stato ancora completamente testato. Attualmente consigliato di utilizzare il metodo wpa_supplicant per configurare il wifi.
#networking setupecho nhllight > /etc/hostname #TODO: correzione di /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # nota: l'altra configurazione viene eseguita tramite i file di configurazione e la shell scaricati come parte dell'aggiornamento
Aggiorna nodi e librerie di nodi
#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 LICENSE cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: creare un collegamento simbolico per il nodo binario? 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/
#aggiornamento del nodo
#install le dipendenze del nodo nella directory nhl export NODE_PATH=/usr/local/lib/node_modules
#HACK - TODO - correggi quello zoppo che non si installa a livello globale
cd /opt/nhl npm install lame # lame, is zoppo, non installerà globalmente cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #non installerà globalmente cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm install i2c-bus #non installerà globalmente cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus #non installerà globalmente cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #non installerà globalmente cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #non installerà globalmente cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH
npm install oled-font-5x7 #non installerà globalmente
cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH
npm install onoff #wont install globalmente
cp -R /opt/nhl/node_modules/onoff $NODE_PATH
#npm install pm2 #non installerà globalmente
#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #non installerà globalmente #cp -R /opt/nhl/node_modules/express $NODE_PATH
# qualsiasi modulo globale
npm install express body-parser child_process pm2 -g
Tira l'ultimo codice:
#pull git codecd /opt/nhl #JSON è una creazione una tantum 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 automatizzato per installare tutto il resto per NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Scarica le corna!
#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
aggiorna i file di configurazione di Raspberry pi - - potrebbe essere necessario cambiare per il tuo sistema
#aggiornamenti file di configurazione#aggiungi suono cp /boot/config.txt /boot/config.txt.bak printf '\ndtoverlay=pwm-2chan, pin=18, func=2, pin2=13, func2=4' >> / boot/config.txt #attiva i2c printf '\n\ndtparam=i2c1=on\n' >> /boot/config.txt printf '\n\ndtparam=i2c_arm=on\n' >> /boot/config. testo
#TODO: è necessario?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules
amixer cset numid=1
#TODO: imposta il volume, 60%?
Automatizza l'automazione, come l'avvio e gli aggiornamenti del codice:
# update rc.local# NOTA: spostando il file, perché quello standard include un "exit" nell'ultima riga, quindi non può semplicemente aggiungere 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: devo aggiungere qualcosa per fare i regolari aggiornamenti software settimanali come questo# Forse basta copiare questo file direttamente nella cartella 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
Cose varie, come l'impostazione del fuso orario:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# aggiorna la variabile di ambiente con node_path
cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: definiscilo per il nodo self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Utilizzare PM2 per la configurazione del server del nodo:
#TODO: test setup PM2cd /tmp/ npm install -g pm2 pm2 startup cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 require-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 salva pm2 avvio uscita 0
Passaggio 4: Passaggio 4: aggiornare la configurazione JSON
Imposta il tuo file di configurazione JSON per la squadra che preferisci, ecc. Questo file si trova in /opt/nhl GO CAPITALS! file JSON di configurazione
Il software utilizza un file JSON per configurare l'hardware e il team che stai seguendo. Il team può essere impostato tramite il server web che sarà in esecuzione, ma la configurazione dell'hardware deve essere impostata manualmente:
{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }
Ecco una spiegazione di ogni possibile valore:
- myteam: questo è il codice di 3 lettere della squadra che vuoi seguire
- debug: i valori possibili sono 1 (vero) o 0 (falso) e controlleranno la quantità di registrazione scritta.
-
output: questo è il metodo con cui devono essere visualizzati i punteggi/dettagli. I valori possibili sono:
- lcd: questo è l'LCD del 2004
- console: questo scriverà solo sul terminale (per l'esecuzione della riga di comando)
- oled: supporto per display oled SSD6404
-
luce: sono supportati due tipi di luci
- allarme: questo guiderà un singolo GPIO per accendere/spegnere un transistor
- multi-led: supporta un LED multicolore o multiplo
- nessuno: nessuna luce collegata
- amplificatore: questo è il GPIO che pilota il transistor per l'amplificatore
Consigliato:
Sveglia da comodino MP3 con lettera sveglia: 6 passaggi (con immagini)
Sveglia da comodino MP3 con sveglia: per questo progetto ho voluto creare una sveglia da comodino comoda e completamente funzionale. I miei prerequisiti personali per una sveglia da comodino sono: Leggibile a qualsiasi luce, ma non accecante di notte Brani della sveglia MP3 Attira
Hockey da tavolo magnetico fai da te con cartone, luci RGB e sensori: 11 passaggi (con immagini)
Hockey da tavolo magnetico fai-da-te con cartone, luci RGB e sensori: devi aver giocato a Air Hockey! Paga pochi $$dollari$$ nella zona di gioco e inizia a segnare gol per battere i tuoi amici. Non è molto coinvolgente? Avrai pensato di tenere un tavolo a casa, ma ehi! hai mai pensato di farlo da solo?
Orologio da comodino connesso per bambini: 12 passaggi
Orologio da comodino connesso per bambini: seguendo queste istruzioni, sarai in grado di costruire un orologio attivato dal movimento e che mostrerà la data, l'ora e l'evento rilevante del giorno. Mostrerà una modalità notturna quando è ora di dormire e quando i bambini si svegliano possono ricordare rapidamente cosa
Mini luce notturna/lampada da comodino a LED: 5 passaggi
Mini luce notturna / lampada da comodino a LED: prima di tutto devo dire che è stata ispirata dalla lampada a LED Mini di Sunbanks. Invece di usare una biro per tenere il led lontano dalla scrivania ho usato del perspex trasparente per proiettare la luce dalla base. Questo piccolo progetto è un prototipo
Illuminatore dimmerabile per orologi da comodino ecc.: 4 passaggi (con immagini)
Illuminatore dimmer - per orologi da comodino ecc.: Questa unità è nata a causa di mia moglie che si lamentava di non poter vedere l'orologio della camera da letto quando la camera da letto era al buio e non voleva accendere le luci per svegliarmi . Mia moglie non voleva una luce accecante sull'orologio, solo abbastanza luce