LOGO IN SILICONE

SILICON LABS Lab 3B – Modifica interruttore On/Off Guida per l'utente

SILICON LABS Lab 3B - Modifica interruttore On/Off

Questo esercizio pratico dimostrerà come apportare una modifica su uno dei sample applicazioni fornite come parte di Z-Wave SDK.

Questo esercizio fa parte della serie "Z-Wave 1-Day Course".

  1. Includi usando SmartStart
  2. Decifra i frame RF Z-Wave utilizzando Zniffer
  3. 3A: Compila Switch On/Off e Abilita debug
    3B: Modifica interruttore On/Off
  4. Comprendi i dispositivi FLiRS

 

CARATTERISTICHE PRINCIPALI

  • Cambia GPIO
  • Implementa PWM
  • Usa LED RGB integrato

 

1. Introduzione

Questo esercizio si basa sull'esercizio precedente "3A: Compila Switch On/Off e abilita il debug", che ha dimostrato come compilare e utilizzare gli Switch On/Off sampl'applicazione.

In questo esercizio apporteremo una modifica a sample, modificando il GPIO che controlla il LED. Inoltre, utilizzeremo un LED RGB e impareremo come utilizzare il PWM per cambiare i colori.

1.1 Requisiti hardware

  • 1 scheda di sviluppo principale WSTK
  • 1 scheda di sviluppo radio Z-Wave: modulo SiP ZGM130S
  • 1 controller UZB
  • 1 Zniffer USB

1.2 Requisiti software

  • Semplicità Studio v4
  • SDK Z-Wave 7
  • Controller per PC Z-Wave
  • Z-Wave Zniffer

FIG 1 Scheda di sviluppo principale con modulo SiP Z-Wave

Figura 1: Scheda di sviluppo principale con modulo SiP Z-Wave

1.3 Prerequisiti
Gli esercizi pratici precedenti hanno illustrato come utilizzare il controller del PC e l'applicazione Zniffer per creare una rete Z-Wave e acquisire la comunicazione RF a scopo di sviluppo. Questo esercizio presuppone che tu abbia familiarità con questi strumenti.

Gli esercizi pratici precedenti hanno anche spiegato come utilizzare il sample applicazioni fornite con Z-Wave SDK. Questo esercizio presuppone che tu abbia familiarità con l'uso e la compilazione di uno deiample applicazioni.

 

2. Navigare nell'interfaccia della scheda

Il framework Z-Wave viene fornito con un livello di astrazione hardware (HAL) definito da board.he board.c, fornendo la possibilità di avere implementazioni per ciascuna delle tue piattaforme hardware.

L'Hardware Abstraction Layer (HAL) è un codice di programma tra l'hardware di un sistema e il relativo software che fornisce un'interfaccia coerente per le applicazioni che possono essere eseguite su diverse piattaforme hardware. per prendere vantaggiotagPer questa capacità, le applicazioni dovrebbero accedere all'hardware tramite l'API fornita dall'HAL, piuttosto che direttamente. Quindi, quando passi a un nuovo hardware, devi solo aggiornare l'HAL.

2.1 Aprire Sampil progetto
Per questo esercizio è necessario aprire l'interruttore di accensione/spegnimento sampl'applicazione. Se hai completato l'esercizio "Compila 3A, accendi e abilita il debug", dovrebbe essere già aperto nel tuo IDE Simplicity Studio.

In questa sezione esamineremo il tabellone files e capire come vengono inizializzati i LED.

  1. Dal principale file "SwitchOnOff.c", individuare "ApplicationInit()" e notare la chiamata a Board_Init().
  2. Posiziona il tuo destriero su Board_Init() e premi F3 per aprire la dichiarazione.

FIG 2 Aprire Sampil progetto

3. In Board_Init() notare come i LED contenuti in BOARD_LED_COUNT vengono inizializzati da Board_Con-figLed() chiamato

FIG 3 Aprire Sampil progetto

4. Posiziona il tuo corso su BOARD_LED_COUNT e premi F3 per aprire la dichiarazione.
5. I LED definiti in led_id_t sono i seguenti:

FIG 4 Aprire Sampil progetto

6. Torna alla scheda.c file.
7. Posiziona il tuo corso su Board_ConfigLed() e premi F3 per aprire la dichiarazione.
8. Notare che tutti i LED definiti in led_id_t vengono quindi configurati in Board_ConfigLed() come output.

FIG 5 Aprire Sampil progetto

Ciò significa che tutti i LED sulla scheda di sviluppo sono già definiti come uscite e pronti per l'uso.

 

3. Apportare una modifica a una Z-Wave Sample Applicazione

In questo esercizio modificheremo i GPIO utilizzati per il LED in Switch On/Off sampl'applicazione. Nella sezione precedente abbiamo appreso come tutti i LED sulla scheda di sviluppo siano già inizializzati come output e pronti per l'uso.

3.1 Utilizzare il LED RGB

Useremo il LED RGB integrato sul modulo di sviluppo Z-Wave, invece del LED sulla pulsantiera.

1. Individuare la funzione RefreshMMI, come mostrato nella Figura 6, nell'applicazione principale SwitchOnOff.c file.

FIG 6 RefreshMMI senza alcuna modifica

Figura 6: RefreshMMI senza alcuna modifica

2. Useremo la funzione "Board_SetLed" ma cambieremo il GPIO in
o SCHEDA_RGB1_R
o SCHEDA_RGB1_G
o SCHEDA_RGB1_B

3. Chiamare "Board_SetLed" 3 volte sia nello stato OFF che nello stato ON, come mostrato in Figura 7.

FIG 7 RefreshMMI modificato per utilizzare LED RGB

La nostra nuova modifica è ora implementata e sei pronto per la compilazione.
I passaggi per programmare un dispositivo sono trattati nell'esercizio "3A Compile Switch OnOff and enable debug", e brevemente ripetuti qui:

  1. Fare clic su "Costruisci" ICON 1 pulsante per iniziare a costruire il progetto.
  2. Al termine della build, espandi la cartella "Binaries" e fai clic con il pulsante destro del mouse su *.hex file per selezionare “Flash su dispositivo..”.
  3. Seleziona l'hardware connesso nella finestra pop-up. Il "Programmatore Flash" è ora precompilato con tutti i dati necessari e sei pronto per fare clic su "Programma".
  4. Fare clic su "Programma".

Dopo un po', la programmazione termina e il dispositivo finale è ora aggiornato con la versione modificata di Switch On/Off.

3.1.1 Testare la funzionalità

Negli esercizi precedenti abbiamo già incluso il dispositivo in una rete Z-Wave sicura utilizzando SmartStart. Fare riferimento all'esercizio "Includi l'uso di SmartStart" per le istruzioni.

Suggerimento L'interno file sistema non viene cancellato tra la riprogrammazione. Ciò consente a un nodo di rimanere in una rete e mantenere le stesse chiavi di rete quando lo si riprogramma.

Se è necessario modificare, ad esempio, la frequenza alla quale opera il modulo o il DSK, è necessario "Cancellare" il chip prima che la nuova frequenza venga scritta nella NVM interna.

Pertanto, il tuo dispositivo è già incluso nella rete.

Testa la funzionalità verificando di poter accendere e spegnere il LED RGB.

  • Testare la funzionalità utilizzando "Set di base ON" e "Set di base OFF" nel controller del PC. Il LED RGB dovrebbe accendersi e spegnersi.
  • Il LED RGB può anche essere acceso e spento utilizzando BTN0 sull'hardware.

Ora abbiamo verificato che la modifica funziona come previsto e abbiamo cambiato con successo il GPIO utilizzato in un Sample Applicazione

3.2 Modificare il componente del colore RGB

In questa sezione, modificheremo il LED RGB e proveremo a mescolare i componenti del colore.

“Un colore nel modello di colore RGB viene descritto indicando la quantità di rosso, verde e blu inclusa. Il colore è espresso come tripletta RGB (r,g,b), ogni cui componente può variare da zero ad un valore massimo definito. Se tutti i componenti sono a zero il risultato è nero; se tutti sono al massimo, il risultato è il bianco rappresentabile più luminoso.”

Da Wikipedia in poi Modello di colore RGB.

FIG 8 Componenti colore RGB mischiati insieme

Poiché abbiamo abilitato tutti i componenti del colore nella sezione precedente, il LED RGB è bianco quando è acceso. Accendendo e spegnendo i singoli componenti, possiamo cambiare il LED. Inoltre, regolando l'intensità di ogni componente del colore, possiamo creare tutti i colori intermedi. Per questo, utilizzeremo PWM per controllare i GPIO.

  1. In ApplicationTask() inizializzare il PwmTimer e impostare i pin RGB su PWM, come mostrato nella Figura 9.                                                                                FIG 9 PWM inizializzato in ApplicationTask
  2. In RefreshMMI(), utilizzeremo un numero casuale per ogni componente del colore. Usa rand() per ottenere un nuovo valore ogni volta che il LED viene acceso.
  3. Utilizzare DPRINTF() per scrivere il valore appena generato sulla porta di debug seriale.
  4. Sostituisci Board_SetLed() con Board_RgbLedSetPwm(), per utilizzare il valore casuale.
  5. Fare riferimento alla Figura 10 per il RefreshMMI() aggiornato.

FIG 10 RefreshMMI aggiornato con PWM

Figura 10: RefreshMMI aggiornato con PWM

La nostra nuova modifica è ora implementata e sei pronto per la compilazione.

  1. Fare clic su "Costruisci" ICON 1 pulsante per iniziare a costruire il progetto.
  2. Al termine della build, espandi la cartella "Binaries" e fai clic con il pulsante destro del mouse su *.hex file per selezionare “Flash su dispositivo..”.
  3. Seleziona l'hardware connesso nella finestra pop-up. Il "Programmatore Flash" è ora precompilato con tutti i dati necessari e sei pronto per fare clic su "Programma".
  4. Fare clic su "Programma".

Dopo un po', la programmazione termina e il dispositivo finale è ora aggiornato con la versione modificata di Switch On/Off.

3.2.1 Testare la funzionalità

Testa la funzionalità verificando di poter cambiare il colore del LED RGB.

  1. Testare la funzionalità utilizzando "Impostazione di base ON" nel controller del PC.
  2. Fare clic su "Impostazione di base ON" per vedere un cambiamento di colore.

Ora abbiamo verificato che la modifica funzioni come previsto e abbiamo modificato correttamente il GPIO per utilizzare PWM.

4 Discussione

In questo esercizio abbiamo modificato Switch On/Off dal controllo di un semplice LED al controllo di un LED multicolore. A seconda dei valori PWM, ora possiamo passare a qualsiasi colore e intensità.

  • È necessario utilizzare un "interruttore binario" come tipo di dispositivo per questa applicazione?
  • Quali classi di comando sono più adatte per un LED multicolore?

Per rispondere alla domanda, dovresti fare riferimento alla specifica Z-Wave:

  • Specifiche del tipo di dispositivo Z-Wave Plus v2
  • Specifiche della classe di comando dell'applicazione Z-Wave

Questo conclude il tutorial su come modificare e cambiare i GPIO di uno Z-Wave Sample Applicazione.

 

Leggi di più su questo manuale e scarica il PDF:

Documenti / Risorse

SILICON LABS Lab 3B - Modifica interruttore On/Off [pdf] Guida utente
Lab 3B, Modifica interruttore, On, Off, Z-Wave, SDK

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *