P33 Ligthing contactless / "wireless"

De Wiki de Projets IMA
Révision datée du 11 décembre 2014 à 15:10 par Blafit (discussion | contributions) (Semaine 03 (06/10 - 12/10))

Présentation du projet

Contexte

Mesure et pilotage de la lumière en ON/OFF ou gradation d'une habitation via des gestes significatifs ou via un smartphone.

Cahier des charges

Le But de ce projet est de piloter l'éclairage d'une habitation, le produit devra donc s'alimenter en 220V (P+N) et rentrer dans une boite électrique encastrable standard NF. Le dispositif pourra aussi être caché dans le mur (placo) pour disparaître.

Il doit permettre à l'utilisateur de piloter via des gestes de la main l'éclairage (base Microchip MGC3130):

  • mouvement de la main du haut vers le bas pour éteindre
  • mouvement de la main du bas vers le haut pour allumer
  • rotation de la main pour augmenter ou diminuer la luminosité

L'utilisateur pourra récupérer l'information de consommation électrique sur son smartphone et pourra aussi allumer/éteindre ou faire une gradation tout cela en liaison Bluetooth Low Energy (Bluetooth 4.0).

Présentation des outils

Le PCB de la carte sera développé à l'aide du logiciel Eagle, qui est un logiciel de CAO (Conception Assistée par Ordinateur) de circuits électroniques.

La programmation du microcontrolleur PIC de la carte de démonstration sera faite à l'aide du logiciel MPLAB X.

J'utiliserai le logiciel IAR Embedded Workbench pour programmer la puce Bluetooth Low Energy (BLE) CC2541 de Texas Instrument.

Avancement du projet

Semaine 01 (22/09 - 28/09)

Prise de connaissance du sujet, début de réflexion sur la fonctionnalité du système dans son ensemble.

Semaine 02 (29/09 - 05/10)

Afin de pouvoir connaitre la position et le mouvement de la main, j'utiliserai une puce MGC3130 de Microchip (http://www.microchip.com/wwwproducts/Devices.aspx?product=MGC3130). Ce composant permet de suivre des mouvements dans un environnement 3D grâce à un champ magnétique. Il est contrôlé au moyen d'une communication I2C ou SPI et permettra de capter les mouvement jusqu'à environ 15cm, notre système pourra donc être totalement sans contact.

De plus, afin d'établir la communication BLE, mon choix s'est fait sur la puce CC2541 de Texas Instrument (http://www.ti.com/lit/ds/symlink/cc2541.pdf). Ce choix a été fait en comparaison avec le CC2540 car ce dernier consomme plus de courant et surtout ne comporte pas de bus I2C alors que j'utiliserai celui-ci pour la communication avec le MGC3130. L'avantage de cette puce BLE c'est qu'elle est basée sur un microcontrôleur Intel, le 8051 et permettra donc au moyen de ses entrées/sorties de contrôler tout le système sans la nécessité d'ajouter un microcontrôleur annexe. Ce qui sera un gain de place, de coût mais aussi de consommation.

Semaine 03 (06/10 - 12/10)

Notre produit aura pour but de contrôler un éclairage, or, il existe plusieurs types d'éclairages qui ne seront pas contrôlés de la même façon. Le problème se posera sur la gradation de lumière, car le ON/OFF ne sera en rien différents d'un éclairage à un autre.

  • Ampoule incandescente : c'était l'ampoule la plus courante, aujourd'hui en grande partie remplacée par des ampoules dites "à économie d’énergie". C'est la plus simple à contrôler en gradation car il suffit d'abaisser la tension à ses bornes pour qu'elle éclaire moins et vice versa.
  • Ampoule fluo-compactes (à économie d’énergie) : celle-ci comporte de l'électronique, son contrôle en gradation sera donc plus complexe.
  • Néon :
  • Ampoule à LED :

Il faut donc réfléchir au type d'éclairage visé et aux solutions à mettre en œuvre pour le contrôler.

Semaine 04 (13/10 - 19/10)

La communication entre le microcontrôleur et MGC3130 se fera au moyen du protocole I2C. Ce protocole permet au moyen de 2 fils de communiquer entre plusieurs périphériques, il permet nottement plusieurs maîtres et plusieurs esclaves. Ici aurons un maître, le microcontrôleur et un esclave : le MGC3130.

Description du fonctionnement du protocole I2C :

  • SDA : fil de transmission de données
  • SCL : fil de transmission de l'horloge, celle ci sera générée par le maître.

Description de la trame de données :

Semaine 05 (20/10 - 26/10)

Dans le cadre de mon CDD au sein d'INODESIGN j'ai créé une carte électronique de démonstration basé sur un PIC16F1713 et la puce MGC3130 accompagnée de quelques LEDs. Je vais donc pouvoir utiliser cette carte pour prendre en main la communication I2C avec le MGC3130.

Installation des outils necessaires au développement sur microcontrôleur PIC :

  • l'environnement de développement utilisé sera MPLAB X, qui est l'environnement officiel de Microchip, celui possède l'avantage de pouvoir être utilisé sur plusieurs système d'exploitations différents (Linux, Windows, OS X).
  • le programmateur sera le MPLAB ICD 3 de Microchip.

Afin de prendre en main les outils et la programmation sur microcontrôleur PIC, j'ai d'abord créé un petit programme afin de contrôler les différentes LEDs.

Semaine 06 (27/10 - 02/11)

Semaine 07 (03/11 - 09/11)

Test de communication I2C, pour faire ces tests j'ai utilisé le module USB vers I2C "C232HM-DDHSL-0". Peu de documentation est fourni avec ce module, néanmoins quelques exemple de code sont présents. J'ai modifié le code afin qu'il communique avec un module I2C très simple, il s'agit d'un driver de LED PCA9532 qui se trouve sur une petite carte électronique comprenant, deux PCA9532 afin de contrôler 8 leds RGB. Malheureusement les tests s'avèrent peu concluant, l'ordinateur ne peut ouvrir une communication I2C. Les drivers utilisé par ce câble étant assez spécifiques, nous avons décidé de commander une nouvelle interface USB/I2C avec laquelle une application de démo est fournie. Cette application permet de communiquer en I2C de manière basique et c'est cela que nous recherchons.

Semaine 08 (10/11 - 16/11)

Réception de l'"USB interface adapter" de Texas Instrument. Début des tests de communication avec la carte de LEDS.

En parallèle, j'ai installé l'environnement de développement Android (ADT) basé sur Eclipse afin de me familiariser avec la programmation Android.

Semaine 09 (17/11 - 23/11)

Semaine 10 (24/11 - 30/11)

Semaine 11 (01/12 - 07/12)

Semaine 12 (08/12 - 14/12)

Semaine 13 (15/12 - 21/12)