Table des matières:

Contrôle de la couleur des LED RVB via Bluetooth : 5 étapes
Contrôle de la couleur des LED RVB via Bluetooth : 5 étapes

Vidéo: Contrôle de la couleur des LED RVB via Bluetooth : 5 étapes

Vidéo: Contrôle de la couleur des LED RVB via Bluetooth : 5 étapes
Vidéo: Varier la couleur du module LED RGB par Arduino 2024, Juillet
Anonim
Contrôle de la couleur des LED RVB via Bluetooth
Contrôle de la couleur des LED RVB via Bluetooth

Les ampoules intelligentes ont récemment gagné en popularité et deviennent progressivement un élément clé de la boîte à outils de la maison intelligente. Les ampoules intelligentes permettent à l'utilisateur de contrôler sa lumière via une application spéciale sur le téléphone intelligent de l'utilisateur; l'ampoule peut être allumée et éteinte et la couleur peut être modifiée à partir de l'interface de l'application. Dans ce projet, nous avons construit un contrôleur d'ampoule intelligent qui peut être contrôlé à partir d'un bouton manuel ou d'une application mobile via Bluetooth. Pour ajouter un peu de style à ce projet, nous avons ajouté quelques fonctionnalités qui permettent à l'utilisateur de choisir une couleur d'éclairage dans la liste des couleurs incluses dans l'interface de l'application. Il peut également activer un "mélange automatique" pour générer des effets de couleur et changer l'éclairage toutes les demi-secondes. L'utilisateur peut créer son propre mélange de couleurs à l'aide d'une fonction PWM qui peut également être utilisée comme gradateur pour les trois couleurs de base (rouge, vert, bleu). Nous avons également ajouté des boutons externes au circuit afin que l'utilisateur puisse passer en mode manuel et changer la couleur de la lumière à partir d'un bouton externe.

Ce Instructable est composé de deux sections; la conception GreenPAK™ et la conception de l'application Android. La conception GreenPAK est basée sur l'utilisation d'une interface UART pour la communication. UART est choisi car il est pris en charge par la plupart des modules Bluetooth, ainsi que par la plupart des autres périphériques, tels que les modules WIFI. Par conséquent, la conception GreenPAK peut être utilisée dans de nombreux types de connexion.

Pour construire ce projet, nous allons utiliser le CMIC SLG46620, un module Bluetooth et une LED RVB. Le GreenPAK IC va être le cœur de contrôle de ce projet; il reçoit les données d'un module Bluetooth et/ou de boutons externes, puis entame la procédure requise pour afficher le bon éclairage. Il génère également le signal PWM et le transmet à la LED. La figure 1 ci-dessous montre le schéma fonctionnel.

Le dispositif GreenPAK utilisé dans ce projet contient une interface de connexion SPI, des blocs PWM, FSM et de nombreux autres blocs supplémentaires utiles dans un seul circuit intégré. Il se caractérise également par sa petite taille et sa faible consommation d'énergie. Cela permettra aux fabricants de construire un petit circuit pratique en utilisant un seul circuit intégré, ainsi les coûts de production seront minimisés par rapport à des systèmes similaires.

Dans ce projet, nous contrôlons une LED RVB. Pour rendre le projet commercialement viable, un système aurait probablement besoin d'augmenter le niveau de luminosité en connectant de nombreuses LED en parallèle et en utilisant les transistors appropriés; le circuit d'alimentation doit également être pris en considération.

Vous pouvez suivre toutes les étapes pour comprendre comment la puce GreenPAK a été programmée pour contrôler la couleur des LED RVB via Bluetooth. Cependant, si vous souhaitez simplement programmer facilement le circuit intégré sans comprendre tous les circuits internes, téléchargez le logiciel GreenPAK pour afficher le fichier de conception GreenPAK déjà terminé. Branchez le kit de développement GreenPAK sur votre ordinateur et appuyez sur programme pour créer le circuit intégré personnalisé permettant de contrôler la couleur des LED RVB via Bluetooth.

La conception GreenPAK comprend le récepteur UART, l'unité PWM et l'unité de commande décrits dans les étapes ci-dessous.

Étape 1: Récepteur UART

Récepteur UART
Récepteur UART

Tout d'abord, nous devons configurer le module Bluetooth. La plupart des circuits intégrés Bluetooth prennent en charge le protocole UART pour la communication. UART signifie Universal Asynchronous Receiver / Transmitter. UART peut convertir les données entre les formats parallèle et série. Il comprend un récepteur série-parallèle et un convertisseur parallèle-série qui sont tous deux cadencés séparément.

Les données reçues dans le module Bluetooth seront transmises à notre appareil GreenPAK. L'état inactif pour Pin10 est HAUT. Chaque caractère envoyé commence par un bit de démarrage logique BAS, suivi d'un nombre configurable de bits de données et d'un ou plusieurs bits d'arrêt logique HAUT.

L'émetteur UART envoie 1 bit START, 8 bits de données et un bit STOP. Habituellement, le débit en bauds par défaut pour un module Bluetooth UART est de 9600. Nous enverrons l'octet de données du circuit intégré Bluetooth au bloc SPI du GreenPAK™ SLG46620.

Étant donné que le bloc GreenPAK SPI n'a pas de contrôle de bit START ou STOP, nous utiliserons ces bits à la place pour activer et désactiver le signal d'horloge SPI (SCLK). Lorsque Pin10 passe à LOW, nous savons que nous avons reçu un bit START, nous utilisons donc le détecteur de front descendant PDLY pour identifier le début de la communication. Ce détecteur de front descendant cadence DFF0, ce qui permet au signal SCLK de cadencer le bloc SPI.

Notre débit en bauds est de 9600 bits par seconde, notre période SCLK doit donc être de 1/9600 = 104 s. Par conséquent, nous avons réglé la fréquence OSC sur 2 MHz et utilisé CNT0 comme diviseur de fréquence.

2 MHz-1 = 0,5 µs

(104 µs / 0,5 µs) - 1 = 207

Par conséquent, nous voulons que la valeur du compteur CNT0 soit de 207. Pour nous assurer de ne manquer aucune donnée, nous devons retarder l'horloge SPI d'un demi-cycle d'horloge afin que le bloc SPI soit cadencé au bon moment. Nous y sommes parvenus en utilisant CNT6, LUT1 à 2 bits et l'horloge externe du bloc OSC. La sortie de CNT6 ne passe pas au niveau haut avant 52 s après la synchronisation de DFF0, ce qui correspond à la moitié de notre période SCLK de 104 s. Lorsque CNT6 est au niveau haut, la porte ET LUT1 à 2 bits permet au signal OSC de 2 MHz de passer dans l'EXT. Entrée CLK0, dont la sortie est connectée à CNT0.

Étape 2: Unité PWM

Unité PWM
Unité PWM

Le signal PWM est généré à l'aide de PWM0 et d'un générateur d'impulsions d'horloge associé (CNT8/DLY8). Étant donné que la largeur d'impulsion est contrôlable par l'utilisateur, nous utilisons FSM0 (qui peut être connecté à PWM0) pour compter les données utilisateur.

Dans le SLG46620, FSM1 8 bits peut être utilisé avec PWM1 et PWM2. Le module Bluetooth doit être connecté, ce qui signifie que la sortie parallèle SPI doit être utilisée. Les bits de sortie parallèle SPI 0 à 7 sont multiplexés avec DCMP1, DMCP2 et OUT1 et OUT0 du LF OSC CLK. PWM0 obtient sa sortie du FSM0 16 bits. Si elle n'est pas modifiée, cela provoque une surcharge de la largeur d'impulsion. Pour limiter la valeur du compteur à 8 bits, un autre FSM est ajouté; FSM1 est utilisé comme pointeur pour savoir quand le compteur atteint 0 ou 255. FSM0 est utilisé pour générer l'impulsion PWM. FSM0 et FSM1 doivent être synchronisés. Étant donné que les deux FSM ont des options d'horloge prédéfinies, CNT1 et CNT3 sont utilisés comme médiateurs pour transmettre le CLK aux deux FSM. Les deux compteurs sont définis sur la même valeur, qui est de 25 pour ce Instructable. Nous pouvons modifier le taux de variation de la valeur PWM en modifiant ces valeurs de compteur.

La valeur des FSM est augmentée et diminuée par les signaux « + » et « - », qui proviennent de la sortie parallèle SPI.

Étape 3: Unité de contrôle

Unité de contrôle
Unité de contrôle

Dans l'unité de contrôle, l'octet reçu est transféré du module Bluetooth à la sortie parallèle SPI et est ensuite transmis aux fonctions associées. Dans un premier temps, les sorties PWM CS1 et PWM CS2 seront vérifiées pour voir si le modèle PWM est activé ou non. S'il est activé, il déterminera quel canal va sortir le PWM via LUT4, LUT6 et LUT7.

LUT9, LUT11 et LUT14 sont chargés de vérifier l'état des deux autres LED. LUT10, LUT12 et LUT13 vérifient si le bouton Manual est activé ou non. Si le mode manuel est actif, les sorties RVB fonctionnent selon les états de sortie D0, D1, D2, qui sont modifiés à chaque pression sur le bouton Couleur. Il change avec le front montant provenant de CNT9, qui est utilisé comme anti-rebond de front montant.

La broche 20 est configurée comme une entrée et est utilisée pour basculer entre le contrôle manuel et Bluetooth.

Si le mode manuel est désactivé et que le mode mélangeur automatique est activé, la couleur change toutes les 500 ms avec le front montant provenant de CNT7. Une LUT1 à 4 bits est utilisée pour empêcher l'état '000' pour D0 D1 D2, car cet état provoque l'extinction de la lumière pendant le mode de mixage automatique.

Si le mode manuel, le mode PWM et le mode mélangeur automatique ne sont pas activés, les commandes SPI rouge, verte et bleue sont acheminées vers les broches 12, 13 et 14, qui sont configurées comme sorties et sont connectées à la LED RVB externe.

DFF1, DFF2 et DFF3 sont utilisés pour construire un compteur binaire à 3 bits. La valeur du compteur augmente avec les impulsions CNT7 qui passent par P14 en mode mélangeur automatique, ou à partir de signaux provenant du bouton de couleur (PIN3) en mode manuel.

Étape 4: Application Android

Application Android
Application Android
Application Android
Application Android
Application Android
Application Android
Application Android
Application Android

Dans cette section, nous allons créer une application Android qui surveillera et affichera les sélections de contrôle de l'utilisateur. L'interface se compose de deux sections: la première section contient un ensemble de boutons qui ont des couleurs prédéfinies de sorte que lorsque l'un de ces boutons est enfoncé, une LED de la même couleur correspondante s'allume. La deuxième section (carré MIX) crée une couleur mélangée pour l'utilisateur.

Dans la première section, l'utilisateur choisit la broche LED par laquelle il souhaite que le signal PWM passe; le signal PWM ne peut être transmis qu'à une seule broche à la fois. La liste inférieure contrôle logiquement les deux autres couleurs pendant le mode PWM.

Le bouton de mélangeur automatique est responsable de l'exécution du modèle de changement de lumière automatique où la lumière changera toutes les demi-secondes. La section MIX contient deux listes de cases à cocher afin que l'utilisateur puisse décider quelles couleurs mélanger ensemble.

Nous avons créé l'application à l'aide du site Web de l'inventeur de l'application MIT. C'est un site qui permet de créer des applications Android sans expérience logicielle préalable à l'aide de blocs logiciels graphiques.

Dans un premier temps, nous avons conçu une interface graphique en ajoutant un ensemble de boutons chargés d'afficher les couleurs prédéfinies, nous avons également ajouté deux listes de cases à cocher, et chaque liste comporte 3 éléments; chaque élément est décrit dans sa case individuelle, comme le montre la figure 5.

Les boutons de l'interface utilisateur sont liés à des commandes logicielles: toutes les commandes que l'application enverra via Bluetooth seront au format octet, et chaque bit est responsable d'une fonction spécifique. Le tableau 1 montre la forme des trames de commande envoyées au GreenPAK.

Les trois premiers bits, B0, B1 et B2, maintiendront l'état des LED RVB en mode de contrôle direct par les boutons des couleurs prédéfinies. Ainsi, en cliquant sur l'un d'eux, la valeur correspondante du bouton sera envoyée, comme indiqué dans le tableau 2.

Les bits B3 et B4 contiennent les commandes '+' et '-', qui sont responsables de l'augmentation et de la diminution de la largeur d'impulsion. Lorsque le bouton est enfoncé, la valeur du bit sera 1, et lorsque le bouton est relâché, la valeur du bit sera 0.

Les bits B5 et B6 sont responsables du choix de la broche (couleur) par laquelle le signal PWM passera: les désignations de couleur de ces bits sont indiquées dans le tableau 3. Le dernier bit, B7, est responsable de l'activation du mélangeur automatique.

La figure 6 et la figure 7 illustrent le processus de liaison des boutons avec des blocs de programmation qui sont responsables de l'envoi des valeurs précédentes.

Pour regarder la conception complète de l'application, vous pouvez télécharger le fichier joint ".aia" avec les fichiers du projet et l'ouvrir sur le site principal.

La figure 8 ci-dessous montre le schéma de circuit de niveau supérieur.

Étape 5: Résultats

Le contrôleur a été testé avec succès et le mélange de couleurs, ainsi que d'autres fonctionnalités, se sont avérés fonctionner correctement.

Conclusion

Dans ce Instructable, un circuit d'ampoule intelligente a été conçu pour être contrôlé sans fil par une application Android. Le GreenPAK CMIC utilisé dans ce projet a également permis de raccourcir et d'intégrer plusieurs composants essentiels pour le contrôle de la lumière dans un petit circuit intégré.

Conseillé: