LOGOTIPO DE SILICIO

SILICON LABS Lab 3B - Modificar a guía de usuario de encendido/apagado

SILICON LABS Lab 3B - Modificar interruptor On/Off

Este exercicio práctico demostrará como facer unha modificación nun dos sampaplicacións de li que se envían como parte do SDK Z-Wave.

Este exercicio forma parte da serie "Curso de 1 día Z-Wave".

  1. Incluír o uso de SmartStart
  2. Descifrar fotogramas Z-Wave RF usando o Zniffer
  3. 3A: Compilar Activar/desactivar e activar a depuración
    3B: Modificar o interruptor On/Off
  4. Comprender os dispositivos FLiRS

 

CARACTERÍSTICAS CLAVE

  • Cambiar GPIO
  • Implementar PWM
  • Use LED RGB incorporado

 

1. Introdución

Este exercicio está construído enriba do exercicio anterior "3A: Compilar Activar/Desactivar e activar a depuración", que demostrou como compilar e usar os interruptores de activación/desactivación.ampa aplicación.

Neste exercicio faremos unha modificación do sample, cambiando o GPIO que controla o LED. Ademais, utilizaremos un LED RGB e aprenderemos a usar PWM para cambiar as cores.

1.1 Requisitos de hardware

  • 1 Consello de Desenvolvemento Principal de WSTK
  • 1 Placa de desenvolvemento de radio Z-Wave: Módulo SiP ZGM130S
  • 1 controlador UZB
  • 1 USB Zniffer

1.2 Requisitos de software

  • Simplicity Studio v4
  • SDK Z-Wave 7
  • Controlador de PC Z-Wave
  • Z-Wave Zniffer

FIG 1 Placa de desenvolvemento principal con módulo Z-Wave SiP

Figura 1: Placa de desenvolvemento principal con módulo Z-Wave SiP

1.3 Requisitos previos
Os exercicios prácticos anteriores explicaron como usar o PC Controller e a aplicación Zniffer para construír unha rede Z-Wave e capturar a comunicación RF para fins de desenvolvemento. Este exercicio asume que estás familiarizado con estas ferramentas.

Os exercicios prácticos anteriores tamén abordaron como usar o sampaplicacións que se envían co SDK Z-Wave. Este exercicio asume que estás familiarizado co uso e a compilación dun dos sampas aplicacións.

 

2. Navega pola interface da placa

O framework Z-Wave inclúe unha capa de abstracción de hardware (HAL) definida por board.h e board.c, que ofrece a posibilidade de ter implementacións para cada unha das súas plataformas de hardware.

A capa de abstracción de hardware (HAL) é un código de programa entre o hardware dun sistema e o seu software que proporciona unha interface consistente para aplicacións que poden executarse en varias plataformas de hardware diferentes. Para sacar adiantetagDesta capacidade, as aplicacións deberían acceder ao hardware a través da API proporcionada polo HAL, en lugar de directamente. Despois, cando pases a un novo hardware, só tes que actualizar o HAL.

2.1 Abrir Sampo Proxecto
Para este exercicio, cómpre abrir o interruptor On/Offampa aplicación. Se completaches o exercicio "3A Compilar Activar e desactivar e activar a depuración", xa debería estar aberto no teu IDE de Simplicity Studio.

Nesta sección veremos o taboleiro files e comprender como se inicializan os LED.

  1. Do principal file "SwitchOnOff.c", localice "ApplicationInit()" e observe a chamada a Board_Init().
  2. Coloque o cursor en Board_Init() e prema F3 para abrir a declaración.

FIGURA 2 Abre Sampo Proxecto

3. En Board_Init()nótese como os LED contidos en BOARD_LED_COUNT están sendo inicializados por Board_Con-figLed()

FIGURA 3 Abre Sampo Proxecto

4. Coloca o teu cursor en BOARD_LED_COUNT e preme F3 para abrir a declaración.
5. Os LED definidos en led_id_t son os seguintes:

FIGURA 4 Abre Sampo Proxecto

6. Volver ao taboleiro.c file.
7. Coloque o seu cursor en Board_ConfigLed() e prema F3 para abrir a declaración.
8. Teña en conta que todos os LED definidos en led_id_t están configurados en Board_ConfigLed() como saída.

FIGURA 5 Abre Sampo Proxecto

O que isto significa é que todos os LED da placa de desenvolvemento xa están definidos como saídas e listos para usar.

 

3. Fai unha modificación nun Z-Wave Sample Aplicación

Neste exercicio iremos modificando os GPIO utilizados para o LED nos Switch On/Off sampa aplicación. Na sección anterior aprendemos como todos os LED da placa de desenvolvemento xa están inicializados como saída e listos para usar.

3.1 Use o LED RGB

Usaremos o LED RGB integrado no módulo de desenvolvemento Z-Wave, en lugar do LED do panel de botóns.

1. Localice a función RefreshMMI, como se ve na Figura 6, na aplicación principal SwitchOnOff.c file.

FIG 6 RefreshMMI sen ningunha modificación

Figura 6: RefreshMMI sen ningunha modificación

2. Usaremos a función "Board_SetLed" pero cambiaremos o GPIO a
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Chame a "Board_SetLed" 3 veces tanto no estado OFF como no estado ON, como se mostra na Figura 7.

FIG 7 RefreshMMI modificado para usar LED RGB

A nosa nova modificación xa está implementada e xa estás listo para compilar.
Os pasos para programar un dispositivo están descritos no exercicio "3A Compilación Activar e desactivar e activar a depuración" e repítese brevemente aquí:

  1. Fai clic en "Construír" ICONA 1 botón para comezar a construír o proxecto.
  2. Cando remate a compilación, expanda o cartafol "Binarios" e fai clic co botón dereito sobre o *.hex file para seleccionar "Flash ao dispositivo...".
  3. Seleccione o hardware conectado na ventá emerxente. O "Programador Flash" está agora preenchido con todos os datos necesarios e xa está preparado para facer clic en "Programa".
  4. Fai clic en "Programa".

Despois dun tempo, a programación remata e o teu dispositivo final aparecerá agora coa versión modificada de Switch On/Off.

3.1.1 Proba a funcionalidade

Nos exercicios anteriores xa incluímos o dispositivo nunha rede Z-Wave segura mediante SmartStart. Consulte o exercicio "Incluír usando SmartStart" para obter instrucións.

Suxestión O interno file sistema non se borra entre a reprogramación. Isto permite que un nodo permaneza nunha rede e manteña as mesmas claves de rede cando o reprogramas.

Se precisa cambiar, por exemplo, a frecuencia na que opera o módulo ou o DSK, debe "Borrar" o chip antes de que a nova frecuencia se escriba na NVM interna.

Polo tanto, o teu dispositivo xa está incluído na rede.

Proba a funcionalidade verificando que podes encender e apagar o LED RGB.

  • Proba a funcionalidade usando "Configuración básica ON" e "Configuración básica OFF" no controlador de PC. O LED RGB debería estar acendido e apagado.
  • O LED RGB tamén se pode acender e apagar usando BTN0 no hardware.

Agora verificamos que a modificación funciona como se esperaba e cambiamos correctamente o GPIO utilizado nun Sample Aplicación

3.2 Cambia o compoñente de cor RGB

Nesta sección, iremos modificando o LED RGB e tentaremos mesturar os compoñentes de cores.

"Unha cor no modelo de cor RGB descríbese indicando a cantidade de vermello, verde e azul que se inclúe. A cor exprésase como un triplete RGB (r,g,b), cada un dos cales pode variar de cero a un valor máximo definido. Se todos os compoñentes están en cero o resultado é negro; se todos están ao máximo, o resultado é o branco representable máis brillante".

Da Wikipedia en diante Modelo de cor RGB.

FIG 8 Compoñentes de cores RGB mesturados

Xa que activamos todos os compoñentes de cor na sección anterior, o LED RGB é branco cando está acendido. Acendendo e apagando os compoñentes individuais, podemos cambiar o LED. Ademais, axustando a intensidade de cada compoñentes de cor, podemos facer todas as cores intermedias. Para iso, usaremos PWM para controlar os GPIO.

  1. En ApplicationTask() inicialice o PwmTimer e configure os pinos RGB en PWM, como se mostra na Figura 9.                                                                                FIG 9 PWM inicializado en ApplicationTask
  2. En RefreshMMI(), usaremos un número aleatorio para cada compoñente de cor. Use rand() para obter un novo valor cada vez que se acende o LED.
  3. Use DPRINTF() para escribir o valor recentemente xerado no porto de depuración en serie.
  4. Substitúe Board_SetLed() por Board_RgbLedSetPwm(), para usar o valor aleatorio.
  5. Consulte a Figura 10 para o RefreshMMI().

FIG 10 RefreshMMI actualizado con PWM

Figura 10: RefreshMMI actualizado con PWM

A nosa nova modificación xa está implementada e xa estás listo para compilar.

  1. Fai clic en "Construír" ICONA 1 botón para comezar a construír o proxecto.
  2. Cando remate a compilación, expanda o cartafol "Binarios" e fai clic co botón dereito sobre o *.hex file para seleccionar "Flash ao dispositivo...".
  3. Seleccione o hardware conectado na ventá emerxente. O "Programador Flash" está agora preenchido con todos os datos necesarios e xa está preparado para facer clic en "Programa".
  4. Fai clic en "Programa".

Despois dun tempo, a programación remata e o teu dispositivo final aparecerá agora coa versión modificada de Switch On/Off.

3.2.1 Proba a funcionalidade

Proba a funcionalidade verificando que podes cambiar a cor do LED RGB.

  1. Proba a funcionalidade usando o "Configuración básica ON" no controlador de PC.
  2. Fai clic en "Configuración básica ON" para ver un cambio de cor.

Agora verificamos que a modificación funciona como se esperaba e cambiamos correctamente o GPIO para usar PWM.

4 Discusión

Neste exercicio modificamos Switch On/Off de controlar un LED simple a controlar un LED multicolor. Dependendo dos valores PWM, agora podemos cambiar a calquera cor e intensidade.

  • Debe usarse un "Interruptor binario" como tipo de dispositivo para esta aplicación?
  • Que clases de comandos son máis adecuadas para un LED multicolor?

Para responder á pregunta, debes consultar a especificación Z-Wave:

  • Especificación do tipo de dispositivo Z-Wave Plus v2
  • Especificación da clase de comandos da aplicación Z-Wave

Conclúe o tutorial sobre como modificar e cambiar os GPIO dun Z-Wave Sample Aplicación.

 

Ler máis sobre este manual e descargar PDF:

Documentos/Recursos

SILICON LABS Lab 3B - Modificar interruptor On/Off [pdfGuía do usuario
Lab 3B, Modificar interruptor, On, Off, Z-Wave, SDK

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *