Inhaltsverzeichnis:
- Schritt 1: Schritt 1: Montieren Sie Ihre Teile
- Schritt 2: Schritt 2: Verkabelung und Elektronik
- Schritt 3: Schritt 3: Einrichtung der Betriebssystemsoftware
- Schritt 4: Schritt 4: Aktualisieren Sie die JSON-Konfiguration
Video: NHL Nachttisch-Hockeylicht und LCD - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Einführung
Das "NHL Light" ist für Hockeyfans, die ihrem Team folgen wollen, aber nicht jedes Spiel sehen können. Das beste Feature ist, dass es einen Torstand mit einem Hockeyhorn (an Ihre Mannschaft angepasst) und Licht simuliert.
Zusätzlich zu Hockeyhupe und -Licht verfügt das "NHL Light" über ein Display, das den aktuellen oder letzten Spielstand, die Spielzeit oder die Uhrzeit des nächsten Spiels sowie das aktuelle Datum und die aktuelle Uhrzeit anzeigt.
Das "NHL Light" läuft auf einer einfachen Liste von Teilen, die sich leicht zusammenbauen lässt, und Code, der frei verfügbar ist.
Merkmale
- Webseitenbasierte Konfiguration zur Auswahl Ihres Teams und WLAN
- Spielt Licht und Hupe, wenn Ihr Team ein Tor erzielt (auch wenn Sie das Auswärtsteam sind)
- Spielt Ton, um den Beginn des Spiels anzukündigen
- Spielt einen Ton, um das Ende des Spiels anzukündigen
- Zeigt Uhrzeit und Datum des nächsten Spiels an, wenn kein Spiel im Gange ist.
- Zeigt die aktuelle Spielzeit und den Zeitraum an, wenn das Spiel läuft.
- Zeigt das aktuelle Datum und die aktuelle Uhrzeit an.
Schritt 1: Schritt 1: Montieren Sie Ihre Teile
Hier ist eine Teileliste.
-
Raspberry Pi W*
- Amazonas
- Ich ziehe es vor, meine von Microcenter zu bekommen, kann aber an anderen Orten online für weniger Geld gefunden werden.
- $10
- SD-Karte (mindestens 4 GB)*
- Lautsprecher - Amazon - ~ 2 $ *
- Verstärker – PAM8403* – Amazon – je ~ 1 $
- Licht - Amazon - ~$5
-
Fall - 1 $*
- Michaels
- Ich empfehle kleine Holz-Bastelkoffer aus Michaels Bastelladen, aber überlasse es Ihnen!
-
I2C 2004 LCD - $3-7
- Amazonas
- Der Code unterstützt 3 Arten von LCDs, aber I2C 2004 ist diejenige, die ich als den besten Wert und die beste Größe gewählt habe. (SSD1306 ist auch möglich)
- 2 Transistoren - 2N2222A- Amazon
- Sonstige Drähte / Lötzinn12V
- Netzteil - Amazon
- 12V -> 5V Abwärtswandler - Amazon
*Bei der Auswahl dieses Teils besteht Flexibilität.
HINWEIS: Sie können den größten Teil dieses Projekts nur mit Ihrem Himbeer-Pi beginnen, während Sie auf den Versand anderer Artikel warten.
Schritt 2: Schritt 2: Verkabelung und Elektronik
-
Licht zusammenbauen
- Die Verkabelung für die Leuchte soll 12+ zur Leuchte führen.
- Führen Sie vom Licht durch einen der Transistoren negativ aus.
- Der Emmeter des Transistors geht auf Masse.
- Der Kollektor des Transistors geht zum Raspberry Pi.
-
Ton zusammenbauen
- Führen Sie den rechten oder linken Sound vom PI zum Verstärker
- +5V zum Verstärker laufen lassen
- Führen Sie die Amperemasse zum 2. Transistor.
- Führen Sie den Emmeter des 2. Transistors auf Masse
- Kollektor des Transistors zum Raspberry Pi. führen
- Verkabelung zum PI. konfektionieren
-
Dies sind die Pinbelegungsanweisungen für den PI (einige davon sind über JSON konfigurierbar)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Licht 10 (GPIO15)
- Ton richtig - GPIO 18
-
Schritt 3: Schritt 3: Einrichtung der Betriebssystemsoftware
-
Bereiten Sie den Raspberry Pi W vor
- Auf dem Raspberry Pi muss eine aktuelle Version von Raspbian (oder einem anderen Debian) ausgeführt werden.
- Es wird empfohlen, diese Anweisungen zu befolgen:
- Stellen Sie sicher, dass Sie die Datei wifi wpa_supplicant einschließen.
- Legen Sie die SSH-Datei auf die SD-Karte, um den SSH-Zugriff zu ermöglichen.
-
Bereiten Sie die Drittanbieter-Software vor:
- Ich habe diesen Prozess automatisiert, um alle benötigten Tools von Drittanbietern abzurufen, aber Sie können diese auch manuell ausführen und überprüfen, um sicherzustellen, dass keine Schritte fehlschlagen.
- Laden Sie das folgende Skript herunter und führen Sie es aus:
Hier ist eine Aufschlüsselung dessen, was das Installationsskript zum Einrichten des Betriebssystems tut. Führen Sie diese Zeilen am besten manuell aus, damit Sie auf Fehler achten können.
Skriptkopfzeile:
#!/bin/sh -e#kann über #curl -sL aufgerufen werden https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatisiere dieses Skript mit etwas wie: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: WLAN einrichten # TODO: Passwd und autorisierte Schlüssel einrichten # Notizen:
Software auf Betriebssystemebene aktualisieren:
#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
Netzwerk-Setup. Ein Teil des Ziels war hier, dass das System über einen Access Point konfiguriert werden kann, um sich mit dem eigenen WLAN zu verbinden, aber dies wurde noch nicht vollständig getestet. Derzeit wird empfohlen, die Methode wpa_supplicant zum Einrichten von WLAN zu verwenden.
#networking setupecho nhllight > /etc/hostname #TODO: Fix the /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # Hinweis: Anderes Setup erfolgt über die Konfigurationsdateien und die Shell, die als Teil des Updates heruntergezogen wurden
Knoten und Knotenbibliotheken aktualisieren
#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 LIZENZ cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: Sym-Link für Knoten-Binärdatei erstellen? 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-Knoten
#Knotenabhängigkeiten in das nhl-Verzeichnis installieren export NODE_PATH=/usr/local/lib/node_modules
#HACK - TODO - Fix, dass lahm nicht global installiert wird
cd /opt/nhl npm install lame # lame, ist lahm, wird nicht global installiert cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #wont global install cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm install i2c-bus #wird nicht global installiert cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus #wird nicht global installiert cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #wird nicht global installiert cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #wird nicht global installiert cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH
npm install oled-font-5x7 #wird nicht global installiert
cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH
npm install onoff #wird nicht global installiert
cp -R /opt/nhl/node_modules/onoff $NODE_PATH
#npm install pm2 #wird nicht global installiert
#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #wird nicht global installiert #cp -R /opt/nhl/node_modules/express $NODE_PATH
# beliebige globale Module
npm install Express Body-Parser child_process pm2 -g
Neuesten Code abrufen:
#pull git codecd /opt/nhl #JSON ist eine einmalige Erstellung 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… #Automatisches Skript aufrufen, um alles andere für NHL curl zu installieren -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Laden Sie die Hörner herunter!
#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
Aktualisieren Sie die Raspberry Pi-Konfigurationsdateien - - müssen Sie möglicherweise für Ihr System ändern
#Konfigurationsdateiaktualisierungen#Sound hinzufügen 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: wird das benötigt?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules
amixer cset numid=1
#TODO: Lautstärke einstellen, 60%?
Automatisieren Sie die Automatisierung, z. B. das Booten und Code-Updates:
# update rc.local# HINWEIS: Verschieben der Datei, da die Standarddatei in der letzten Zeile einen "Exit" enthält, also nicht einfach mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local anhängen kann 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: muss etwas hinzugefügt werden, um die regelmäßigen Software-Updates wöchentlich wie folgt durchzuführen# Vielleicht einfach diese Datei direkt in den Ordner rc.weekly kopieren? 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
Verschiedenes, wie das Einstellen der Zeitzone:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# Umgebungsvariable mit node_path aktualisieren
cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: Definiere dies für den Knoten self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Verwenden Sie PM2 für die Einrichtung von Knotenservern:
#TODO: Testeinrichtung PM2cd /tmp/ npm install -g pm2 pm2 Startup 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 speichern pm2 Start beenden 0
Schritt 4: Schritt 4: Aktualisieren Sie die JSON-Konfiguration
Richten Sie Ihre JSON-Konfigurationsdatei für das von Ihnen bevorzugte Team usw. ein. Diese Datei befindet sich in /opt/nhl GO CAPITALS! config JSON-Datei
Die Software verwendet eine JSON-Datei, um die Hardware und das Team zu konfigurieren, dem Sie folgen. Das Team kann über den laufenden Webserver eingestellt werden, aber das Hardware-Setup muss manuell eingerichtet werden:
{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }
Hier ist eine Erklärung für jeden möglichen Wert:
- myteam: Dies ist der 3-Buchstaben-Code des Teams, dem Sie folgen möchten
- debug: Mögliche Werte sind 1 (true) oder 0 (false) und steuern, wie viel Logging ausgeschrieben wird.
-
Ausgabe: Dies ist die Methode, mit der die Punktzahlen/Details angezeigt werden sollen. Mögliche Werte sind:
- lcd: das ist das lcd von 2004
- Konsole: Dies wird nur in das Terminal schreiben (zum Ausführen der Befehlszeile)
- oled: Unterstützung für SSD6404 Oled-Display
-
Licht: Es werden zwei Arten von Lichtern unterstützt
- Alarm: Dies wird einen einzelnen GPIO zum Ein- und Ausschalten eines Transistors ansteuern
- Multi-LED: unterstützt eine mehrfarbige oder mehrere LEDs
- keine: kein Licht angebracht
- Amp: Dies ist der GPIO, der den Transistor für den Verstärker ansteuert
Empfohlen:
So verwenden Sie den alten LCD-Bildschirm Ihres defekten Laptops wieder – wikiHow
So verwenden Sie den alten LCD-Bildschirm Ihres kaputten Laptops: Dies ist ein super einfaches, aber auch sehr tolles Projekt. Mit der richtigen Treiberplatine können Sie jeden modernen Laptop-Bildschirm in einen Monitor verwandeln. Die Verbindung dieser beiden ist ebenfalls einfach. Einfach Kabel einstecken und fertig. Aber ich ging noch einen Schritt weiter und auch b
LCD-Display-Tutorial: 4 Schritte
LCD-Display-Tutorial: Möchten Sie, dass Ihre Arduino-Projekte Statusmeldungen oder Sensormesswerte anzeigen? Dann könnten diese LCD-Displays genau das Richtige für Sie sein. Sie sind sehr verbreitet und eine schnelle Möglichkeit, Ihrem Projekt eine lesbare Oberfläche hinzuzufügen. Dieses Tutorial behandelt alles, was Sie
Palm Os-Gerät als LCD-Statusanzeige. (jetzt mit Bildern!): 4 Schritte
Palm Os-Gerät als LCD-Statusanzeige. (jetzt mit Bildern!): In diesem Artikel geht es darum, wie Sie mit Ihrem Palm OS-Gerät eine LCD-Statusanzeige für Ihren Computer emulieren! Sie können Systemstatistiken anzeigen (z. B.: CPU-Lastdiagramme, CPU-Temperaturen, freier Speicherplatz), Nachrichtenmeldungen, Aktienindizes, WinAmp-Diagramme usw
So ändern Sie das LCD Ihres Nokia Mobiltelefons.: 6 Schritte
So ändern Sie das LCD Ihres Nokia-Handys.: Diese Anleitung zeigt Ihnen, wie Sie ein defektes LCD auf Ihrem Nokia ändern. Die obigen Bilder zeigen ein Nokia 6300 classic, aber es wird bei vielen anderen Nokia Modellen gleich oder fast gleich sein. Warum sollten Sie Ihr LCD wechseln müssen? Vielleicht weil
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass