SILICON LABS Lab 3B - Modificar interruptor de encendido / apagado Guía del usuario
Este ejercicio práctico demostrará cómo realizar una modificación en uno de los sample aplicaciones que se distribuyen como parte del Z-Wave SDK.
Este ejercicio es parte de la serie “Curso de 1 día Z-Wave”.
- Incluir usando SmartStart
- Descifre tramas de RF Z-Wave con Zniffer
- 3A: compilar, activar / desactivar y habilitar depuración
3B: Modificar interruptor de encendido / apagado - Comprender los dispositivos FLiRS
CARACTERÍSTICAS PRINCIPALES
- Cambiar GPIO
- Implementar PWM
- Utilice LED RGB integrado
1. Introducción
Este ejercicio se basa en el ejercicio anterior "3A: Compilar Activar / Desactivar y habilitar la depuración", que demostró cómo compilar y utilizar las funciones de Activar / Desactivarample aplicación.
En este ejercicio realizaremos una modificación al sample aplicación, cambiando el GPIO que controla el LED. Además, usaremos un LED RGB y aprenderemos a usar PWM para cambiar colores.
1.1 Requisitos de hardware
- 1 placa de desarrollo principal WSTK
- 1 placa de desarrollo de radio Z-Wave: módulo SiP ZGM130S
- 1 controlador UZB
- 1 dispositivo USB
1.2 Requisitos de software
- estudio de la simplicidad v4
- SDK de Z-Wave 7
- Controlador de PC Z-Wave
- Znifer Z-Wave
Figura 1: Placa de desarrollo principal con módulo Z-Wave SiP
1.3 Requisitos previos
Los ejercicios prácticos anteriores han cubierto cómo usar el controlador de PC y la aplicación Zniffer para construir una red Z-Wave y capturar la comunicación de RF con fines de desarrollo. Este ejercicio asume que está familiarizado con estas herramientas.
Los ejercicios prácticos anteriores también han cubierto cómo usar el sample aplicaciones que se incluyen con Z-Wave SDK. Este ejercicio asume que está familiarizado con el uso y la compilación de uno de los sampaplicaciones le.
El framework Z-Wave viene con una capa de abstracción de hardware (HAL) definida por board.hy board.c, brindando la posibilidad de tener implementaciones para cada una de sus plataformas de hardware.
La capa de abstracción de hardware (HAL) es un código de programa entre el hardware de un sistema y su software que proporciona una interfaz coherente para aplicaciones que pueden ejecutarse en varias plataformas de hardware diferentes. Para adelantartagA partir de esta capacidad, las aplicaciones deben acceder al hardware a través de la API proporcionada por HAL, en lugar de hacerlo directamente. Luego, cuando se cambia a un nuevo hardware, solo necesita actualizar el HAL.
2.1 Abrir Sample proyecto
Para este ejercicio, debe abrir los botones de encendido / apagado.ample aplicación. Si completó el ejercicio "3A Compile, encienda, apague y habilite la depuración", ya debería estar abierto en su IDE de Simplicity Studio.
En esta sección veremos el tablero filesy entienda cómo se inicializan los LED.
- Desde el principal file “SwitchOnOff.c”, localice “ApplicationInit ()” y observe la llamada a Board_Init ().
- Coloque su curso en Board_Init () y presione F3 para abrir la declaración.
3. En Board_Init () observe cómo los LED contenidos en BOARD_LED_COUNT se inicializan mediante el llamado Board_Con-figLed ()
4. Coloque su curso en BOARD_LED_COUNT y presione F3 para abrir la declaración.
5. Los LED definidos en led_id_t son los siguientes:
6. Regrese al tablero. C file.
7. Coloque su curso en Board_ConfigLed () y presione F3 para abrir la declaración.
8. Observe que todos los LED definidos en led_id_t se configuran en Board_ConfigLed () como salida.
Lo que esto significa es que todos los LED de la placa de desarrollo ya están definidos como salidas y listos para usar.
3.Haga una modificación a un Z-Wave Sample aplicación
En este ejercicio, modificaremos los GPIO utilizados para el LED en el interruptor de encendido / apagado.ample aplicación. En la sección anterior aprendimos cómo todos los LED en la placa de desarrollo ya están inicializados como salida y listos para usar.
3.1 Utilice el LED RGB
Usaremos el LED RGB integrado en el módulo de desarrollo Z-Wave, en lugar del LED del tablero de botones.
1. Localice la función RefreshMMI, como se ve en la Figura 6, en la aplicación principal SwitchOnOff.c file.
Figura 6: RefreshMMI sin modificaciones
2. Usaremos la función "Board_SetLed" pero cambiaremos el GPIO a
o TABLERO_RGB1_R
o TABLERO_RGB1_G
o TABLERO_RGB1_B
3. Llame a “Board_SetLed” 3 veces tanto en el estado APAGADO como en el estado ENCENDIDO, como se muestra en la Figura 7.
Nuestra nueva modificación ya está implementada y ya está listo para compilar.
Los pasos para programar un dispositivo se tratan en el ejercicio "3A Compilar, encender, apagar y habilitar la depuración", y se repiten brevemente aquí:
- Haga clic en "Construir"
para comenzar a construir el proyecto.
- Cuando finalice la compilación, expanda la carpeta "Binarios" y haga clic con el botón derecho en el * .hex file para seleccionar "Flash en dispositivo ...".
- Seleccione el hardware conectado en la ventana emergente. El "Programador de Flash" ahora está precargado con todos los datos necesarios, y usted está listo para hacer clic en "Programa".
- Haga clic en "Programa".
Después de un momento, la programación finaliza y su dispositivo final ahora muestra su versión modificada de Encendido / Apagado.
3.1.1 Pruebe la funcionalidad
En ejercicios anteriores, ya hemos incluido el dispositivo en una red Z-Wave segura utilizando SmartStart. Consulte el ejercicio "Incluir el uso de SmartStart" para obtener instrucciones.
Sugerencia El interno file El sistema no se borra entre reprogramaciones. Esto permite que un nodo permanezca en una red y mantenga las mismas claves de red cuando lo reprograme.
Si necesita cambiar, por ejemplo, la frecuencia a la que opera el módulo o el DSK, necesita "Borrar" el chip antes de que la nueva frecuencia se escriba en el NVM interno.
Como tal, su dispositivo ya está incluido en la red.
Pruebe la funcionalidad verificando que puede ENCENDER y APAGAR el LED RGB.
- Pruebe la funcionalidad utilizando el "Conjunto básico activado" y el "Conjunto básico desactivado" en el controlador de PC. El LED RGB debe encenderse y apagarse.
- El LED RGB también se puede encender y apagar usando BTN0 en el hardware.
Ahora hemos verificado que la modificación funciona como se esperaba y hemos cambiado con éxito el GPIO utilizado en un Sample aplicación
3.2 Cambiar el componente de color RGB
En esta sección, modificaremos el LED RGB e intentaremos mezclar los componentes de color.
“Un color en el modelo de color RGB se describe indicando la cantidad de rojo, verde y azul que se incluye. El color se expresa como un triplete RGB (r, g, b), cada componente del cual puede variar desde cero hasta un valor máximo definido. Si todos los componentes están en cero, el resultado es negro; si todos están al máximo, el resultado es el blanco representable más brillante ".
De Wikipedia en Modelo de color RGB.
Dado que habilitamos todos los componentes de color en la sección anterior, el LED RGB es blanco cuando está ENCENDIDO. Al encender y apagar los componentes individuales, podemos cambiar el LED. Además, ajustando la intensidad de cada componente de color, podemos hacer todos los colores intermedios. Para eso, usaremos PWM para controlar los GPIO.
- En ApplicationTask () inicialice PwmTimer y configure los pines RGB a PWM, como se muestra en la Figura 9.
- En RefreshMMI (), usaremos un número aleatorio para cada componente de color. Utilice rand () para obtener un nuevo valor cada vez que se enciende el LED.
- Use DPRINTF () para escribir el valor recién generado en el puerto de depuración serial.
- Reemplace Board_SetLed () con Board_RgbLedSetPwm (), para usar el valor aleatorio.
- Consulte la Figura 10 para obtener el RefreshMMI () actualizado.
Figura 10: RefreshMMI actualizado con PWM
Nuestra nueva modificación ya está implementada y ya está listo para compilar.
- Haga clic en "Construir"
para comenzar a construir el proyecto.
- Cuando finalice la compilación, expanda la carpeta "Binarios" y haga clic con el botón derecho en el * .hex file para seleccionar "Flash en dispositivo ...".
- Seleccione el hardware conectado en la ventana emergente. El "Programador de Flash" ahora está precargado con todos los datos necesarios, y usted está listo para hacer clic en "Programa".
- Haga clic en "Programa".
Después de un momento, la programación finaliza y su dispositivo final ahora muestra su versión modificada de Encendido / Apagado.
3.2.1 Pruebe la funcionalidad
Pruebe la funcionalidad verificando que puede cambiar el color del LED RGB.
- Pruebe la funcionalidad usando el "Basic Set ON" en el controlador de PC.
- Haga clic en "Basic Set ON" para ver un cambio de color.
Ahora hemos verificado que la modificación funciona como se esperaba y hemos cambiado con éxito el GPIO para usar PWM.
4 Discusión
En este ejercicio hemos modificado el interruptor de encendido / apagado de controlar un LED simple a controlar un LED de varios colores. Dependiendo de los valores de PWM, ahora podemos cambiar a cualquier color e intensidad.
- ¿Debería utilizarse un "interruptor binario" como tipo de dispositivo para esta aplicación?
- ¿Qué clases de comando son más adecuadas para un LED multicolor?
Para responder a la pregunta, debe consultar la especificación Z-Wave:
- Especificación del tipo de dispositivo Z-Wave Plus v2
- Especificación de clase de comando de la aplicación Z-Wave
Con esto concluye el tutorial sobre cómo modificar y cambiar los GPIO de un Z-Wave Sample Aplicación.
Lea más sobre este manual y descargue el PDF:
Documentos / Recursos
![]() |
SILICON LABS Lab 3B - Modificar interruptor de encendido / apagado [pdf] Guía del usuario Lab 3B, interruptor de modificación, encendido, apagado, Z-Wave, SDK |