SILICON LOGO

SILICON LABS Lab 3B – Korisnički priručnik za modificiranje uključivanja/isključivanja

SILICON LABS Lab 3B - Modify Switch On/Off

Ova praktična vježba će pokazati kako napraviti modifikaciju na jednom od sample aplikacije koje se isporučuju kao dio Z-Wave SDK-a.

Ova vježba je dio serije “Z-Wave 1-Day Course”.

  1. Uključuje korištenje SmartStart
  2. Dešifrirajte Z-Wave RF okvire koristeći Zniffer
  3. 3A: Prevođenje uključiti/isključiti i omogućiti otklanjanje grešaka
    3B: Modificirajte prekidač za uključivanje/isključivanje
  4. Razumjeti FLiRS uređaje

 

KLJUČNE KARAKTERISTIKE

  • Promijenite GPIO
  • Implementirajte PWM
  • Koristite ugrađeni RGB LED

 

1. Uvod

Ova vježba se nadovezuje na prethodnu vježbu „3A: Prevođenje uključite/isključite i omogući otklanjanje grešaka“, koja je pokazala kako se kompajlirati i koristiti prekidač za uključivanje/isključivanje sample application.

U ovoj vježbi ćemo napraviti modifikaciju sample aplikacije, promjenom GPIO koji kontrolira LED. Osim toga, koristit ćemo RGB LED i naučiti kako koristiti PWM za promjenu boja.

1.1 Hardverski zahtjevi

  • 1 Glavni razvojni odbor WSTK
  • 1 Z-Wave radio razvojna ploča: ZGM130S SiP modul
  • 1 UZB kontroler
  • 1 USB Zniffer

1.2 Softverski zahtjevi

  • Simplicity Studio v4
  • Z-Wave 7 SDK
  • Z-Wave PC kontroler
  • Z-Wave Zniffer

SLIKA 1 Glavna razvojna ploča sa Z-Wave SiP modulom

Slika 1: Glavna razvojna ploča sa Z-Wave SiP modulom

1.3 Preduslovi
Prethodne praktične vježbe pokrivale su kako koristiti PC Controller i Zniffer aplikaciju za izgradnju Z-Wave mreže i hvatanje RF komunikacije u svrhu razvoja. Ova vježba pretpostavlja da ste upoznati s ovim alatima.

Prethodne praktične vježbe su također pokrile kako koristiti sample aplikacija koje se isporučuju sa Z-Wave SDK. Ova vježba pretpostavlja da ste upoznati s korištenjem i kompajliranjem jednog od sample applications.

 

2. Krećite se kroz interfejs ploče

Z-Wave okvir dolazi sa slojem hardverske apstrakcije (HAL) definisanim board.h i board.c, pružajući mogućnost implementacije za svaku od vaših hardverskih platformi.

Sloj apstrakcije hardvera (HAL) je programski kod između hardvera sistema i njegovog softvera koji obezbeđuje konzistentan interfejs za aplikacije koje mogu da rade na nekoliko različitih hardverskih platformi. Da uzmem advantagOd ove mogućnosti, aplikacije treba da pristupaju hardveru preko API-ja koji obezbeđuje HAL, a ne direktno. Zatim, kada pređete na novi hardver, trebate samo ažurirati HAL.

2.1 Otvorite Sample Project
Za ovu vježbu potrebno je da otvorite Uključi / Isključi sample application. Ako ste završili vježbu “3A kompajliranje isključite i omogućite otklanjanje grešaka”, ona bi već trebala biti otvorena u vašem Simplicity Studio IDE-u.

U ovom dijelu ćemo pogledati ploču files i razumjeti kako se LED diode inicijaliziraju.

  1. Od glavnog file “SwitchOnOff.c”, pronađite “ApplicationInit()” i primijetite poziv Board_Init().
  2. Postavite kursor na Board_Init() i pritisnite F3 da otvorite deklaraciju.

SLIKA 2 Otvorite Sample Project

