Inhoudsopgave:

NHL Nachtkastje Hockey Light en LCD - Ajarnpa
NHL Nachtkastje Hockey Light en LCD - Ajarnpa

Video: NHL Nachtkastje Hockey Light en LCD - Ajarnpa

Video: NHL Nachtkastje Hockey Light en LCD - Ajarnpa
Video: Awesome Vintage Garage Sale Haul! - Flips & Finds #39 2024, November
Anonim
Image
Image
NHL Nachtkastje Hockey Licht en LCD
NHL Nachtkastje Hockey Licht en LCD

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

  1. Configuratie op basis van webpagina's voor het selecteren van uw team en wifi
  2. Speelt licht en claxon wanneer je team scoort (zelfs als je het uitspelende team bent)
  3. Speelt geluid om het begin van het spel aan te kondigen
  4. Speelt een geluid om het einde van het spel aan te kondigen
  5. Geeft de tijd en datum van de volgende game weer, als er geen game aan de gang is.
  6. Geeft de huidige speeltijd en -periode weer, als het spel bezig is.
  7. Geeft de huidige datum en tijd weer.

Stap 1: Stap 1: Monteer uw onderdelen

Stap 1: Monteer uw onderdelen
Stap 1: Monteer uw onderdelen

Hier is een onderdelenlijst.

  1. Raspberry Pi W*

    1. Amazone
    2. Ik haal de mijne het liefst bij Microcenter, maar kan op andere plaatsen voor minder geld worden gevonden.
    3. $10
  2. SD-kaart (minimaal 4 GB)*
  3. luidspreker - Amazon - ~$2 *
  4. versterker - PAM8403* - Amazon - ~$1 elk
  5. licht - Amazon - ~ $ 5
  6. Geval - $1*

    1. die van Michael
    2. Ik raad een kleine houten knutselkoffer van Michael's ambachtelijke winkel aan, maar laat het aan jou over!
  7. I2C 2004 LCD - $ 3-7"

    1. Amazone
    2. 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)
  8. 2 transistoren - 2N2222A- Amazon
  9. Diverse Draden / soldeer12V
  10. voeding - Amazon
  11. 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

Stap 2: bedrading en elektronica
Stap 2: bedrading en elektronica
Stap 2: bedrading en elektronica
Stap 2: bedrading en elektronica
  1. Licht monteren

    1. De bedrading voor de lamp is om 12+ naar de lamp te lopen.
    2. Voer negatief van het licht door een van de transistors.
    3. De emitter van de transistor gaat naar aarde.
    4. De collector van de transistor gaat naar de Raspberry Pi.
  2. Geluid samenstellen

    1. Run rechts of links geluid van PI naar de versterker
    2. Voer +5V naar de versterker
    3. Voer de versterkermassa naar de 2e transistor.
    4. Breng de emitter van de 2e transistor naar aarde
    5. Run collector van de transistor naar de Raspberry Pi
  3. Monteer de bedrading naar de PI
  4. Dit zijn de pinout-instructies voor de PI (sommige zijn configureerbaar via de JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Licht 10 (GPIO15)
    4. Geluid goed - GPIO 18

Stap 3: Stap 3: Installatie van besturingssysteemsoftware

  1. Bereid de Raspberry Pi W. voor

    1. De rasberry pi moet een recente versie van Raspbian (of een andere Debian) draaien.
    2. Aanbevolen om deze instructies te volgen:
    3. Zorg ervoor dat u het wifi-wpa_supplicant-bestand opneemt.
    4. Zet het ssh-bestand op de sd-kaart om ssh-toegang toe te staan.
  2. Bereid de software van derden voor:

    1. 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.
    2. 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: