LOGO SILICIUM

SILICON LABS Lab 3B – Guide de l'utilisateur de l'interrupteur d'activation/désactivation de modification

SILICON LABS Lab 3B - Modifier l'interrupteur marche/arrêt

Cet exercice pratique montrera comment apporter une modification sur l'un des samples applications fournies avec le SDK Z-Wave.

Cet exercice fait partie de la série "Z-Wave 1-Day Course".

  1. Inclure à l'aide de SmartStart
  2. Décrypter les trames RF Z-Wave à l'aide du Zniffer
  3. 3A : Compiler, activer/désactiver et activer le débogage
    3B : Modifier l'interrupteur marche/arrêt
  4. Comprendre les appareils FLiRS

 

CARACTÉRISTIQUES PRINCIPALES

  • Changer le GPIO
  • Implémenter PWM
  • Utiliser une LED RVB intégrée

 

1. Introduction

Cet exercice s'ajoute à l'exercice précédent « 3A : Compiler l'activation/la désactivation et l'activation du débogage », qui montrait comment compiler et utiliser les commutateurs d'activation/désactivation.ampl'application.

Dans cet exercice, nous allons apporter une modification au sampl'application, en changeant le GPIO qui contrôle la LED. De plus, nous utiliserons une LED RVB et apprendrons à utiliser PWM pour changer les couleurs.

1.1 Configuration matérielle requise

  • 1 carte de développement principale WSTK
  • 1 carte de développement radio Z-Wave : module SiP ZGM130S
  • 1 contrôleur UZB
  • 1 Zniffer USB

1.2 Configuration logicielle requise

  • Simplicité Studio v4
  • SDK Z-Wave 7
  • Contrôleur PC Z-Wave
  • Zniffer Z-Wave

Figure 1 Carte de développement principale avec module Z-Wave SiP

Figure 1 : Carte de développement principale avec module Z-Wave SiP

1.3 Prérequis
Les exercices pratiques précédents ont couvert comment utiliser le contrôleur PC et l'application Zniffer pour créer un réseau Z-Wave et capturer la communication RF à des fins de développement. Cet exercice suppose que vous êtes familiarisé avec ces outils.

Les exercices pratiques précédents ont également couvert comment utiliser le samples applications fournies avec le SDK Z-Wave. Cet exercice suppose que vous êtes familiarisé avec l'utilisation et la compilation de l'un des samples applications.

 

2. Naviguer dans l'interface de la carte

Le framework Z-Wave est livré avec une couche d'abstraction matérielle (HAL) définie par board.h et board.c, offrant la possibilité d'avoir des implémentations pour chacune de vos plates-formes matérielles.

La couche d'abstraction matérielle (HAL) est un code de programme entre le matériel d'un système et son logiciel qui fournit une interface cohérente pour les applications pouvant s'exécuter sur plusieurs plates-formes matérielles différentes. Pour prendre de l'avancetagCompte tenu de cette capacité, les applications doivent accéder au matériel via l'API fournie par HAL, plutôt que directement. Ensuite, lorsque vous passez à un nouveau matériel, il vous suffit de mettre à jour le HAL.

2.1 Ouvrir Sample Projet
Pour cet exercice, vous devez ouvrir les Switch On / Off sampl'application. Si vous avez terminé l'exercice "3A Compile Switch OnOff et activer le débogage", il devrait déjà être ouvert dans votre IDE Simplicity Studio.

Dans cette section, nous examinerons le tableau files et comprendre comment les LED sont initialisées.

  1. Depuis le principal file "SwitchOnOff.c", localisez "ApplicationInit()" et notez l'appel à Board_Init().
  2. Placez votre courser sur Board_Init() et appuyez sur F3 pour ouvrir la déclaration.

FIG 2 Ouvert Sample Projet

3. Dans Board_Init () notez comment les LED contenues dans BOARD_LED_COUNT sont initialisées par l'appel Board_Con-figLed ()

FIG 3 Ouvert Sample Projet

4. Placez votre coursier sur BOARD_LED_COUNT et appuyez sur F3 pour ouvrir la déclaration.
5. Les LED définies dans led_id_t sont les suivantes :

FIG 4 Ouvert Sample Projet

6. Retournez au tableau.c file.
7. Placez votre courser sur Board_ConfigLed() et appuyez sur F3 pour ouvrir la déclaration.
8. Notez que toutes les LED définies dans led_id_t sont ensuite configurées dans Board_ConfigLed() en sortie.

FIG 5 Ouvert Sample Projet

Cela signifie que toutes les LED de la carte de développement sont déjà définies comme sorties et prêtes à l'emploi.

 

3. Apportez une modification à un Z-Wave Sampl'Application

Dans cet exercice, nous allons modifier les GPIO utilisés pour la LED dans les Switch On/Off sampl'application. Dans la section précédente, nous avons appris comment toutes les LED de la carte de développement sont déjà initialisées en tant que sortie et prêtes à l'emploi.

3.1 Utiliser la LED RVB

Nous utiliserons la LED RVB intégrée sur le module de développement Z-Wave, au lieu de la LED sur la carte des boutons.

1. Localisez la fonction RefreshMMI, comme illustré à la figure 6, dans l'application principale SwitchOnOff.c file.

Figure 6 RefreshMMI sans aucune modification

Figure 6 : RefreshMMI sans aucune modification

2. Nous utiliserons la fonction "Board_SetLed" mais changerons le GPIO en
oBOARD_RGB1_R
oBOARD_RGB1_G
BOARD_RGB1_B

3. Appelez « Board_SetLed » 3 fois à la fois dans l'état OFF et dans l'état ON, comme le montre la figure 7.

Figure 7 RefreshMMI modifié pour utiliser la LED RVB

Notre nouvelle modification est maintenant implémentée et vous êtes prêt à compiler.
Les étapes de programmation d'un appareil sont couvertes dans l'exercice « 3A Compiler, allumer et éteindre et activer le débogage », et brièvement répétées ici :

  1. Cliquez sur « Construire » ICÔNE 1 bouton pour commencer à construire le projet.
  2. Une fois la construction terminée, développez le dossier "Binaries" et faites un clic droit sur le *.hex file pour sélectionner « Flasher vers l'appareil... ».
  3. Sélectionnez le matériel connecté dans la fenêtre contextuelle. Le « Flash Programmer » est maintenant pré-rempli avec toutes les données nécessaires et vous êtes prêt à cliquer sur « Programme ».
  4. Cliquez sur « Programme ».

Après un court instant, la programmation se termine et votre terminal est maintenant flashé avec votre version modifiée de Switch On/Off.

3.1.1 Tester la fonctionnalité

Dans les exercices précédents, nous avons déjà inclus l'appareil dans un réseau Z-Wave sécurisé à l'aide de SmartStart. Reportez-vous à l'exercice « Inclure à l'aide de SmartStart » pour obtenir des instructions.

Astuce L'interne file système n'est pas effacé entre les reprogrammations. Cela permet à un nœud de rester dans un réseau et de conserver les mêmes clés de réseau lorsque vous le reprogrammez.

Si vous devez changer, par exemple, la fréquence à laquelle le module fonctionne ou le DSK, vous devez « Effacer » la puce avant que la nouvelle fréquence ne soit écrite sur le NVM interne.

En tant que tel, votre appareil est déjà inclus dans le réseau.

Testez la fonctionnalité en vérifiant que vous pouvez allumer et éteindre la LED RVB.

  • Testez la fonctionnalité en utilisant « Basic Set ON » et « Basic Set OFF » dans le contrôleur PC. La LED RVB doit s'allumer et s'éteindre.
  • La LED RVB peut également être allumée et éteinte à l'aide de BTN0 sur le matériel.

Nous avons maintenant vérifié que la modification fonctionne comme prévu et avons réussi à changer le GPIO utilisé dans un Sampl'Application

3.2 Changer le composant de couleur RVB

Dans cette section, nous allons modifier la LED RVB et essayer de mélanger les composants de couleur.

« Une couleur dans le modèle de couleur RVB est décrite en indiquant la quantité de rouge, de vert et de bleu incluse. La couleur est exprimée sous la forme d'un triplet RVB (r,g,b), dont chaque composante peut varier de zéro à une valeur maximale définie. Si tous les composants sont à zéro, le résultat est noir ; si tous sont au maximum, le résultat est le blanc représentable le plus brillant.

De Wikipédia sur Modèle de couleur RVB.

FIG 8 Composants de couleur RVB mélangés ensemble

Puisque nous avons activé tous les composants de couleur dans la section précédente, la LED RVB est blanche lorsqu'elle est allumée. En allumant et éteignant les composants individuels, nous pouvons changer la LED. De plus, en ajustant l'intensité de chaque composante de couleur, nous pouvons créer toutes les couleurs intermédiaires. Pour cela, nous utiliserons PWM pour contrôler les GPIO.

  1. Dans ApplicationTask(), initialisez le PwmTimer et configurez les broches RVB sur PWM, comme illustré à la figure 9.                                                                                Figure 9 PWM initialisé dans ApplicationTask
  2. Dans RefreshMMI(), nous utiliserons un nombre aléatoire pour chaque composant de couleur. Utilisez rand() pour obtenir une nouvelle valeur à chaque fois que la LED est allumée.
  3. Utilisez DPRINTF() pour écrire la valeur nouvellement générée sur le port de débogage série.
  4. Remplacez Board_SetLed() par Board_RgbLedSetPwm(), afin d'utiliser la valeur aléatoire.
  5. Reportez-vous à la Figure 10 pour la mise à jour RefreshMMI().

Figure 10 RefreshMMI mis à jour avec PWM

Figure 10 : RefreshMMI mis à jour avec PWM

Notre nouvelle modification est maintenant implémentée et vous êtes prêt à compiler.

  1. Cliquez sur « Construire » ICÔNE 1 bouton pour commencer à construire le projet.
  2. Une fois la construction terminée, développez le dossier "Binaries" et faites un clic droit sur le *.hex file pour sélectionner « Flasher vers l'appareil... ».
  3. Sélectionnez le matériel connecté dans la fenêtre contextuelle. Le « Flash Programmer » est maintenant pré-rempli avec toutes les données nécessaires et vous êtes prêt à cliquer sur « Programme ».
  4. Cliquez sur « Programme ».

Après un court instant, la programmation se termine et votre terminal est maintenant flashé avec votre version modifiée de Switch On/Off.

3.2.1 Tester la fonctionnalité

Testez la fonctionnalité en vérifiant que vous pouvez changer la couleur de la LED RVB.

  1. Testez la fonctionnalité à l'aide de « Basic Set ON » dans le contrôleur PC.
  2. Cliquez sur « Basic Set ON » pour voir un changement de couleur.

Nous avons maintenant vérifié que la modification fonctionne comme prévu et avons réussi à changer le GPIO pour utiliser PWM.

Discussion 4

Dans cet exercice, nous avons modifié l'interrupteur On/Off du contrôle d'une simple LED au contrôle d'une LED multicolore. En fonction des valeurs PWM, nous pouvons maintenant passer à n'importe quelle couleur et intensité.

  • Un « commutateur binaire » doit-il être utilisé comme type de périphérique pour cette application ?
  • Quelles classes de commandes sont les mieux adaptées pour une LED multicolore ?

Afin de répondre à la question, vous devez vous référer à la spécification Z-Wave :

  • Spécification du type d'appareil Z-Wave Plus v2
  • Spécification de classe de commande d'application Z-Wave

Ceci conclut le tutoriel sur la façon de modifier et de changer les GPIO d'un Z-Wave Sampl'Application.

 

En savoir plus sur ce manuel et télécharger le PDF :

Documents / Ressources

SILICON LABS Lab 3B - Modifier l'interrupteur marche/arrêt [pdf] Guide de l'utilisateur
Lab 3B, Modifier le commutateur, Activé, Désactivé, Z-Wave, SDK

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *