SILICIJSKI LOGO

SILICON LABS Lab 3B – Korisnički priručnik za izmjenu prekidača za uključivanje/isključivanje

SILICON LABS Lab 3B - Modificirajte prekidač za uključivanje/isključivanje

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 dio je serije “Z-Wave 1-Day Course”.

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

 

KLJUČNE ZNAČAJKE

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

 

1. Uvod

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

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 znifer

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 Preduvjeti
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 također su pokrivale kako koristiti sample aplikacija koje se isporučuju sa Z-Wave SDK. Ova vježba pretpostavlja da ste upoznati s korištenjem i sastavljanjem jednog od sample aplikacije.

 

2. Krećite se sučeljem ploče

Z-Wave okvir dolazi sa slojem hardverske apstrakcije (HAL) definiranim 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 sustava i njegovog softvera koji pruža dosljedno sučelje za aplikacije koje se mogu izvoditi na nekoliko različitih hardverskih platformi. Uzimati advantagOd ove mogućnosti, aplikacije bi trebale pristupati hardveru putem API-ja koji pruža HAL, a ne izravno. Zatim, kada prijeđete na novi hardver, trebate samo ažurirati HAL.

2.1 Otvorite Sample Projekt
Za ovu vježbu trebate otvoriti Uključivanje / Isključivanje sample aplikacija. Ako ste dovršili vježbu "3A kompajliranje isključite i omogućite otklanjanje pogrešaka", ona bi već trebala biti otvorena u vašem Simplicity Studio IDE-u.

U ovom ćemo odjeljku gledati 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 svoj tečajnik na Board_Init() i pritisnite F3 da otvorite deklaraciju.

SLIKA 2 Otvorite Sample Projekt

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 Projekt

4. Postavite tečaj 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 Projekt

6. Povratak na ploču.c file.
7. Postavite vaš tečajnik na Board_ConfigLed() i pritisnite F3 da otvorite deklaraciju.
8. Primijetite da su sve LED diode definirane u led_id_t zatim konfigurirane u Board_ConfigLed() kao izlaz.

SLIKA 5 Otvorite Sample Projekt

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-valu Sample Primjena

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

3.1 Koristite RGB LED

Koristit ćemo ugrađeni RGB LED na Z-Wave razvojnom modulu, umjesto LED na ploči s gumbima.

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

SLIKA 6 RefreshMMI bez ikakvih izmjena

Slika 6: RefreshMMI bez ikakvih izmjena

2. Koristit ćemo funkciju “Board_SetLed”, ali promijenit ćemo 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 za korištenje RGB LED

Naša nova izmjena je sada implementirana i spremni ste za kompajliranje.
Koraci za programiranje uređaja obuhvaćeni su vježbom "3A kompajliranje, uključivanje isključenja i omogućavanje otklanjanja pogrešaka", te se ovdje kratko ponavljaju:

  1. Kliknite na "Build" IKONA 1 gumb za početak izgradnje projekta.
  2. Kada se izrada završi, proširite mapu “Binaries” i kliknite desnom tipkom miša na *.hex file za odabir "Flash to Device...".
  3. Odaberite povezani hardver u skočnom prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste kliknuti na “Program”.
  4. Kliknite "Program".

Nakon kratkog vremena programiranje završava, a vaš krajnji uređaj sada se prikazuje s vašom 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 pomoću SmartStarta. Pogledajte vježbu „Uključi korištenje SmartStarta” za upute.

Savjet Interni file sustav se ne briše između reprogramiranja. To omogućuje č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 “Izbrisati” čip prije nego što se nova frekvencija zapiše u interni NVM.

Kao takav, vaš je uređaj 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 "Osnovni 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 prema očekivanjima i uspješno smo promijenili GPIO koji se koristi u Sample Primjena

3.2 Promjena komponente RGB boje

U ovom ćemo odjeljku modificirati RGB LED i pokušati miješati komponente boja.

“Boja u RGB modelu boja opisuje se označavanjem koliko je 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 definirane maksimalne vrijednosti. Ako su sve komponente na nuli, rezultat je crn; ako su svi na maksimumu, rezultat je najsvjetlija reprezentativna bijela boja.”

Od Wikipedije dalje RGB model boja.

SLIKA 8 Komponente RGB boje pomiješane zajedno

Budući da smo omogućili sve komponente u boji u prethodnom odjeljku, RGB LED je bijela kada je uključena. Paljenjem i gašenjem 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 biste dobili novu vrijednost svaki put kada se LED dioda uključi.
  3. Upotrijebite DPRINTF() za pisanje novo generirane vrijednosti u serijski port za otklanjanje pogrešaka.
  4. Zamijenite Board_SetLed() s Board_RgbLedSetPwm(), kako biste koristili slučajnu vrijednost.
  5. Pogledajte sliku 10 za ažurirani RefreshMMI().

SLIKA 10 RefreshMMI ažuriran s PWM

Slika 10: RefreshMMI ažuriran s PWM-om

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

  1. Kliknite na "Build" IKONA 1 gumb za početak izgradnje projekta.
  2. Kada se izrada završi, proširite mapu “Binaries” i kliknite desnom tipkom miša na *.hex file za odabir "Flash to Device...".
  3. Odaberite povezani hardver u skočnom prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste kliknuti na “Program”.
  4. Kliknite "Program".

Nakon kratkog vremena programiranje završava, a vaš krajnji uređaj sada se prikazuje s vašom 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 korištenjem "Basic Set ON" u PC Controlleru.
  2. Kliknite na "Osnovni set ON" da vidite promjenu boje.

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

4 Rasprava

U ovoj vježbi smo modificirali prekidač za uključivanje/isključivanje iz upravljanja jednostavnim LED-om u upravljanje višebojnim LED-om. Ovisno o PWM vrijednostima, sada možemo promijeniti bilo koju boju i intenzitet.

  • Treba li se "binarni prekidač" koristiti kao vrsta uređaja za ovu aplikaciju?
  • Koje su naredbene klase prikladnije za LED diode u više boja?

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

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

Ovo završava vodič o tome kako modificirati i promijeniti GPIO-ove Z-Wave Sample Primjena.

 

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

Dokumenti / Resursi

SILICON LABS Lab 3B - Modificirajte prekidač za uključivanje/isključivanje [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 *