Table des matières:

Lampe de chevet et écran LCD de la LNH : 4 étapes (avec photos)
Lampe de chevet et écran LCD de la LNH : 4 étapes (avec photos)

Vidéo: Lampe de chevet et écran LCD de la LNH : 4 étapes (avec photos)

Vidéo: Lampe de chevet et écran LCD de la LNH : 4 étapes (avec photos)
Vidéo: ANGÈLE CONTRE SA PROPRE IA (SAYIAN) 2024, Novembre
Anonim
Image
Image
Lampe de chevet de hockey et écran LCD de la LNH
Lampe de chevet de hockey et écran LCD de la LNH

introduction

Le "NHL Light" est destiné aux amateurs de hockey qui veulent suivre leur équipe, mais ne peuvent pas regarder tous les matchs. Sa meilleure caractéristique est qu'il simule un score de but avec une corne de hockey (personnalisée pour votre équipe) et de la lumière.

En plus du klaxon et de la lumière de hockey, le "NHL Light" dispose d'un affichage qui fournit le score du match actuel ou le plus récent, l'heure du match ou l'heure du prochain match, ainsi que la date et l'heure actuelles.

Le "NHL Light" fonctionne avec une simple liste de pièces, des composants électroniques faciles à assembler et un code disponible gratuitement.

Caractéristiques

  1. Configuration basée sur une page Web pour sélectionner votre équipe et wifi
  2. Joue de la lumière et du klaxon lorsque votre équipe marque (même lorsque vous êtes l'équipe à l'extérieur)
  3. Joue le son pour annoncer le début du jeu
  4. Joue un son pour annoncer la fin du jeu
  5. Fournit l'heure et la date du prochain jeu, si aucun jeu n'est en cours.
  6. Affiche l'heure et la période de jeu en cours, si le jeu est en cours.
  7. Affiche la date et l'heure actuelles.

Étape 1: Étape 1: Assemblez vos pièces

Étape 1: Assemblez vos pièces
Étape 1: Assemblez vos pièces

Voici une liste de pièces.

  1. Framboise Pi W*

    1. Amazone
    2. Je préfère obtenir le mien auprès de Microcenter, mais je peux le trouver en ligne pour moins cher à d'autres endroits.
    3. $10
  2. Carte SD (4 Go minimum)*
  3. haut-parleur - Amazon - ~$2 *
  4. ampli - PAM8403* - Amazon - ~1 $ chacun
  5. lumière - Amazone - ~ 5 $
  6. Caisse - 1 $*

    1. celui de Michel
    2. Je recommande la petite caisse de bricolage en bois du magasin d'artisanat de Michael, mais je vous laisse!
  7. ACL I2C 2004 - 3 à 7 $

    1. Amazone
    2. Le code prend en charge 3 types d'écrans LCD, mais I2C 2004 est celui que j'ai choisi comme meilleure valeur et taille. (SSD1306 est également possible)
  8. 2 transistors - 2N2222A- Amazon
  9. Fils divers / soudure12V
  10. alimentation - Amazon
  11. Convertisseur buck 12V -> 5V - Amazon

*Il y a une flexibilité quand il s'agit de choisir cette pièce.

REMARQUE: vous pouvez commencer la plupart de ce projet avec uniquement votre Raspberry Pi, pendant que vous attendez que d'autres articles soient expédiés.

Étape 2: Étape 2: Câblage et électronique

Étape 2: Câblage et électronique
Étape 2: Câblage et électronique
Étape 2: Câblage et électronique
Étape 2: Câblage et électronique
  1. Assembler la lumière

    1. Le câblage pour la lumière doit courir 12 + à la lumière.
    2. Exécutez le négatif de la lumière à travers l'un des transistors.
    3. L'émetteur du transistor va à la masse.
    4. Le collecteur du transistor va au Raspberry Pi.
  2. Assembler le son

    1. Exécuter le son à droite ou à gauche de PI à l'ampli
    2. Courez +5V à l'ampli
    3. Exécutez la masse de l'ampli au 2ème transistor.
    4. Exécutez l'emmetteur du 2ème transistor à la terre
    5. Exécutez le collecteur du transistor vers le Raspberry Pi
  3. Assembler le câblage au PI
  4. Il s'agit des instructions de brochage pour le PI (certaines d'entre elles sont configurables via le JSON)

    1. ACL

      1. 3 - ADD
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Lumière 10 (GPIO15)
    4. Son droit - GPIO 18

Étape 3: Étape 3: Configuration du logiciel du système d'exploitation

  1. Préparer le Raspberry Pi W

    1. Le rasberry pi doit exécuter une version récente de Raspbian (ou autre Debian).
    2. Recommandé de suivre ces instructions:
    3. Assurez-vous d'inclure le fichier wifi wpa_supplicant.
    4. Mettez le fichier ssh sur la carte SD pour autoriser l'accès ssh.
  2. Préparez le logiciel tiers:

    1. J'ai automatisé ce processus pour extraire tous les outils tiers nécessaires, mais n'hésitez pas à les exécuter manuellement et à vérifier pour vous assurer qu'aucune étape n'échoue.
    2. Téléchargez et exécutez le script suivant:

Voici une ventilation de ce que fait le script d'installation pour la configuration du système d'exploitation. Il est préférable d'exécuter ces lignes manuellement afin de surveiller les erreurs.

En-tête de script:

#!/bin/sh -e# peut être appelé via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # A FAIRE: automatiser ce script avec quelque chose comme: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # A FAIRE: configurer le wifi # A FAIRE: configurer le mot de passe et les clés autorisées # notes:

Mettre à jour le logiciel au niveau du système d'exploitation:

#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

Configuration du réseau. Une partie de l'objectif ici était de permettre au système d'être configuré via un point d'accès, pour se connecter à votre propre wifi, mais cela n'a pas encore été entièrement testé. Il est actuellement recommandé d'utiliser la méthode wpa_supplicant pour configurer le wifi.

#networking setupecho nhllight > /etc/hostname #TODO: corrige le /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # note: l'autre configuration est effectuée via les fichiers de configuration et le shell extraits dans le cadre de la mise à jour

Mettre à jour le nœud et les bibliothèques de nœuds

#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 LICENCE cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #À FAIRE: créer un lien sym pour le nœud binaire ? 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/

#mettre à jour le nœud

#installer les dépendances des nœuds dans le répertoire nhl export NODE_PATH=/usr/local/lib/node_modules

#HACK - TODO - corrige ce boiteux qui ne s'installera pas globalement

cd /opt/nhl npm install lame # lame, est boiteux, ne s'installera pas globalement 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 # n'installera pas globalement cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus # n'installera pas globalement cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #n'installera pas globalement cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #n'installera pas globalement cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH

npm install oled-font-5x7 # n'installera pas globalement

cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH

npm install onoff # n'installera pas globalement

cp -R /opt/nhl/node_modules/onoff $NODE_PATH

#npm install pm2 #ne s'installera pas globalement

#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #n'installera pas globalement #cp -R /opt/nhl/node_modules/express $NODE_PATH

# tous les modules globaux

npm install express body-parser child_process pm2 -g

Tirez le dernier code:

#pull git codecd /opt/nhl #JSON est une création unique 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 un script automatisé pour installer tout le reste pour NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Téléchargez les cornes !

#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -

mettre à jour les fichiers de configuration Raspberry pi - - peut-être besoin de changer pour votre système

#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. SMS

#TODO: est-ce nécessaire ?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules

amixer cset numid=1

#À FAIRE: régler le volume, 60 % ?

Automatisez l'automatisation, comme le démarrage et les mises à jour du code:

# update rc.local# REMARQUE: déplacer le fichier, car le standard inclut un "exit" dans la dernière ligne, donc ne peut pas simplement ajouter 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

#À FAIRE: besoin d'ajouter quelque chose pour effectuer les mises à jour logicielles régulières hebdomadaires comme celle-ci # Peut-être simplement copier ce fichier directement dans le dossier 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

Divers, comme le réglage du fuseau horaire:

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

# mettre à jour la variable d'environnement avec node_path

cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: définissez ceci pour le nœud self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Utilisez PM2 pour la configuration du serveur de nœud:

#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 expose-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 save pm2 startup exit 0

Étape 4: Étape 4: Mettre à jour la configuration JSON

Configurez votre fichier de configuration JSON pour l'équipe que vous préférez, etc. Ce fichier se trouve dans /opt/nhl GO CAPITALS ! fichier de configuration JSON

Le logiciel utilise un fichier JSON pour configurer le matériel et l'équipe que vous suivez. L'équipe peut être définie via le serveur Web qui sera exécuté, mais la configuration matérielle doit être définie manuellement:

{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }

Voici une explication de chaque valeur possible:

  • myteam: c'est le code à 3 lettres de l'équipe que vous souhaitez suivre
  • debug: les valeurs possibles sont 1 (vrai) ou 0 (faux) et contrôleront la quantité de journalisation écrite.
  • sortie: c'est la méthode par laquelle les scores/détails doivent être affichés. Les valeurs possibles sont:

    • lcd: c'est l'écran LCD 2004
    • console: cela n'écrira que dans le terminal (pour exécuter la ligne de commande)
    • oled: prise en charge de l'écran oled SSD6404
  • lumière: il existe deux types de lumières pris en charge

    • alarme: cela conduira un seul GPIO pour allumer/éteindre un transistor
    • multi-led: prend en charge un multicolore ou plusieurs leds
    • aucun: pas de lumière attachée
  • ampli: c'est le GPIO qui pilote le transistor pour l'ampli

Conseillé: