• Aucun résultat trouvé

Chapitre V. Etudes expérimentales

V.3. Etude expérimentale d’un lien VLC

V.3.2. Etage d’émission

V.3.2.1. LED et circuit de commande

La technologie VLC se caractérise par l’utilisation de LED pour envoyer un signal. La première étape est donc de choisir un composant permettant de répondre aux contraintes du système.

Comme nous l’avons vu dans le chapitre II, il existe différents types de LED permettant de communiquer. Afin de simplifier la conception du prototype et pour réduire son coût, nous avons orienté notre choix vers des LED à base de semi-conducteur émettant dans le bleu avec phosphore qui sont les plus disponibles et les moins chères. Les prix pour ce type de composant varient aujourd’hui entre quelques centimes et plusieurs dizaines d’euros.

Les LED sont principalement caractérisées par 3 paramètres : l’angle à mi-puissance, la puissance émise et la bande passante.

Concernant ce dernier critère, la majorité des composants actuels sont conçus pour avoir une bande passante de plusieurs MHz, ce qui est largement suffisant pour notre application puisque la voie montante IR a un débit inférieur à 100 kbit/s.

Concernant l’angle à mi-puissance, on peut avoir deux approches : soit sélectionner une LED très directive afin d’optimiser la puissance émise au détriment de la zone de couverture, soit utiliser des LED moins directives permettant d’émettre dans une zone plus large. Les LED directives sont généralement associées aux applications à très haut débit en raison de l’optimisation de la puissance transmise mais imposent des contraintes pour l’alignement avec le récepteur, ce qui est peu compatible avec l’objectif de mobilité. On s’orientera donc vers des LED peu directives afin de s’affranchir au maximum des problèmes d’alignements.

Le dernier paramètre à sélectionner concerne la puissance, caractérisée généralement sur les notices techniques par l’intensité lumineuse en candela. Dans notre cas, on cherche à faire varier l’intensité de la source pour illustrer l’impact de la puissance optique émise sur les performances de communication. N’ayant pas de contraintes particulières en termes de consommation puisque la LED peut être incluse dans un luminaire au plafond, nous avons donc cherché un composant disposant d’une grande intensité. De plus, on pourra considérer l’utilisation d’une matrice de LED afin d’augmenter la puissance émise.

Ces différentes contraintes nous ont permis de sélectionner une LED Cree de référence 941-C513A-WSN-CX0Z0231 [152]. Elle possède un angle à mi-puissance de 55° pour une intensité maximale de 6900 mcd.

Maintenant que le composant d’émission a été choisi, on peut s’intéresser à l’étage de commande. Le signal numérique à transmettre est issu d’un circuit numérique capable de fournir une alternance de niveaux de tension (typiquement 0 ; 5V) présenté dans le paragraphe suivant. Une approche classique pour contrôler l’émission de lumière par la LED consiste à utiliser en sortie du circuit numérique un transistor de type MOSFET par exemple, qui génère

Clement Le Bas | Thèse de doctorat | Université de Limoges | 2017 140

un courant proportionnel aux niveaux de tension appliqués sur la grille du transistor. On a choisi un transistor MOSFET de puissance canal N Vishay IRF530.

Le schéma du circuit de commande associé à la partie émission du système est reporté sur la figure V-13. Ici, 4 séries de 5 LED sont utilisées en parallèle (un total de 20 LED en émission). Afin d’éviter au maximum les problèmes de synchronisation lors de la communication, toutes les séries sont commandées par un seul transistor MOSFET.

La tension appliquée sur Vcc entre 0 et 16V permet de sélectionner le niveau de puissance transmis par la matrice de LED.

V.3.2.2. Mise en forme numérique a) Circuit numérique

Afin de mettre en forme les données à fournir au transistor, une solution simple consiste à utiliser une sortie de microcontrôleur ayant une horloge capable de générer un signal à la fréquence des signaux à transmettre. De plus, un autre paramètre à prendre en compte est le temps de calcul lié à la mise en forme et à la modulation numérique choisie (OOK, PPM) pour les données à transmettre afin de ne pas introduire de latence. Dans notre contexte, on souhaite générer un signal de commande d’au moins 4.8 kHz, correspondant au débit brut des données pour le lien montant IR, donc ce n’est pas a priori un problème de fréquence d’horloge qui limiterait le choix du processeur.

Cependant, afin de ne pas avoir à gérer la latence liée à la mise en forme des données (c’est-à-dire à adapter le programme d’émission en fonction du temps de traitement, pouvant dépendre notamment de la modulation choisie), il est nécessaire d’utiliser des interruptions d’un circuit de timer plutôt que de simples boucles d’attente entre l’émission de 2 données. Cette contrainte évacue le choix des cartes de type ARDUINO qui sont très répandues pour un prototypage rapide à bas coût mais qui ne sont pas bien adaptées pour la gestion des interruptions avec les bibliothèques basiques. Afin de ne pas avoir à rentrer dans une programmation bas niveau (modification des bibliothèques de ARDUINO ou utilisation d’un

Vcc (0 à 16V)

Signal

GND

T1

D1 D2 D5

Clement Le Bas | Thèse de doctorat | Université de Limoges | 2017 141

autre microcontrôleur plus spécifique) et rester ainsi plus général, on s’est donc intéressé à un autre modèle de carte pour prototypage rapide à coût réduit : les cartes RaspberryPi [153].

Ces cartes possèdent un système d’exploitation (OS) embarqué (Linux) et fonctionnent ainsi comme un ordinateur miniaturisé, ce qui permet une programmation haut niveau (C ou Python). Le modèle de carte le plus récent actuellement est la RaspberryPi 3, basée sur un processeur de type ARMv8 64bits, fonctionnant à 1.2GHz avec 1 Gb de mémoire RAM. Les capacités de ce processeur permettent la gestion des interruptions mais aussi d’implémenter des formats de modulations plus complexes ou d’envisager des débits plus élevés en fonction des évolutions du banc de mesure. De plus, la carte possède 4 ports USB, 1 port HDMI et 40 broches GPIO (General Purpose Input/Output).

On se servira ainsi des entrées/sorties GPIO qui permettent la gestion de signaux analogiques ou numériques pour générer le signal de commande pour les LED d’émission. Le niveau du signal généré à la sortie de ces broches pour un niveau bas est de 0V et pour un niveau haut de 3.3V. Des bibliothèques spécifiques ont été développées par la communauté pour la configuration et la gestion de ces broches, les plus couramment utilisées sont : RPi.GPIO [154], wiringPi [155] et pigpio [156]. Pour réaliser nos programmes, nous avons choisi d’utiliser la bibliothèque pigpio.h car elle permet de contrôler avec une très bonne précision les signaux générés en sortie GPIO.

La figure V-14 représente les entrées/sorties GPIO disponibles sur la Raspberry PI 3 ainsi que les broches physiques correspondantes. Sur le banc expérimental, on programmera la sortie GPIO 24 soit la broche 18 de la carte, pour la connecter à l’entrée du circuit de commande.

Figure V-14 : Description des broches GPIO sur la Rapberry PI 2 et Rasberry PI 3

b) Implémentation logicielle

Afin de valider simplement notre banc expérimental nous ne choisissons pas de mettre en œuvre un protocole de transmission complexe ni basé sur un standard. La modulation la plus simple à mettre en œuvre est l’OOK, c’est donc celle que nous considérons dans un

Clement Le Bas | Thèse de doctorat | Université de Limoges | 2017 142

premier temps. Un signal de synchronisation est ajouté avant la transmission de la série de donnés pour permettre la détection au niveau du récepteur. On utilisera un signal très simple, constitué d’une succession de 1 sur un octet (octet de synchronisation, correspondant à la valeur 255). Aussi, afin de simplifier la mise en œuvre, on se basera sur une émission successive d’une série de données connue plutôt que l’émission aléatoire et équiprobable d’un grand nombre de données. Les données transmises correspondront à des caractères connus de sorte à pouvoir visualiser facilement le bon fonctionnement ou non en réception.

Le programme d’émission est basé sur le principe des interruptions déclenchant l’envoi d’un octet à chaque échéance d’un timer. L’octet envoyé est celui qui est lu dans un tableau et revient au début du tableau lorsqu’il est fini. Le logigramme peut ainsi se résumer par la figure V-15.

Un exemple de signal ainsi généré pour une fréquence de 4 kHz et une trame de 4 octets est visible sur la figure V-16.

Initialisation de la broche GPIO 24 en sortie Initialisation d’un timer à la fréquence d’émission souhaitée Initialisation d’un tableau de données à transmettre et du pointeur qui va le parcourir

Liaison des interruptions du timer à un processus (thread) écrivant sur la

broche GPIO

Incrémentation du pointeur

Lecture de la donnée pointée dans le tableau

Ecriture de la donnée sur la broche GPIO Programme principal

Thread

Clement Le Bas | Thèse de doctorat | Université de Limoges | 2017 143

V.3.3. Etage de réception