LOGO DE SILICI

SILICON LABS Lab 3B: modifica la guia d'usuari d'encesa/apagada

SILICON LABS Lab 3B - Modificació de l'interruptor On/Off

Aquest exercici pràctic mostrarà com fer una modificació en un dels sampaplicacions que s'envien com a part del Z-Wave SDK.

Aquest exercici forma part de la sèrie "Curs d'1 dia Z-Wave".

  1. Inclou l'ús de SmartStart
  2. Desxifrar fotogrames Z-Wave RF amb el Zniffer
  3. 3A: compila l'activació/desactivació i activa la depuració
    3B: Modificació de l'encesa/desactivació
  4. Entendre els dispositius FLiRS

 

CARACTERÍSTIQUES CLAU

  • Canvia GPIO
  • Implementar PWM
  • Utilitzeu LED RGB integrat

 

1. Introducció

Aquest exercici es basa en l'exercici anterior "3A: compilació d'encesa/desactivació i activació de depuració", que mostrava com compilar i utilitzar els interruptors d'encesa/desactivació.ampl'aplicació.

En aquest exercici farem una modificació al sampl'aplicació, canviant el GPIO que controla el LED. A més, farem servir un LED RGB i aprendrem a utilitzar PWM per canviar els colors.

1.1 Requisits de maquinari

  • 1 Junta de desenvolupament principal de WSTK
  • 1 Placa de desenvolupament de ràdio Z-Wave: Mòdul SiP ZGM130S
  • 1 controlador UZB
  • 1 USB Zniffer

1.2 Requisits de programari

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

FIG 1 Placa de desenvolupament principal amb mòdul Z-Wave SiP

Figura 1: Placa de desenvolupament principal amb mòdul Z-Wave SiP

1.3 Requisits previs
Els exercicis pràctics anteriors han tractat com utilitzar el PC Controller i l'aplicació Zniffer per crear una xarxa Z-Wave i capturar la comunicació de RF amb finalitats de desenvolupament. Aquest exercici suposa que esteu familiaritzat amb aquestes eines.

Els exercicis pràctics anteriors també han tractat com utilitzar el samples aplicacions que s'envien amb el Z-Wave SDK. Aquest exercici suposa que estàs familiaritzat amb l'ús i la compilació d'un dels samples aplicacions.

 

2. Navegueu per la interfície de la placa

El framework Z-Wave ve amb una capa d'abstracció de maquinari (HAL) definida per board.h i board.c, que ofereix la possibilitat de tenir implementacions per a cadascuna de les vostres plataformes de maquinari.

La capa d'abstracció de maquinari (HAL) és un codi de programa entre el maquinari d'un sistema i el seu programari que proporciona una interfície coherent per a aplicacions que es poden executar en diverses plataformes de maquinari diferents. Per avançartagD'aquesta capacitat, les aplicacions haurien d'accedir al maquinari a través de l'API proporcionada per l'HAL, en lloc de directament. Aleshores, quan passeu a un maquinari nou, només cal que actualitzeu el HAL.

2.1 Obre Sampel Projecte
Per a aquest exercici, heu d'obrir els interruptors On / Off sampl'aplicació. Si heu completat l'exercici "3A Compil·la, enceneu-lo i activeu la depuració", ja hauria d'estar obert al vostre IDE de Simplicity Studio.

En aquesta secció mirarem el tauler files i comprendre com s'inicien els LED.

  1. De la principal file "SwitchOnOff.c", localitzeu "ApplicationInit()" i observeu la crida a Board_Init().
  2. Col·loqueu el vostre cursador a Board_Init() i premeu F3 per obrir la declaració.

FIG 2 Obriu Sampel Projecte

3. A Board_Init() observeu com els LED continguts a BOARD_LED_COUNT s'inicialitzen mitjançant l'anomenat Board_Con-figLed()

FIG 3 Obriu Sampel Projecte

4. Col·loqueu el vostre cursador a BOARD_LED_COUNT i premeu F3 per obrir la declaració.
5. Els LED definits a led_id_t són els següents:

FIG 4 Obriu Sampel Projecte

6. Tornar al tauler.c file.
7. Col·loqueu el vostre cursador a Board_ConfigLed() i premeu F3 per obrir la declaració.
8. Observeu que tots els LED definits a led_id_t es configuren a Board_ConfigLed() com a sortida.

FIG 5 Obriu Sampel Projecte

Això vol dir que tots els LED de la placa de desenvolupament ja estan definits com a sortides i estan preparats per utilitzar-los.

 

3. Feu una modificació a un Z-Wave Sampl Aplicació

En aquest exercici anirem modificant els GPIO utilitzats per al LED en els interruptors On/Offampl'aplicació. A la secció anterior vam aprendre com tots els LED de la placa de desenvolupament ja estan inicialitzats com a sortida i preparats per utilitzar-los.

3.1 Utilitzeu el LED RGB

Utilitzarem el LED RGB integrat al mòdul de desenvolupament Z-Wave, en lloc del LED del tauler de botons.

1. Localitzeu la funció RefreshMMI, tal com es veu a la figura 6, a l'aplicació principal SwitchOnOff.c file.

FIG 6 RefreshMMI sense cap modificació

Figura 6: RefreshMMI sense cap modificació

2. Utilitzarem la funció "Board_SetLed", però canviarem el GPIO a
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Truqueu a "Board_SetLed" 3 vegades tant en estat OFF com en estat ON, tal com es mostra a la figura 7.

FIG 7 RefreshMMI modificat per utilitzar LED RGB

