Météhome

De fablab
Aller à : navigation, rechercher
Météhome
Metehome presentation.jpg
Restez connecté au soleil

Introduction

Metehome rendu.jpg

Membres de l'équipe

  • Théo Depresle
  • Lucas Buffo
  • Vincent Bonnecuelle
  • Sébastien Anouilh
  • Valentin Mazenq

Merci pour leur coup de main pour les soudures et les découpes à :

  • Eliot Hautefeuille
  • Félix Robinet

Problématique

Ce projet a pour but de mettre en place un plafond lumineux permettant de représenter les conditions météorologiques extérieures (course du soleil, pluie, neige, ...)

Contraintes

Chaque LED qui compose le panneau lumineux doit pouvoir être adressable de manière individuelle. De cette manière, la configuration du plafond lumineux est totale. La bande de LED et le programme qui l'anime doivent s'adapter à n'importe quelle forme de pièce (rectangulaire ou autre).

Technologies et matériel

Matériel

Afin de mener à bien ce projet, le matériel suivant fut nécessaire :

  • Un Raspberry Pi 3B
  • Bande à leds adressable WS2812B de 4m (60 leds/m et waterproof)
  • Alimentation 5V 80A
  • Diode 1N4001
  • Condensateur 1mF

Technologies

Bibliothèques utilisées


  • Sunpos2 pour déterminer la position du soleil dans le ciel.
  • Numpy pour réaliser les calculs nécessaires pour projeter le soleil sur le plafond connecté

Bibliothèques utilisées dans la première version du projet

  • rpi_ws281x pour communiquer avec chaque LED adressable via la canal PWN du Pi.

Scénario d'usage

Diagramme utilisation
Diagramme d'utilisation du système

L'utilisateur potentiel du système est le propriétaire/locataire de la pièce qui accueillera le Météhome. Il peut, à partir du portail openHab, configurer la bande de leds en jouant sur les paramètres suivants :

  • L'azimut du soleil et ses coordonnées GPS latitude/longitude (peuvent être récupéré automatiquement sur internet)
  • La forme de la pièce : soit en spécifiant la longueur et la largeur du rectangle, soit via une matrice à l'aide d'un fichier texte à importer
  • La diffusion du soleil et la matrice-upscaling (paramètres avancés si l'utilisateur est expert et connait le mécanisme du système)

L'utilisateur n'a besoin de les rentrer qu'une seule fois. Il peut les modifier à sa convenance à n'importe quel moment.

Prototypage

Cette partie décrit tout le processus de conception du projet, de l'idée initiale à la mise en pratique sur la bande de leds en passant par la simulation sur ordinateur.

Partie 1 : Prise de connaissance du matériel et NéoPixel

Nous avons commencé par réaliser plusieurs tests avec les LEDs en suivant les tutoriels d'Adafruit.

Metehome bande led.jpeg


Nous avons commencé par utiliser un convertisseur de tension pour commander les bandes de LEDs.

Metehome proto 1ertest.jpeg


Nous avons ensuite tester le montage avec une diode et rajouté un condensateur pour protéger les bandes de LED des pics et chutes de tension, mais aussi le temps que l'alimentation se stabilise.


Metehome proto diode.jpg

Partie 2 : Projection du soleil, calculs et simulation

Nous avons utilisé la librairie SunPos pour récupérer deux paramètres: l'élévation et l'azimut du soleil.


Metehome Elevation soleil.png


L'élévation (Angle h) du soleil dan le ciel va évoluer en fonction de la période de l'année.

L'azimut (Angle A) change tout au long de la journée.

SunPos requiert plusieurs paramètre pour réaliser ces calculs :

  • Date
  • Heure
  • Position GPS du lieu

Nous calculons ensuite la position du soleil sur le plan. Puis nous calculons un dégradé de lumière sur ce plan par rapport au point d'impact du soleil.

Les leds sont ensuite mappées sur cette matrice.

Metehome simulation soleil.jpeg


Sur la photo ci-dessus, les leds forment une croix et le soleil va traverser la matrice.


Pour calibrer le positionnement des leds, notre programme débute par une phase d'initialisation permettant de bien aligner les différents cotés de la pièce avec les LEDs.

Metehome calibration.jpg

Le code correspondant à cette partie est disponible sur GitHub : [1]

Partie 3 : Evolution du projet

Le projet à ensuite évolué suite aux discussions avec les élèves de l'école d'architecture de Grenoble.

Nous pouvons utilisé l'intégralité du plafond du pavillon pour installer notre projet. Les rubans que nous devions installer le long des murs se sont donc transformer en une matrice géante de plus de 4m2 composé de 4096 LEDs. Pour gérer une telle bande nous avons du faire évoluer les technologies que nous utilisions.

Les contrôleurs FadeCandy [2] permettent de gérer 512 LEDs par cartes beaucoup plus simplement et avec un taux de rafraîchissement beaucoup plus élevé. Ces cartes nous permettent donc de rendre le projet beaucoup plus solide et scalable tout en simplifiant le code puisque l'affichage sur les bandes de LEDs est maintenant transmis sur les FadeCandy.

Nous avons donc du faire évoluer notre code pour le rendre compatible avec une matrice et surtout avec les nouveaux contrôleurs. Ces modifications n'ont pas pris trop de temps et nous avons pu nous consacrer par la suite au câblage des différents éléments.

Metehome simulation animated.gif Aperçu du rendu sur une matrice 64x64 (carré rouge)


Chaque 'Fadecandy accepte jusque à 512 LEDs réparties sur 8 canaux, soit un total de 64 LEDs par canal, nous avons décider de dimensionner notre installation en fonction. En utilisant des rubans de LED à 30 LEDs/mètres, la taille de notre matrice est de 2.10m par 2.10m, soit une matrice de 64x64


Nous avons donc du relier chaque canal des FadeCandy à un bandeau de 64 LEDs. La soudures des fils de contrôles sur les 8 FadeCandy.

Metehome real fadecandy cablage.jpg

Chaque fil jaune sera branché sur la piste DataIn d'un ruban. Les neutres seront mis en commun par la suite avec les alimentations.


L'alimentation d'un tel nombre de LEDs pose également quelques problèmes. Chaque LEDs consomme théoriquement 60mA lorsqu'elle fonctionne à son maximum (Blanc (255,255,255)). Nous avons décidé de brider la puissance de chaque rubans à 70% soit environ 3A par ruban.

Pour alimenter les 64 rubans nous allons utiliser 3 alimentation 5V de 80A. La puissance sera répartis vers les rubans par ces dominos :

Metehome real dominos.jpg

Partie 4 : Mise en pratique

Aprés réception de la commande tant attendu des 220 mètres linéaires de LEDS, nous avons pu passer à la réalisation du projet grandeur nature. Le timelapse est ici : [Lien google drive]

Rendez-vous dans les ateliers de l'école d'architecture pour l'installation.

Metehome installation.jpg

Première étape : La mesure et la découpe des rubans à la donne dimension.

Mesure&decoupe.jpg

Seconde étape : Connecter l'ensemble des rubans aux alimentations et aux FadeCandy.

Metehome cablage.jpg Metehome domino.jpg Metehome fadecandy.jpg

Troisième étape : La scalabilité

Metehome travail.jpg


Par manque de temps et quelques petit soucis réglementaires, nous n'avons pas pu finir l'instalation du plafond lumineux. L'ensemble du materiel maintenant découpé et raccordé à été rapporté au FabLab où il sera installé.

Petit aperçu des murs finaux du bâtiment :

Metehome murs.jpg

Code source

Le code source du projet est disponible sur GitHub : GitHub Météhome

Timelapse de la construction

Nous avons réalisé un timelaspe de la construction du projet, il est disponible ici :

Metehome timelapse.png

Commandes

 Usage: sudo python metehome.py [options]
 Options:
 --version             show program's version number and exit
 -h, --help            show this help message and exit
 -a AZIMUT_MAISON, --azimut=AZIMUT_MAISON
                       Azimut de la maison
 --latitude=LAT_MAISON
                       latitude de la maison
 --longitude=LONG_MAISON
                       longitude de la maison
 -d DIFFUSION_SOLEIL, --diffusion=DIFFUSION_SOLEIL
                       [Avancé] Coefficient de diffusion du soleil
 -u MATRIX_UPSCALING, --upscaling=MATRIX_UPSCALING
                       [Avancé] Taux d'agrandissement de la matrice de
                       visualisation du soleil
 -l LIMITE_COUCHER_DE_SOLEIL, --limite=LIMITE_COUCHER_DE_SOLEIL
                       [Avancé] Limite d'azimut permettant de débuter le
                       coucher du soleil afin de permettre un dégradé
 -f MODE_MATRIX_FILE, --file=MODE_MATRIX_FILE
                       Fichier de matrice correspondant au placement des leds
 -r, --rectangle       Génère un rectangle comme matrice. Rend -x et -y
                       obligatoire
 -x LONGUEUR_MAISON, --longueur=LONGUEUR_MAISON
                       Longueur en nombre de leds de la maison. Paramètre
                       pris en compte lorsque -r activé
 -y LARGEUR_MAISON, --largeur=LARGEUR_MAISON
                       Largeur en nombre de leds de la maison. Paramètre
                       pris en compte lorsque -r activé