SILICON LABS Lab 3B – Korisnički priručnik za izmjenu prekidača 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”.
- Uključuje korištenje SmartStart
- Dešifrirajte Z-Wave RF okvire pomoću Zniffera
- 3A: Prevođenje uključiti/isključiti i omogućiti otklanjanje pogrešaka
3B: Izmjena prekidača za uključivanje/isključivanje - 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
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.
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.
- Od glavnog file “SwitchOnOff.c”, pronađite “ApplicationInit()” i primijetite poziv Board_Init().
- Postavite svoj tečajnik 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 tečaj na BOARD_LED_COUNT i pritisnite F3 da otvorite deklaraciju.
5. LED diode definirane u led_id_t su sljedeće:
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.
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
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.
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:
- Kliknite na "Build"
gumb za početak izgradnje projekta.
- Kada se izrada završi, proširite mapu “Binaries” i kliknite desnom tipkom miša na *.hex file za odabir "Flash to Device...".
- Odaberite povezani hardver u skočnom prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste kliknuti na “Program”.
- 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.
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.
- 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 biste dobili novu vrijednost svaki put kada se LED dioda uključi.
- Upotrijebite DPRINTF() za pisanje novo generirane vrijednosti u serijski port za otklanjanje pogrešaka.
- Zamijenite Board_SetLed() s Board_RgbLedSetPwm(), kako biste koristili slučajnu vrijednost.
- Pogledajte sliku 10 za ažurirani RefreshMMI().
Slika 10: RefreshMMI ažuriran s PWM-om
Naša nova izmjena je sada implementirana i spremni ste za kompajliranje.
- Kliknite na "Build"
gumb za početak izgradnje projekta.
- Kada se izrada završi, proširite mapu “Binaries” i kliknite desnom tipkom miša na *.hex file za odabir "Flash to Device...".
- Odaberite povezani hardver u skočnom prozoru. “Flash programator” je sada unaprijed popunjen svim potrebnim podacima i spremni ste kliknuti na “Program”.
- 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.
- Testirajte funkcionalnost korištenjem "Basic Set ON" u PC Controlleru.
- 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 |