SILICON LABS Lab 3B – Ghidul utilizatorului Modificare pornire/oprire
Acest exercițiu practic va demonstra cum să faceți o modificare pe unul dintre sampaplicații care sunt livrate ca parte a SDK-ului Z-Wave.
Acest exercițiu face parte din seria „Curs de 1 zi Z-Wave”.
- Includeți utilizarea SmartStart
- Decriptați cadrele Z-Wave RF folosind Zniffer
- 3A: Compilați Pornire/Oprire și Activare depanare
3B: Modificați comutatorul On/Off - Înțelegeți dispozitivele FLiRS
CARACTERISTICI CHEIE
- Schimbați GPIO
- Implementați PWM
- Utilizați LED-ul RGB integrat
1. Introducere
Acest exercițiu se bazează pe exercițiul anterior „3A: Compilați Pornire/Oprire și activare depanare”, care a demonstrat cum să compilați și să utilizați funcțiile de pornire/oprire.ample aplicație.
În acest exercițiu vom face o modificare la sampaplicația, schimbând GPIO care controlează LED-ul. În plus, vom folosi un LED RGB și vom învăța cum să folosim PWM pentru a schimba culorile.
1.1 Cerințe hardware
- 1 Placă principală de dezvoltare WSTK
- 1 Placă de dezvoltare radio Z-Wave: Modulul SiP ZGM130S
- 1 controler UZB
- 1 USB Zniffer
1.2 Cerințe software
- Simplicity Studio v4
- Z-Wave 7 SDK
- Controler PC Z-Wave
- Z-Wave Zniffer
Figura 1: Placă de dezvoltare principală cu modul Z-Wave SiP
1.3 Cerințe preliminare
Exercițiile practice anterioare au tratat cum să utilizați PC Controller și aplicația Zniffer pentru a construi o rețea Z-Wave și a captura comunicația RF în scopul dezvoltării. Acest exercițiu presupune că sunteți familiarizat cu aceste instrumente.
Exercițiile practice anterioare au abordat, de asemenea, modul de utilizare a sampaplicațiile care sunt livrate cu Z-Wave SDK. Acest exercițiu presupune că sunteți familiarizat cu utilizarea și compilarea unuia dintre sample aplicații.
Cadrul Z-Wave vine cu un strat de abstractizare hardware (HAL) definit de board.h și board.c, oferind posibilitatea de a avea implementări pentru fiecare dintre platformele dumneavoastră hardware.
Hardware Abstraction Layer (HAL) este un cod de program între hardware-ul unui sistem și software-ul acestuia, care oferă o interfață consistentă pentru aplicații care pot rula pe mai multe platforme hardware diferite. A lua avanstagDin această capacitate, aplicațiile ar trebui să acceseze hardware-ul prin API-ul furnizat de HAL, mai degrabă decât direct. Apoi, când treceți la noul hardware, trebuie doar să actualizați HAL.
2.1 Deschideți Sample Project
Pentru acest exercițiu trebuie să deschideți butonul Pornire/Oprireample aplicație. Dacă ați finalizat exercițiul „3A Compilare Pornire, dezactivare și activare depanare”, acesta ar trebui să fie deja deschis în IDE-ul Simplicity Studio.
În această secțiune ne vom uita la bord files și înțelegeți cum sunt inițializate LED-urile.
- Din principal file „SwitchOnOff.c”, localizați „ApplicationInit()” și observați apelul la Board_Init().
- Plasați cursul pe Board_Init() și apăsați pe F3 pentru a deschide declarația.
3. În Board_Init() observați cum LED-urile conținute în BOARD_LED_COUNT sunt inițializate de numit Board_Con-figLed()
4. Plasați cursul pe BOARD_LED_COUNT și apăsați pe F3 pentru a deschide declarația.
5. LED-urile definite în led_id_t sunt după cum urmează:
6. Reveniți la bord.c file.
7. Plasați cursul pe Board_ConfigLed() și apăsați pe F3 pentru a deschide declarația.
8. Observați că toate LED-urile definite în led_id_t sunt apoi configurate în Board_ConfigLed() ca ieșire.
Acest lucru înseamnă că toate LED-urile de pe placa de dezvoltare sunt deja definite ca ieșiri și gata de utilizare.
3. Efectuați o modificare la un Z-Wave Sampcererea
În acest exercițiu, vom modifica GPIO-urile utilizate pentru LED-urile din pornirea/oprireaample aplicație. În secțiunea anterioară am învățat cum toate LED-urile de pe placa de dezvoltare sunt deja inițializate ca ieșire și gata de utilizare.
3.1 Utilizați LED-ul RGB
Vom folosi LED-ul RGB integrat pe modulul de dezvoltare Z-Wave, în loc de LED-ul de pe panoul de butoane.
1. Localizați funcția RefreshMMI, așa cum se vede în Figura 6, în aplicația principală SwitchOnOff.c file.
Figura 6: RefreshMMI fără modificări
2. Vom folosi funcția „Board_SetLed”, dar vom schimba GPIO la
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. Apelați „Board_SetLed” de 3 ori atât în starea OFF cât și în starea ON, așa cum se arată în Figura 7.
Noua noastră modificare este acum implementată și sunteți gata să compilați.
Pașii de programare a unui dispozitiv sunt tratați în exercițiul „3A Compilare Pornire și activare depanare” și repetați pe scurt aici:
- Faceți clic pe „Build”
butonul pentru a începe construirea proiectului.
- Când construirea se termină, extindeți folderul „Binaries” și faceți clic dreapta pe *.hex file pentru a selecta „Flash to Device...”.
- Selectați hardware-ul conectat în fereastra pop-up. „Flash Programmer” este acum precompletat cu toate datele necesare și sunteți gata să faceți clic pe „Program”.
- Faceți clic pe „Program”.
După o scurtă perioadă de timp, programarea se termină, iar dispozitivul dvs. final este acum flash cu versiunea dvs. modificată de Pornire/Oprire.
3.1.1 Testați funcționalitatea
În exercițiile anterioare am inclus deja dispozitivul într-o rețea Z-Wave securizată folosind SmartStart. Consultați exercițiul „Includeți folosind SmartStart” pentru instrucțiuni.
Sugestie Intern file sistemul nu este șters între reprogramare. Acest lucru permite unui nod să rămână într-o rețea și să păstreze aceleași chei de rețea atunci când îl reprogramați.
Dacă trebuie să schimbați, de exemplu, frecvența la care funcționează modulul sau DSK-ul, trebuie să „Ștergeți” cipul înainte ca noua frecvență să fie scrisă pe NVM-ul intern.
Ca atare, dispozitivul dvs. este deja inclus în rețea.
Testați funcționalitatea verificând că puteți porni și opri LED-ul RGB.
- Testați funcționalitatea utilizând „Setul de bază ON” și „Setul de bază OFF” din controlerul PC. LED-ul RGB ar trebui să se pornească și să se stingă.
- LED-ul RGB poate fi, de asemenea, pornit și stins folosind BTN0 pe hardware.
Am verificat acum că modificarea funcționează conform așteptărilor și am schimbat cu succes GPIO utilizat într-un Sampcererea
3.2 Schimbați componenta de culoare RGB
În această secțiune, vom modifica LED-ul RGB și vom încerca să amestecăm componentele de culoare.
„O culoare în modelul de culoare RGB este descrisă indicând cât de mult este inclusă fiecare dintre roșu, verde și albastru. Culoarea este exprimată ca un triplet RGB (r,g,b), fiecare componentă a căruia poate varia de la zero la o valoare maximă definită. Dacă toate componentele sunt la zero, rezultatul este negru; dacă toate sunt la maximum, rezultatul este cel mai strălucitor alb reprezentabil.”
De la Wikipedia mai departe Model de culoare RGB.
Deoarece am activat toate componentele de culoare în secțiunea anterioară, LED-ul RGB este alb când este pornit. Prin pornirea și oprirea componentelor individuale, putem schimba LED-ul. În plus, ajustând intensitatea fiecărei componente de culoare, putem realiza toate culorile dintre acestea. Pentru asta, vom folosi PWM pentru a controla GPIO-urile.
- În ApplicationTask() inițializați PwmTimer și configurați pinii RGB la PWM, așa cum se arată în Figura 9.
- În RefreshMMI(), vom folosi un număr aleatoriu pentru fiecare componentă de culoare. Utilizați rand() pentru a obține o nouă valoare de fiecare dată când LED-ul este pornit.
- Utilizați DPRINTF() pentru a scrie valoarea nou generată în portul serial de depanare.
- Înlocuiți Board_SetLed() cu Board_RgbLedSetPwm(), pentru a utiliza valoarea aleatoare.
- Consultați Figura 10 pentru actualizarea RefreshMMI().
Figura 10: RefreshMMI actualizat cu PWM
Noua noastră modificare este acum implementată și sunteți gata să compilați.
- Faceți clic pe „Build”
butonul pentru a începe construirea proiectului.
- Când construirea se termină, extindeți folderul „Binaries” și faceți clic dreapta pe *.hex file pentru a selecta „Flash to Device...”.
- Selectați hardware-ul conectat în fereastra pop-up. „Flash Programmer” este acum precompletat cu toate datele necesare și sunteți gata să faceți clic pe „Program”.
- Faceți clic pe „Program”.
După o scurtă perioadă de timp, programarea se termină, iar dispozitivul dvs. final este acum flash cu versiunea dvs. modificată de Pornire/Oprire.
3.2.1 Testați funcționalitatea
Testați funcționalitatea verificând că puteți schimba culoarea LED-ului RGB.
- Testați funcționalitatea utilizând „Basic Set ON” din controlerul PC.
- Faceți clic pe „Setare de bază ON” pentru a vedea o schimbare a culorii.
Am verificat acum că modificarea funcționează conform așteptărilor și am schimbat cu succes GPIO pentru a utiliza PWM.
4. Discutie
În acest exercițiu am modificat Pornirea/Oprirea de la controlul unui LED simplu la controlul unui LED multicolor. În funcție de valorile PWM, acum putem trece la orice culoare și intensitate.
- Ar trebui folosit un „Comutator binar” ca tip de dispozitiv pentru această aplicație?
- Ce clase de comandă sunt mai potrivite pentru un LED multicolor?
Pentru a răspunde la întrebare, ar trebui să vă referiți la specificația Z-Wave:
- Specificația tipului de dispozitiv Z-Wave Plus v2
- Specificația clasei de comandă a aplicației Z-Wave
Aceasta încheie tutorialul despre cum să modificați și să schimbați GPIO-urile unui Z-Wave Sample Aplicație.
Citiți mai multe despre acest manual și descărcați PDF:
Documente/Resurse
![]() |
SILICON LABS Lab 3B - Modificare comutator On/Off [pdfGhid de utilizare Lab 3B, Modificare comutator, Pornit, Dezactivat, Z-Wave, SDK |