SILICON LABS Lab 3B – Korisnički priručnik za modificiranje uključivanja/isključivanja
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”.
- Uključuje korištenje SmartStart
- Dešifrirajte Z-Wave RF okvire koristeći Zniffer
- 3A: Prevođenje uključiti/isključiti i omogućiti otklanjanje grešaka
3B: Modificirajte prekidač za uključivanje/isključivanje - 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
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.
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.
- Od glavnog file “SwitchOnOff.c”, pronađite “ApplicationInit()” i primijetite poziv Board_Init().
- Postavite kursor na Board_Init() i pritisnite F3 da otvorite deklaraciju.
3. U Board_Init() primijetite kako se LED diode sadržane u BOARD_LED_COUNT inicijaliziraju pomoću naziva Board_Con-figLed()
4. Postavite kursor na BOARD_LED_COUNT i pritisnite F3 da otvorite deklaraciju.
5. LED diode definirane u led_id_t su sljedeće:
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.
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
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.
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:
- Kliknite na "Build"
dugme za početak izgradnje projekta.
- Kada se izgradnja završi, proširite folder “Binaries” i kliknite desnim tasterom miša na *.hex file da odaberete “Flash to Device...”.
- Odaberite povezani hardver u iskačućem prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste da kliknete na “Program”.
- 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.
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.
- U ApplicationTask() inicijalizirajte PwmTimer i postavite RGB pinove na PWM, kao što je prikazano na slici 9.
- 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.
- Koristite DPRINTF() da zapišete novogeneriranu vrijednost u serijski port za otklanjanje grešaka.
- Zamijenite Board_SetLed() sa Board_RgbLedSetPwm(), kako biste koristili nasumične vrijednosti.
- Pogledajte sliku 10 za ažurirani RefreshMMI().
Slika 10: RefreshMMI ažuriran sa PWM
Naša nova modifikacija je sada implementirana i spremni ste za kompajliranje.
- Kliknite na "Build"
dugme za početak izgradnje projekta.
- Kada se izgradnja završi, proširite folder “Binaries” i kliknite desnim tasterom miša na *.hex file da odaberete “Flash to Device...”.
- Odaberite povezani hardver u iskačućem prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste da kliknete na “Program”.
- 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.
- Testirajte funkcionalnost koristeći “Basic Set ON” u PC kontroleru.
- 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 |