La nostra nova modificació ja està implementada i ja esteu preparat per compilar.
Els passos per programar un dispositiu s'expliquen a l'exercici "3A Compilar, encendre'l, apagar i habilitar la depuració", i es repeteixen breument aquí:

  1. Feu clic a "Construir" ICON 1 botó per començar a construir el projecte.
  2. Quan finalitzi la compilació, expandiu la carpeta "Binaris" i feu clic amb el botó dret a *.hex file per seleccionar "Flash al dispositiu...".
  3. Seleccioneu el maquinari connectat a la finestra emergent. El "Programador Flash" ja està preemplenat amb totes les dades necessàries i ja podeu fer clic a "Programa".
  4. Feu clic a "Programa".

Al cap d'una estona, la programació s'acaba i el vostre dispositiu final es mostrarà ara amb la vostra versió modificada de Switch On/Off.

3.1.1 Prova la funcionalitat

En exercicis anteriors ja hem inclòs el dispositiu en una xarxa Z-Wave segura mitjançant SmartStart. Consulteu l'exercici "Inclou l'ús de SmartStart" per obtenir instruccions.

Pista L'interior file El sistema no s'esborra entre la reprogramació. Això permet que un node es mantingui en una xarxa i mantingui les mateixes claus de xarxa quan el reprograma.

Si necessiteu canviar, per exemple, la freqüència a la qual funciona el mòdul o el DSK, heu d'“Esborrar” el xip abans que la nova freqüència s'escrigui a la NVM interna.

Com a tal, el vostre dispositiu ja està inclòs a la xarxa.

Proveu la funcionalitat verificant que podeu encendre i apagar el LED RGB.

  • Proveu la funcionalitat amb els "Configuració bàsica ON" i "Configuració bàsica desactivada" al controlador de l'ordinador. El LED RGB s'ha d'encendre i apagar.
  • El LED RGB també es pot encendre i apagar mitjançant BTN0 al maquinari.

Ara hem verificat que la modificació funciona com s'esperava i hem canviat correctament el GPIO utilitzat en un Sampl Aplicació

3.2 Canvieu el component de color RGB

En aquesta secció, anirem modificant el LED RGB i intentarem barrejar els components de color.

"Es descriu un color del model de color RGB indicant la quantitat de vermell, verd i blau inclòs. El color s'expressa com un triplet RGB (r,g,b), cada component del qual pot variar des de zero fins a un valor màxim definit. Si tots els components estan a zero, el resultat és negre; si tots estan al màxim, el resultat és el blanc representable més brillant".

Des de la Viquipèdia Model de color RGB.

FIG 8 Components de color RGB barrejats junts

Com que vam habilitar tots els components de color a la secció anterior, el LED RGB és blanc quan està encès. En encendre i apagar els components individuals, podem canviar el LED. A més, ajustant la intensitat de cada components de color, podem fer tots els colors entremig. Per això, utilitzarem PWM per controlar els GPIO.

  1. A ApplicationTask() inicialitzeu el PwmTimer i configureu els pins RGB a PWM, tal com es mostra a la figura 9.                                                                                FIG 9 PWM inicialitzat a ApplicationTask
  2. A RefreshMMI(), utilitzarem un nombre aleatori per a cada component de color. Utilitzeu rand() per obtenir un valor nou cada vegada que s'encengui el LED.
  3. Utilitzeu DPRINTF() per escriure el valor generat recentment al port de depuració sèrie.
  4. Substituïu Board_SetLed() per Board_RgbLedSetPwm(), per tal d'utilitzar el valor aleatori.
  5. Consulteu la figura 10 per obtenir el RefreshMMI() actualitzat.

FIG 10 RefreshMMI actualitzat amb PWM

Figura 10: RefreshMMI actualitzat amb PWM

La nostra nova modificació ja està implementada i ja esteu preparat per compilar.

  1. Feu clic a "Construir" ICON 1 botó per començar a construir el projecte.
  2. Quan finalitzi la compilació, expandiu la carpeta "Binaris" i feu clic amb el botó dret a *.hex file per seleccionar "Flash al dispositiu...".
  3. Seleccioneu el maquinari connectat a la finestra emergent. El "Programador Flash" ja està preemplenat amb totes les dades necessàries i ja podeu fer clic a "Programa".
  4. Feu clic a "Programa".

Al cap d'una estona, la programació s'acaba i el vostre dispositiu final es mostrarà ara amb la vostra versió modificada de Switch On/Off.

3.2.1 Prova la funcionalitat

Proveu la funcionalitat verificant que podeu canviar el color del LED RGB.

  1. Proveu la funcionalitat amb el "Configuració bàsica ON" del controlador de l'ordinador.
  2. Feu clic a "Configuració bàsica ON" per veure un canvi de color.

Ara hem verificat que la modificació funciona com s'esperava i hem canviat correctament el GPIO per utilitzar PWM.

4 Debat

En aquest exercici hem modificat Switch On/Off de controlar un LED simple a controlar un LED multicolor. Depenent dels valors PWM, ara podem canviar a qualsevol color i intensitat.

  • S'ha d'utilitzar un "Commutador binari" com a tipus de dispositiu per a aquesta aplicació?
  • Quines classes d'ordres són més adequades per a un LED multicolor?

Per respondre a la pregunta, hauríeu de consultar l'especificació Z-Wave:

  • Especificació del tipus de dispositiu Z-Wave Plus v2
  • Especificació de classe d'ordres d'aplicació Z-Wave

Això conclou el tutorial sobre com modificar i canviar els GPIO d'un Z-Wave Sampl Aplicació.

 

Llegeix més sobre aquest manual i baixa el PDF:

Documents/Recursos

SILICON LABS Lab 3B - Modificació de l'interruptor On/Off [pdfGuia de l'usuari
Lab 3B, modifica l'interruptor, activat, desactivat, Z-Wave, SDK

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *