SILICON LABS Lab 3B - Modificar a guía de usuario de encendido/apagado
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".
- Incluír o uso de SmartStart
- Descifrar fotogramas Z-Wave RF usando o Zniffer
- 3A: Compilar Activar/desactivar e activar a depuración
3B: Modificar o interruptor On/Off - 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
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.
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.
- Do principal file "SwitchOnOff.c", localice "ApplicationInit()" e observe a chamada a Board_Init().
- Coloque o cursor en Board_Init() e prema F3 para abrir a declaración.
3. En Board_Init()nótese como os LED contidos en BOARD_LED_COUNT están sendo inicializados por Board_Con-figLed()
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:
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.
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.
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.
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í:
- Fai clic en "Construír"
botón para comezar a construír o proxecto.
- 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...".
- 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".
- 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.
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.
- En ApplicationTask() inicialice o PwmTimer e configure os pinos RGB en PWM, como se mostra na Figura 9.
- 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.
- Use DPRINTF() para escribir o valor recentemente xerado no porto de depuración en serie.
- Substitúe Board_SetLed() por Board_RgbLedSetPwm(), para usar o valor aleatorio.
- Consulte a Figura 10 para o RefreshMMI().
Figura 10: RefreshMMI actualizado con PWM
A nosa nova modificación xa está implementada e xa estás listo para compilar.
- Fai clic en "Construír"
botón para comezar a construír o proxecto.
- 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...".
- 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".
- 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.
- Proba a funcionalidade usando o "Configuración básica ON" no controlador de PC.
- 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 |