Inhoudsopgave:
- Stap 1: Stap 1: Monteer uw onderdelen
- Stap 2: Stap 2: bedrading en elektronica
- Stap 3: Stap 3: Installatie van besturingssysteemsoftware
- Stap 4: Stap 4: update de JSON-configuratie
Video: NHL Nachtkastje Hockey Light en LCD - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Invoering
De "NHL Light" is voor hockeyfans die hun team willen volgen, maar niet elke wedstrijd kunnen kijken. De beste eigenschap is dat het een doelpunt simuleert met een hockeyhoorn (aangepast aan je team) en licht.
Naast de hockeyhoorn en het licht heeft de "NHL Light" een display dat de huidige of meest recente wedstrijdscore, de speeltijd of tijd van de volgende wedstrijd en de huidige datum en tijd weergeeft.
De "NHL Light" draait op een eenvoudige lijst met onderdelen, die eenvoudig te monteren elektronica is en vrij beschikbare code.
Functies
- Configuratie op basis van webpagina's voor het selecteren van uw team en wifi
- Speelt licht en claxon wanneer je team scoort (zelfs als je het uitspelende team bent)
- Speelt geluid om het begin van het spel aan te kondigen
- Speelt een geluid om het einde van het spel aan te kondigen
- Geeft de tijd en datum van de volgende game weer, als er geen game aan de gang is.
- Geeft de huidige speeltijd en -periode weer, als het spel bezig is.
- Geeft de huidige datum en tijd weer.
Stap 1: Stap 1: Monteer uw onderdelen
Hier is een onderdelenlijst.
-
Raspberry Pi W*
- Amazone
- Ik haal de mijne het liefst bij Microcenter, maar kan op andere plaatsen voor minder geld worden gevonden.
- $10
- SD-kaart (minimaal 4 GB)*
- luidspreker - Amazon - ~$2 *
- versterker - PAM8403* - Amazon - ~$1 elk
- licht - Amazon - ~ $ 5
-
Geval - $1*
- die van Michael
- Ik raad een kleine houten knutselkoffer van Michael's ambachtelijke winkel aan, maar laat het aan jou over!
-
I2C 2004 LCD - $ 3-7"
- Amazone
- De code ondersteunt 3 soorten LCD's, maar I2C 2004 is degene die ik heb gekozen als beste waarde en grootte. (SSD1306 is ook mogelijk)
- 2 transistoren - 2N2222A- Amazon
- Diverse Draden / soldeer12V
- voeding - Amazon
- 12V -> 5V buck-converter - Amazon
*Er is flexibiliteit als het gaat om het selecteren van dit onderdeel.
OPMERKING: u kunt aan het grootste deel van dit project beginnen met alleen uw Raspberry Pi, terwijl u wacht tot andere items worden verzonden.
Stap 2: Stap 2: bedrading en elektronica
-
Licht monteren
- De bedrading voor de lamp is om 12+ naar de lamp te lopen.
- Voer negatief van het licht door een van de transistors.
- De emitter van de transistor gaat naar aarde.
- De collector van de transistor gaat naar de Raspberry Pi.
-
Geluid samenstellen
- Run rechts of links geluid van PI naar de versterker
- Voer +5V naar de versterker
- Voer de versterkermassa naar de 2e transistor.
- Breng de emitter van de 2e transistor naar aarde
- Run collector van de transistor naar de Raspberry Pi
- Monteer de bedrading naar de PI
-
Dit zijn de pinout-instructies voor de PI (sommige zijn configureerbaar via de JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Licht 10 (GPIO15)
- Geluid goed - GPIO 18
-
Stap 3: Stap 3: Installatie van besturingssysteemsoftware
-
Bereid de Raspberry Pi W. voor
- De rasberry pi moet een recente versie van Raspbian (of een andere Debian) draaien.
- Aanbevolen om deze instructies te volgen:
- Zorg ervoor dat u het wifi-wpa_supplicant-bestand opneemt.
- Zet het ssh-bestand op de sd-kaart om ssh-toegang toe te staan.
-
Bereid de software van derden voor:
- Ik heb dit proces geautomatiseerd om alle benodigde tools van derden op te halen, maar voel je vrij om deze handmatig uit te voeren en te controleren om er zeker van te zijn dat er geen stappen mislukken.
- Download en voer het volgende script uit:https://github.com/wga22/nodejs/blob/master/nhl/mi…
Hier is een overzicht van wat het installatiescript voor het instellen van het besturingssysteem doet. U kunt deze regels het beste handmatig uitvoeren, zodat u op fouten kunt letten.
Scriptkop:
#!/bin/sh -e#kan worden aangeroepen via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatiseer dit script met zoiets als: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: wifi instellen # TODO: wachtwoord en geautoriseerde sleutels instellen # opmerkingen:
Software bijwerken op OS-niveau:
#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
Netwerk opzetten. Een deel van het doel hier was om het systeem via een toegangspunt te laten configureren, om verbinding te maken met je eigen wifi, maar dit is tot nu toe niet volledig getest. Momenteel aanbevolen om de wpa_supplicant-methode te gebruiken voor het instellen van wifi.
#networking setupecho nhllight > /etc/hostname #TODO: repareer de /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # opmerking: andere setup wordt gedaan via de configuratiebestanden en shell wordt verwijderd als onderdeel van de update
Knooppunt- en knooppuntbibliotheken bijwerken
#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 LICENTIE cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: sym-link maken voor binair knooppunt? 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 Knooppunt
#install node-afhankelijkheden in de nhl-directory export NODE_PATH=/usr/local/lib/node_modules
#HACK - TODO - repareer dat lame niet wereldwijd kan worden geïnstalleerd
cd /opt/nhl npm install lame # lame, is lame, zal niet globaal installeren cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #wont install global cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm install i2c-bus #wont install global cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus #wont install global cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #wont install global cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #wont install global cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH
npm install oled-font-5x7 #Wordt niet wereldwijd geïnstalleerd
cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH
npm install onoff #Wordt niet wereldwijd geïnstalleerd
cp -R /opt/nhl/node_modules/onoff $NODE_PATH
#npm install pm2 #Wordt niet wereldwijd geïnstalleerd
#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #wont global install #cp -R /opt/nhl/node_modules/express $NODE_PATH
# alle globale modules
npm install express body-parser child_process pm2 -g
Trek de laatste code:
#pull git codecd /opt/nhl #JSON is een eenmalige aanmaak 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 geautomatiseerd script om al het andere te installeren voor NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Download de hoorns!
#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
update de Raspberry pi-configuratiebestanden - - moet mogelijk worden gewijzigd voor uw systeem
#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. tekst
#TODO: is dit nodig?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules
menger cset numid=1
#TODO: volume instellen, 60%?
Automatiseer de automatisering, zoals opstarten en code-updates:
# update rc.local# OPMERKING: verplaats het bestand, omdat standaard een "exit" in de laatste regel bevat, dus kan mv /etc/rc.local /etc/rc.local.bak niet eenvoudig worden toegevoegd aan /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: moet iets toevoegen om de reguliere software-updates wekelijks op deze manier uit te voeren# Misschien kunt u dit bestand rechtstreeks naar de map rc.weekly kopiëren? 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
Diverse dingen, zoals het instellen van de tijdzone:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# update omgevingsvariabele met node_path
cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: definieer dit voor node self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Gebruik PM2 voor het instellen van de node-server:
#TODO: testopstelling PM2cd /tmp/ npm install -g pm2 pm2 opstart-cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 bloot-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 save pm2 startup exit 0
Stap 4: Stap 4: update de JSON-configuratie
Stel uw JSON-configuratiebestand in voor het team van uw voorkeur, enz. Dit bestand bevindt zich in /opt/nhl GO CAPITALS! config JSON-bestand
De software gebruikt een JSON-bestand om de hardware en het team dat u volgt te configureren. Het team kan worden ingesteld via de webserver die wordt uitgevoerd, maar de hardwareconfiguratie moet handmatig worden ingesteld:
{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }
Hier is een uitleg van elke mogelijke waarde:
- mijnteam: dit is de 3-letterige code van het team dat je wilt volgen
- debug: Mogelijke waarden zijn 1 (true) of 0 (false), en bepalen hoeveel logboekregistratie wordt weggeschreven.
-
output: dit is de manier waarop scores/details getoond moeten worden. Mogelijke waarden zijn:
- lcd: dit is de lcd van 2004
- console: dit schrijft alleen naar de terminal (voor het uitvoeren van de opdrachtregel)
- oled: ondersteuning voor SSD6404 oled-display
-
licht: er worden twee soorten verlichting ondersteund
- alarm: dit zal een enkele GPIO aansturen voor het in-/uitschakelen van een transistor
- multi-led: ondersteunt een meerkleurige of meerdere leds
- geen: geen licht aangesloten
- versterker: dit is de GPIO die de transistor voor de versterker aanstuurt
Aanbevolen:
Wakeup Light: 7 stappen (met afbeeldingen)
Wakeup Light: terwijl ik dit instructable schrijf, is het midden in de winter op het noordelijk halfrond en dat betekent korte dagen en lange nachten. Ik ben gewend om 06:00 uur op te staan en in de zomer schijnt dan de zon. In de winter wordt het echter om 09:00 licht als w
LED LIGHT DIY voor webcam (C920): 10 stappen (met afbeeldingen)
LED LIGHT DIY voor webcam (C920): Verlichting is essentieel voor een webcamera. Deze kleine LED-ring helpt je gezichtscamera je heel goed te nemen. Je kunt een video maken zonder enig licht, behalve deze LED. Ik gebruikte een 3D-printer en WS2812b LED-module (compatibel met Neopixel)
Bluetooth-gestuurde Messenger LCD -- 16x2 LCD -- Hc05 -- Eenvoudig -- Draadloos prikbord: 8 stappen
Bluetooth-gestuurde Messenger LCD || 16x2 LCD || Hc05 || Eenvoudig || Draadloos mededelingenbord:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's…… …………………………………Het mededelingenbord wordt gebruikt om mensen op de hoogte te houden van nieuwe informatie of Als je een bericht wilt sturen met in de kamer of in de hal
Ikea Light Hack (flexin Your Light): 5 stappen
Ikea Light Hack (flexin Your Light): Toen ik besloot de verlichting op mijn bureau te verbeteren, wendde ik me tot Ikea. Ik heb de Ikea Jansjo (http://www.ikea.com/us/en/catalog/products/10128748) en de Ikea Lack (http://www.ikea.com/us/en/catalog/products/60124272 ) en gooide de bon per ongeluk weg
Light Frame (voor Tekjocks Photography Light Box): 3 stappen
Light Frame (voor Tekjocks Photography Light Box): Hier is het vervolg op mijn Photography Light Box. Ik ga hier niet verder op ingaan, want het komt erop aan welke maat slangen je krijgt en welke maat hardware je nodig hebt. Dit wordt dus een zeer eenvoudige zelfstudie. ik zal post