3. U Board_Init() primijetite kako se LED diode sadržane u BOARD_LED_COUNT inicijaliziraju pomoću naziva Board_Con-figLed()

SLIKA 3 Otvorite Sample Project

4. Postavite kursor na BOARD_LED_COUNT i pritisnite F3 da otvorite deklaraciju.
5. LED diode definirane u led_id_t su sljedeće:

SLIKA 4 Otvorite Sample Project

6. Vratite se na ploču.c file.
7. Postavite kursor na Board_ConfigLed() i pritisnite F3 da otvorite deklaraciju.
8. Obratite pažnju da su sve LED diode definirane u led_id_t zatim konfigurirane u Board_ConfigLed() kao izlaz.

SLIKA 5 Otvorite Sample Project

To znači da su sve LED diode na razvojnoj ploči već definirane kao izlazi i spremne za korištenje.

 

3. Napravite modifikaciju na Z-Wave Sample Application

U ovoj vježbi ćemo modificirati GPIO-ove koji se koriste za LED u prekidačima za uključivanje/isključivanjeample application. U prethodnom odeljku smo naučili kako su sve LED diode na razvojnoj ploči već inicijalizirane kao izlaz i spremne za upotrebu.

3.1 Koristite RGB LED

Koristićemo ugrađeni RGB LED na Z-Wave razvojnom modulu, umesto LED na ploči sa dugmadima.

1. Pronađite funkciju RefreshMMI, kao što se vidi na slici 6, u glavnoj aplikaciji SwitchOnOff.c file.

SLIKA 6 RefreshMMI bez ikakvih modifikacija

Slika 6: RefreshMMI bez ikakvih modifikacija

2. Koristit ćemo funkciju “Board_SetLed” ali ćemo promijeniti GPIO u
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Pozovite “Board_SetLed” 3 puta u OFF i ON stanju, kao što je prikazano na slici 7.

SLIKA 7 RefreshMMI modificiran da koristi RGB LED

Naša nova modifikacija je sada implementirana i spremni ste za kompajliranje.
Koraci za programiranje uređaja pokriveni su vježbom “3A kompajliranje, uključi isključeno i omogući otklanjanje grešaka”, i ukratko se ponavljaju ovdje:

  1. Kliknite na "Build" IKONA 1 dugme za početak izgradnje projekta.
  2. Kada se izgradnja završi, proširite folder “Binaries” i kliknite desnim tasterom miša na *.hex file da odaberete “Flash to Device...”.
  3. Odaberite povezani hardver u iskačućem prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste da kliknete na “Program”.
  4. Kliknite na “Program”.

Nakon kratkog vremena programiranje je završeno, a vaš krajnji uređaj je sada uključen sa modificiranom verzijom uključivanja/isključivanja.

3.1.1 Testirajte funkcionalnost

U prethodnim vježbama smo već uključili uređaj u sigurnu Z-Wave mrežu koristeći SmartStart. Pogledajte vježbu “Uključi korištenje SmartStart” za upute.

Hint Interni file sistem se ne briše između reprogramiranja. Ovo omogućava čvoru da ostane u mreži i zadrži iste mrežne ključeve kada ga reprogramirate.

Ako trebate promijeniti npr. frekvenciju na kojoj modul radi ili DSK, trebate “Obriši” čip prije nego što nova frekvencija bude upisana u interni NVM.

Kao takav, vaš uređaj je već uključen u mrežu.

Testirajte funkcionalnost tako što ćete provjeriti možete li uključiti i isključiti RGB LED.

  • Testirajte funkcionalnost koristeći “Basic Set ON” i “Basic Set OFF” u PC kontroleru. RGB LED bi se trebao uključiti i isključiti.
  • RGB LED se također može uključiti i isključiti pomoću BTN0 na hardveru.

Sada smo potvrdili da modifikacija radi kako se očekivalo i uspješno smo promijenili GPIO koji se koristi u Sample Application

3.2 Promjena komponente RGB boje

U ovom odeljku ćemo modifikovati RGB LED i pokušati da pomešamo komponente boja.

“Boja u RGB modelu boja je opisana označavanjem koliko je svake od crvene, zelene i plave uključeno. Boja je izražena kao RGB triplet (r,g,b), čija svaka komponenta može varirati od nule do definisane maksimalne vrijednosti. Ako su sve komponente na nuli rezultat je crn; ako su svi na maksimumu, rezultat je najsjajnija reprezentativna bijela boja.”

Od Wikipedije dalje RGB model boja.

SLIKA 8 Komponente RGB boje pomiješane zajedno

Pošto smo omogućili sve komponente u boji u prethodnom odeljku, RGB LED je bela kada je uključena. Uključivanjem i isključivanjem pojedinih komponenti možemo promijeniti LED. Osim toga, podešavanjem intenziteta svake komponente boje, možemo napraviti sve boje između. Za to ćemo koristiti PWM za kontrolu GPIO-a.

  1. U ApplicationTask() inicijalizirajte PwmTimer i postavite RGB pinove na PWM, kao što je prikazano na slici 9.                                                                                SLIKA 9 PWM inicijaliziran u ApplicationTask-u
  2. U RefreshMMI(), koristit ćemo nasumični broj za svaku komponentu boje. Koristite rand() da dobijete novu vrijednost svaki put kada se LED dioda uključi.
  3. Koristite DPRINTF() da zapišete novogeneriranu vrijednost u serijski port za otklanjanje grešaka.
  4. Zamijenite Board_SetLed() sa Board_RgbLedSetPwm(), kako biste koristili nasumične vrijednosti.
  5. Pogledajte sliku 10 za ažurirani RefreshMMI().

SLIKA 10 RefreshMMI ažuriran sa PWM

Slika 10: RefreshMMI ažuriran sa PWM

Naša nova modifikacija je sada implementirana i spremni ste za kompajliranje.

  1. Kliknite na "Build" IKONA 1 dugme za početak izgradnje projekta.
  2. Kada se izgradnja završi, proširite folder “Binaries” i kliknite desnim tasterom miša na *.hex file da odaberete “Flash to Device...”.
  3. Odaberite povezani hardver u iskačućem prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste da kliknete na “Program”.
  4. Kliknite na “Program”.

Nakon kratkog vremena programiranje je završeno, a vaš krajnji uređaj je sada uključen sa modificiranom verzijom uključivanja/isključivanja.

3.2.1 Testirajte funkcionalnost

Testirajte funkcionalnost tako što ćete provjeriti možete li promijeniti boju RGB LED-a.

  1. Testirajte funkcionalnost koristeći “Basic Set ON” u PC kontroleru.
  2. Kliknite na “Basic Set ON” da vidite promjenu boje.

Sada smo potvrdili da modifikacija radi kako se očekivalo i uspješno smo promijenili GPIO da koristi PWM.

4 Diskusija

U ovoj vježbi smo modificirali Uključivanje/isključivanje sa kontrole jednostavnog LED na upravljanje višebojnim LED-om. Ovisno o PWM vrijednostima, sada možemo promijeniti bilo koju boju i intenzitet.

  • Treba li koristiti “binarni prekidač” kao tip uređaja za ovu aplikaciju?
  • Koje komandne klase su prikladnije za višebojne LED diode?

Da biste odgovorili na pitanje, trebali biste pogledati Z-Wave specifikaciju:

  • Z-Wave Plus v2 Specifikacija tipa uređaja
  • Specifikacija klase naredbe Z-Wave aplikacije

Ovim je završen vodič o tome kako modificirati i promijeniti GPIO-ove Z-Wave Sample Application.

 

Pročitajte više o ovom priručniku i preuzmite PDF:

Dokumenti / Resursi

SILICON LABS Lab 3B - Modify Switch On/Off [pdf] Korisnički priručnik
Laboratorija 3B, Modify Switch, On, Off, Z-Wave, SDK

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *