Table des matières:

Spectacle de lumière d'arbre de Noël Raspberry Pi : 15 étapes (avec photos)
Spectacle de lumière d'arbre de Noël Raspberry Pi : 15 étapes (avec photos)

Vidéo: Spectacle de lumière d'arbre de Noël Raspberry Pi : 15 étapes (avec photos)

Vidéo: Spectacle de lumière d'arbre de Noël Raspberry Pi : 15 étapes (avec photos)
Vidéo: Cette Fille a 200 de QI 2024, Novembre
Anonim
Image
Image

Mise à jour: j'ai mis une évolution mise à jour de cet arbre pour 2017 à ce https://www.instructables.com/id/LED-Christmas-Tree-With-Video-Projector-Rasp-Pi/ instructable

Ce projet consiste à utiliser un Raspberry Pi pour piloter 8 prises secteur connectées à des jeux de lumières d'arbre de Noël. Les lumières AC sont de simples brins de lumières d'une couleur, mais pour donner une plage plus dynamique au spectacle de lumière, il y a aussi une étoile à 25 LED RVB programmable. L'un des avantages d'utiliser le Raspberry Pi au lieu d'un contrôleur Arduino est que je peux extraire l'audio du Raspberry Pi pour que les lumières soient synchronisées avec de la musique (sans parler de l'avantage d'avoir une connexion WiFi pour travailler à distance sur le logiciel).

Étape 1: Matériaux

Matériaux
Matériaux

Gardez à l'esprit que les matériaux ci-dessous sont ce que j'ai utilisé pour ce projet. Dans de nombreux cas, des pièces/solutions alternatives peuvent être utilisées.

Voici les matériaux que j'ai utilisés pour ce projet:

Pour le contrôleur:

  1. Raspberry Pi (le modèle B est ce que j'ai utilisé)

    • Carte SD
    • Adaptateur Wi-Fi USB
  2. Carte de module SSR SainSmart 8 canaux 5V - Amazon

    J'ai évité les relais mécaniques car le cliquetis de l'interrupteur sera perceptiblement audible, et nous sommes passés aux relais statiques. Cette carte est évaluée jusqu'à 2 ampères par SSR, ce qui est suffisant pour alimenter une guirlande de lumières de Noël

  3. Fils de connexion - Peut être trouvé pas cher sur Ebay
  4. Prise JST SM + Prises - Adafruit
  5. Rouleau de fil de 32 pieds (ou quatre morceaux de fil de 8 pieds)
  6. Rallonge x 8
  7. Bloc de distribution d'alimentation x 2 - AdaFruit
  8. Multiprise
  9. Alimentations

    • 5 volts, 3 ampères ou plus pour piloter les LED et Pi
    • 5 volts, 1 A ou plus pour piloter le module SSR
  10. Enceinte
  11. Haut-parleurs

Pour l'étoile:

  1. LED RVB de 12 mm (brin de 25) - La puce AdafruitWS2801 de ce produit permet au Pi de n'avoir qu'à pulser le brin une fois plutôt que de pulser en continu la ligne pour garder les LED allumées.
  2. Feuille de plastique ABS pour maintenir les LED en place - Walmart
  3. Plaque Lexan pour diffuser les LED - Lowes
  4. Peinture noire en aérosol
  5. Peinture en aérosol blanche
  6. Bois

Pour l'arbre:

  1. Blanc 100 brins lumineux x 4
  2. Blanc 50 brin de lumière
  3. Fil de lumière rouge 100 x 2
  4. Vert 100 brin de lumière x 2
  5. Bleu 100 brins lumineux x 2

Étape 2: Configurer le Raspberry Pi

Avant de plonger dans le câblage, je voulais d'abord que le Pi soit opérationnel pour tester les composants au fur et à mesure qu'ils étaient connectés. Cette configuration a été effectuée avant la configuration du boîtier et implique le Raspberry Pi connecté via une alimentation USB à un moniteur et à un clavier. L'objectif est de configurer le système au point que le développement puisse se poursuivre sur le Pi dans l'enceinte.

L'installation par défaut de Pi n'a pas les bibliothèques nécessaires pour piloter correctement les LED WS2801 dans l'étoile, j'ai donc installé le système d'exploitation Occidentalis d'AdaFruit sur le Pi.

Après l'installation d'Occidnetalis, une petite configuration supplémentaire a été impliquée:

1) Configurez le Pi pour démarrer à une invite de commande (pas l'interface GUI)

2) Configurez l'interface réseau sans fil sur le Pi en éditant /etc/network/interfaces. Assurez-vous de choisir une adresse IP statique afin de pouvoir vous connecter à une adresse connue pour travailler sur le Pi

3) Installez les services Telnet et FTP.

4) Installez Pygame. La bibliothèque est utilisée dans les scripts python pour lire les fichiers MP3/WAV

Des instructions détaillées pour l'installation/la configuration peuvent être trouvées facilement via des recherches sur Internet. De nombreuses ressources existent sur le Pi en ligne.

Après ce point, je peux déconnecter n'importe quelle sortie vidéo et clavier car le Pi peut être connecté à distance.

Étape 3: commencer à configurer le boîtier

Commencer à configurer le boîtier
Commencer à configurer le boîtier

Je n'entrerai pas dans les détails sur la façon de construire l'enceinte car il ne s'agit que d'une boîte en bois. J'ai percé des prises de 1,5 de diamètre aux extrémités du boîtier. À droite se trouve le trou où s'écoulent toutes les rallonges et le cordon en étoile et à gauche se trouve le trou où passent la multiprise et la sortie audio.

Les premiers composants à monter sont la multiprise et le Raspberry Pi. Pour alimenter le Pi, j'utilise le même transformateur 5V pour alimenter l'étoile et le Pi (indiqué en vert). À cause de cela, j'ai l'alimentation allant à un bornier (surligné en blanc) où le 5V bifurque vers le câblage en étoile et vers le Pi

Broche 2 = 5V

Broche 6 = Terre

Une fois connecté, mettez l'appareil sous tension et le Pi devrait démarrer et être accessible via Telnet lors de la configuration de l'étape précédente.

Étape 4: connexion du Raspberry Pi au module relais

Connecter le Raspberry Pi au module relais
Connecter le Raspberry Pi au module relais

Avec toutes les alimentations hors tension (alimentations et Pi), connectez le 5 volts aux deux connecteurs de source d'alimentation externes inférieurs. J'ai conduit cela avec une alimentation dédiée de 5 volts attachée à la multiprise. C'est pour que le Pi n'ait pas toute la charge de piloter le relais (le problème est que 8 relais simultanés soient activés) et qu'à la place, il puisse simplement piloter un transistor pour activer l'alimentation externe du relais.

Déterminez maintenant l'emplacement du GPIO0 à GPIO7 sur le Raspberry Pi. Sur mon modèle B c'est:

GPIO0 = Broche 11

GPIO1 = Broche 12

GPIO2 = Broche 13

GPIO3 = Broche 15

GPIO4 = Broche 16

GPIO5 = Broche 18

GPIO6 = Broche 22

GPIO7 = Broche 7

Terre/0V = Broche 6, Broche 9, Broche 14, Broche 20, Broche 25

Étant donné que la connexion sur le module SSR est vissée, j'ai coupé chaque cavalier à la bonne taille en fonction de l'espacement des composants. Connectez les 8 canaux d'entrée ainsi que la masse du Pi sur la carte. Les pinces à bec effilé aident à asseoir correctement les cavaliers dans l'en-tête Pi.

Chaque canal a une LED sur le module SSR qui s'allumera lorsque GPIO passe à un niveau élevé sur le Pi. Exécutez un programme de test simple pour vérifier toutes les connexions, joint en tant que test.py, où chaque GPIO0-7 est défini sur un niveau élevé pendant deux secondes.

Étape 5: Coupez et préparez les rallonges

Couper et préparer les rallonges
Couper et préparer les rallonges

Sur chaque rallonge, coupez l'extrémité de la fiche en laissant la longueur maximale disponible à l'extrémité prise du cordon car elle devra éventuellement aller au sommet de l'arbre. Sur le cordon, séparez les extrémités du fil en coupant le mince morceau de plastique qui maintient les deux fils ensemble. Maintenant, dénudez les extrémités de sorte qu'environ 1/4 de fil soit exposé pour la vis sur les connecteurs.

Utilisez un marqueur Sharpie sur chaque extrémité à douille du cordon pour écrire les chiffres 1 à 8 afin que vous puissiez facilement identifier quelle prise va à quel canal sur le module SSR.

Nous aurons également besoin d'une prise et d'un fil supplémentaire pour l'étape suivante, donc soit cannibaliser une 9ème rallonge, soit laisser de la place supplémentaire sur les 8 rallonges lorsque vous coupez l'extrémité de la fiche.

Étape 6: connexion des rallonges CA

Connexion des rallonges CA
Connexion des rallonges CA
Connexion des rallonges CA
Connexion des rallonges CA

L'étape suivante accroche l'extrémité de sortie du module SSR avec 8 rallonges. Étant donné que la quantité de fils ici peut être encombrée très facilement, j'ai utilisé un bloc de distribution d'alimentation et une agrafeuse pour essayer de tout garder en place.

Avec la mise hors tension, prenez l'extrémité de la fiche coupée de l'étape précédente et branchez-la à la multiprise. Dénudez les deux autres extrémités et connectez chacune au bloc de distribution d'alimentation supérieur et inférieur et agrafez ces deux connexions vers le bas.

Connectez maintenant l'une des rallonges coupées de l'étape précédente. Dans mon cas, j'ai un boîtier avec un trou de 1,5 de diamètre pour que tous les cordons s'écoulent, donc surligné en vert est l'un des cordons avec une extrémité connectée au bloc de distribution et l'autre à l'extrémité de sortie du module SSR. Pour compléter le circuit, nous avons besoin d'un fil beaucoup plus court (indiqué en bleu) qui relie l'autre bloc de distribution au module SSR. Coupez et agrafez pour que tout soit aussi propre que possible. Non seulement l'agrafe garde les choses en ordre, mais elle sert également à décharge de traction afin que tout tiraillement lors de la connexion des lumières à l'arbre ne retirera pas les connexions des composants. Inutile de dire que lors de l'agrafage, l'agrafe ne perce pas le fil ou l'isolant.

Étape 7: Testez les branchements CA

Testez les branchements CA
Testez les branchements CA
Testez les branchements AC
Testez les branchements AC

Plutôt que de brancher des guirlandes complètes de lumières de Noël, j'ai branché des veilleuses bon marché à 1 $ à chaque rallonge pour tester et développer les animations avant que l'arbre ne soit debout. J'ai peint les lumières connectées aux cordons qui contrôleraient les guirlandes lumineuses rouge, verte et bleue.

Exécutez le même programme de test utilisé pour tester le module SSR et assurez-vous que chaque connexion s'allume correctement.

La boîte de lumières indiquait que chaque chaîne consommerait 0,34 ampères, et pour les lumières colorées, j'allais enchaîner deux ensembles, ce qui devrait entraîner une consommation totale de 0,68 ampères. C'est bien en dessous de la valeur nominale du SSR qui est de 75 - 200 VCA à 2 ampères, mais je voulais vérifier car le fusible du module SSR est soudé à la carte, ce qui le rend difficile à remplacer.

Étape 8: Création de l'étoile

Créer l'étoile
Créer l'étoile
Créer l'étoile
Créer l'étoile
Créer l'étoile
Créer l'étoile
Créer l'étoile
Créer l'étoile

La première étape de la création de l'étoile consiste à créer un modèle imprimable pour aider à façonner le cadre en bois et en plastique. Après avoir mis à l'échelle et imprimé le modèle à la taille appropriée, j'ai pris un morceau de bois de 4,25 "x 0,125" dans le magasin d'artisanat et j'ai mesuré la distance nécessaire pour chaque côté de l'étoile. En fait, je n'ai biseauté aucun des joints lorsque je les coupais, donc la formation de l'étoile nécessitait un support pour maintenir les pièces en place pendant le collage.

En plaçant le gabarit sur la surface de travail, j'ai utilisé des supports pour maintenir les deux morceaux de bois en place comme indiqué en marron sur la photo. Les deux bords du bois se touchant, de la colle a été appliquée de chaque côté du joint. Ensuite, en prenant un fin morceau de balsa, j'ai découpé un triangle pour réparer les deux morceaux ensemble et l'ai collé sur l'étoile. La raison de l'utilisation du balsa est qu'une fois que l'étoile est fermement ensemble, j'ai pu facilement poncer le triangle pour qu'il corresponde au contour de l'étoile, représenté encerclé dans l'image de l'étoile.

En raison de la méthode de construction, j'ai dû attendre quelques heures sur chaque joint pour que la colle sèche avant de passer au joint suivant.

Une fois que l'étoile entière a été formée, j'utilise des plaques de plâtre pour couvrir les espaces où deux morceaux de bois se sont rencontrés aux extrémités de l'étoile.

J'ai ensuite collé quelques petits bouchons autour de l'intérieur de l'étoile pour aider à asseoir l'assemblage de LED en place une fois inséré, mis en évidence avec un rectangle. Je ne pense pas qu'ils soient réellement nécessaires car la gravité maintient l'ensemble LED en place.

En déposant l'étoile assemblée sur le dessus de la feuille de Lexan, tracez la forme de l'étoile et découpez l'étoile dans le Lexan. Après avoir coupé l'étoile Lexan, vérifiez qu'elle rentre dans le cadre en bois, puis appliquez 2 couches de peinture en aérosol blanche sur un côté du Lexan et laissez sécher pendant 24 heures. Cela permet aux LED d'être diffusées et de les cacher à la vue.

Pour cacher le capuchon entre l'étoile Lexan et le cadre en bois, j'ai utilisé une petite bande de bois de balsa de 0,25 "et je l'ai coupé en forme et j'ai "coiffé" le cadre de sorte que le balsa couvre l'espace.

Enfin ajouté un bâton/goujon pour aider à attacher l'étoile à la cime de l'arbre.

Étape 9: Créer le montage LED

Créer le montage LED
Créer le montage LED
Créer le montage LED
Créer le montage LED

En utilisant le même gabarit pour former l'étoile en bois, découpez la feuille de plastique ABS à la taille, mais légèrement plus petite pour pouvoir l'insérer à l'intérieur de l'étoile en bois. Testez qu'il s'adapte bien à l'intérieur de l'étoile en bois.

Ensuite, toujours en utilisant le gabarit avec les emplacements des trous, percez les 25 trous de LED. Les LED d'AdaFruit ont une bride en silicone à l'extérieur afin qu'elles se montent parfaitement dans des trous percés à 12 mm. Sur la photo, vous pouvez voir la bride et j'ai utilisé une ligne verte pour indiquer où le plastique ABS engagerait la bride pour maintenir la LED en place.

Commencez par l'une des pointes et contournez l'extérieur de l'étoile, puis passez aux 5 supports intérieurs pour terminer la pièce. Dans mon programme, j'ai câblé les positions des LED comme indiqué numériquement sur l'image, 1 étant la première LED après le connecteur.

Appliquez du ruban isolant sur les extrémités rouge et bleue du câble. Ce sont des entrées secondaires pour l'alimentation que nous n'utiliserons pas, et utiliserons à la place la connexion rouge/bleue avec la connexion horloge/signal sur le câble lui-même.

Étape 10: Création du fil d'extension pour l'étoile LED

Création du fil d'extension pour l'étoile LED
Création du fil d'extension pour l'étoile LED
Création du fil d'extension pour l'étoile LED
Création du fil d'extension pour l'étoile LED

Ensuite, créez un câble de 8 pieds pour aller de l'enceinte à l'étoile au sommet de l'arbre.

Coupez 4 morceaux de longueur égale de fil de 8 pi et à une extrémité du faisceau de câbles, utilisez du ruban isolant ou des attaches pour garder le faisceau ensemble et bien rangé. Faites-le sur toute la longueur du faisceau de 4 câbles tous les deux pouces.

À chaque extrémité du faisceau, dénudez les fils et soudez aux connecteurs JST afin que le fil puisse connecter une extrémité au boîtier et l'autre à l'étoile. Assurez-vous de garder la position relative des fils dans le bon ordre afin que lorsqu'ils sont branchés sur l'étoile, les connexions Bleu/Vert/Jaune/Rouge correspondent à l'autre extrémité du câble. Utilisez un multimètre pour vérifier le câble pour vous assurer qu'il est correctement câblé.

Étape 11: câblez l'étoile au Pi

Câbler l'étoile au Pi
Câbler l'étoile au Pi

Nous devons maintenant créer le réceptacle dans le boîtier pour le fil étoile/rallonge à brancher.

Rouge = 5 Volts

Bleu = Terre

Nous pouvons donc câbler ces deux lignes sur le connecteur JST au bornier auquel l'alimentation du Raspberry Pi est connectée.

Les deux autres connexions sont:

Jaune = Données = MOSI = Broche 19

Vert = Horloge = SCLK = Broche 23

J'ai suivi le câblage du tutoriel d'AdaFruit. Dénudez donc les extrémités de deux câbles de démarrage afin qu'ils puissent être soudés sur le connecteur JST.

Une fois que vous êtes sûr que le câblage obtiendra les signaux appropriés aux LED, vous pouvez stabiliser le connecteur dans le boîtier pour le soulagement de la traction afin que toute traction sur le câble d'extension n'arrache pas les cavaliers du Pi.

Étape 12: Testez l'étoile LED

Testez l'étoile LED
Testez l'étoile LED
Testez l'étoile LED
Testez l'étoile LED

Avec l'étoile LED connectée au Pi. Exécutez un programme de test simple pour vérifier que l'éclairage fonctionne correctement. Une grande partie de mon code est adaptée du didacticiel AdaFruit ainsi que d'un article de forum sur le site Web sur l'adaptation du code du didacticiel aux LED que nous utilisons.

Le ledtest.py ci-joint fera passer lentement l'étoile du bleu pur au rouge pur.

Étape 13: connectez les haut-parleurs, construisez un haut de boîtier

Connectez les haut-parleurs, construisez un boîtier
Connectez les haut-parleurs, construisez un boîtier

Rien de spécial ici, il suffit de connecter les haut-parleurs à la sortie audio du Raspberry Pi et de les brancher sur la multiprise. Un simple haut-parleur alimenté avec un bouton de réglage du volume fonctionnera.

Pour le dessus, je voulais pouvoir regarder dans l'enceinte, alors j'ai monté un morceau de verre 8,5 x 11 (à partir d'un cadre photo) sur le couvercle et j'ai utilisé du velcro sur le dessus pour pouvoir retirer rapidement le dessus si nécessaire. Une grande partie de l'enceinte est exposée à 110 VAC, il est donc important que le dessus offre une protection contre quiconque ou quoi que ce soit d'un contact accidentel.

Étape 14: Connectez l'éclairage à l'arbre

Connectez l'éclairage à l'arbre
Connectez l'éclairage à l'arbre

J'ai sélectionné la disposition des canaux sur le sapin de Noël pour me donner le maximum de flexibilité pour générer différents types de mouvements/effets. Ci-joint une photo de la façon dont j'ai disposé l'éclairage pour les 5 brins blancs. Les trois canaux restants étaient chacun un ensemble de deux 100 lumières de couleur claire: Rouge, Vert, Bleu.

La rallonge particulière que vous branchez sur chaque brin n'est pas critique car à l'étape suivante, je peux personnaliser le mappage entre GPIO0-7 et les lumières sur l'arbre.

Étape 15: Charger/Créer de la musique, des logiciels, des séquences…

Image
Image

Il existe de nombreux séquenceurs de lumière de Noël disponibles en ligne pour le Raspberry Pi, mais j'en ai codé un simple à partir de zéro. Toutes les séquences ont été générées en alignant les timings des battements/mesures dans Audacity (éditeur audio) sur des commandes particulières de mon séquenceur.

rxmas.py

Ce programme choisira au hasard une disposition statique pour l'arbre toutes les minutes. J'ai ce script qui s'exécute au démarrage du Raspberry Pi (via une tâche cron) comme comportement par défaut lors du branchement de l'unité.

noël.py

C'est le programme séquenceur, qui prend en entrée un fichier séquence et un MP3

setup.txt

À l'étape précédente, j'ai fourni la disposition que j'ai utilisée pour chaque canal logique. Ce fichier mappe chaque GPIO0-7 réel au canal logique. Donc, dans le setup.txt que j'ai joint, la rallonge de GPIO0 pilote le canal logique 8 (bleu), GPIO1 pilote le canal logique 6 (rouge), etc…

test.mp3 / test.txt

Il s'agit d'un cas de test simple d'un décompte audio des nombres 1 à 8 avec les guirlandes lumineuses équivalentes s'allumant

Donc pour invoquer cet exemple, tapez:

./xmas.py test.txt test.mp3

carol.txt

Le fichier séquenceur pour Noël Sarajevo par Trans-Siberian Orchestra

LetItGo.txt

Le fichier séquenceur de Let It Go du film Frozen de Disney

russe.txt

Le fichier séquenceur pour "A Mad Russian's Christmas" par Trans-Siberian Orchestra

Vous devrez évidemment fournir vos propres fichiers LetItGo.mp3 et carol.mp3 ! Achetez-les simplement sur Amazon.

REMARQUE: La vidéo YouTube intégrée est accélérée jusqu'à 110 %, elle peut donc sembler un peu étrange.

Faites-le briller !
Faites-le briller !

Premier prix du Make it Glow!

Conseillé: