SILICON LOGO

SILICON LABS Lab 3B - Wizigje Switch On / Off Brûkersgids

SILICON LABS Lab 3B - Wizigje Switch On / Off

Dizze praktyske oefening sil demonstrearje hoe't jo in wiziging meitsje kinne op ien fan 'e sample applikaasjes dy't skippen as ûnderdiel fan de Z-Wave SDK.

Dizze oefening is ûnderdiel fan 'e searje "Z-Wave 1-Day Course".

  1. Ynklusyf it brûken fan SmartStart
  2. Z-Wave RF-frames ûntsiferje mei de Zniffer
  3. 3A: Kompilearje Switch On / Off en ynskeakelje debug
    3B: Wizigje Switch On / Off
  4. Ferstean FLiRS-apparaten

 

KEY FEATURES

  • Feroarje GPIO
  • Implementearje PWM
  • Brûk on-board RGB LED

 

1. Ynlieding

Dizze oefening bout boppe op 'e foarige oefening "3A: Kompilearje Switch On/Off en ynskeakelje debug", dy't demonstrearre hoe't jo de Switch On/Off s kompilearje en brûkeample applikaasje.

Yn dizze oefening sille wy meitsje in wiziging oan de sample applikaasje, troch feroarjen de GPIO dy't kontrolearret de LED. Derneist sille wy in RGB LED brûke en learje hoe PWM te brûken om kleuren te feroarjen.

1.1 Hardware easken

  • 1 WSTK Main Development Board
  • 1 Z-Wave Radio Development Board: ZGM130S SiP Module
  • 1 UZB Controller
  • 1 USB Zniffer

1.2 Software easken

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

FIG 1 Main Development Board mei Z-Wave SiP Module

Ofbylding 1: Main Development Board mei Z-Wave SiP Module

1.3 Betingsten
Foarige Hands-On-oefeningen hawwe behannele hoe't jo de PC Controller en Zniffer-applikaasje kinne brûke om in Z-Wave-netwurk te bouwen en de RF-kommunikaasje te fangen foar ûntwikkelingsdoel. Dizze oefening giet derfan út dat jo bekend binne mei dizze ark.

Foarige Hands-On oefeningen hat ek behannele hoe te brûken de sample applikaasjes dy't ferstjoerd wurde mei de Z-Wave SDK. Dizze oefening giet derfan út dat jo binne bekend mei it brûken en kompilearjen fan ien fan 'e sample applikaasjes.

 

2. Navigearje de Board Interface

It Z-Wave-ramt komt mei in hardwareabstraksjelaach (HAL) definieare troch board.h en board.c, en biedt de mooglikheid om ymplemintaasjes te hawwen foar elk fan jo hardwareplatfoarms.

De Hardware Abstraction Layer (HAL) is programmakoade tusken de hardware fan in systeem en syn software dy't in konsekwinte ynterface leveret foar applikaasjes dy't kinne rinne op ferskate ferskillende hardwareplatfoarms. Foarôf te nimmentage fan dizze mooglikheid moatte applikaasjes tagong krije ta hardware fia de API levere troch de HAL, ynstee fan direkt. Dan, as jo nei nije hardware ferhúzje, hoege jo allinich de HAL te aktualisearjen.

2.1 Iepenje Sampit projekt
Foar dizze oefening moatte jo iepenje de Switch On / Off sample applikaasje. As jo ​​​​oefening "3A Compile Switch OnOff" foltôge en debug ynskeakelje, soe it al moatte wurde iepene yn jo Simplicity Studio IDE.

Yn dizze paragraaf sille wy sjen nei it bestjoer files en begripe hoe't de LEDs wurde inisjalisearre.

  1. Fan 'e haad file "SwitchOnOff.c", locate "ApplicationInit ()" en fernimme de oprop oan Board_Init ().
  2. Pleats jo kursussen op Board_Init () en druk op F3 om de deklaraasje te iepenjen.

FIG 2 Iepenje Sampit projekt

3. Yn Board_Init () merken op hoe't LED's befette yn BOARD_LED_COUNT wurde inisjalisearre troch neamd Board_Con-figLed ()

FIG 3 Iepenje Sampit projekt

4. Plak jo kursussen op BOARD_LED_COUNT en druk op F3 om de ferklearring te iepenjen.
5. De LED's definieare yn led_id_t binne as folget:

FIG 4 Iepenje Sampit projekt

6. Werom nei it bestjoer.c file.
7. Pleats jo kursussen op Board_ConfigLed () en druk op F3 om de ferklearring te iepenjen.
8. Merk op dat alle LED's definieare yn led_id_t wurde dan konfigureare yn Board_ConfigLed () as útfier.

FIG 5 Iepenje Sampit projekt

Wat dit betsjut is dat alle LED's op it ûntwikkelingsboerd al binne definieare as útgongen en klear foar gebrûk.

 

3. Meitsje in wiziging oan in Z-Wave Sample Applikaasje

Yn dizze oefening sille wy feroarje de GPIOs brûkt foar de LED yn de Switch On / Off sample applikaasje. Yn 'e foarige paragraaf learden wy hoe't alle LED's op it ûntwikkelingsboerd al binne inisjalisearre as útfier en klear foar gebrûk.

3.1 Brûk de RGB LED

Wy sille de onboard RGB LED brûke op 'e Z-Wave-ûntwikkelingsmodule, ynstee fan' e LED op it knopboerd.

1. Sykje de RefreshMMI-funksje, lykas sjoen yn figuer 6, yn 'e SwitchOnOff.c-haadapplikaasje file.

FIG 6 RefreshMMI sûnder feroarings

Ofbylding 6: RefreshMMI sûnder feroarings

2. Wy sille de funksje "Board_SetLed" brûke, mar feroarje de GPIO nei
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Call "Board_SetLed" 3 kear yn sawol de OFF steat en yn de ON steat, lykas werjûn yn figuer 7.

FIG 7 RefreshMMI feroare om RGB LED te brûken

Us nije modifikaasje is no ymplementearre, en jo binne ree om te kompilearjen.
De stappen om in apparaat te programmearjen wurde behannele yn oefening "3A Compile Switch OnOff en ynskeakelje debug", en hjir koart werhelle:

  1. Klikje op de "Build" IKOON 1 knop om it projekt te begjinnen.
  2. As de bou klear is, wreidzje de map "Binaries" út en klik mei de rjochter op de *.hex file om "Flash nei apparaat ..." te selektearjen.
  3. Selektearje de ferbûne hardware yn it pop-upfinster. De "Flash Programmer" is no foarôf ynfolle mei alle nedige gegevens, en jo binne ree om te klikken op "Programma".
  4. Klik op "Programma".

Nei in koart skoft is de programmearring klear, en jo einapparaat wurdt no flitse mei jo wizige ferzje fan Switch On / Off.

3.1.1 Test de funksjonaliteit

Yn eardere oefeningen hawwe wy it apparaat al opnommen yn in feilich Z-Wave netwurk mei SmartStart. Ferwize nei oefening "Opnimme mei help fan SmartStart" foar ynstruksjes.

Hint De ynterne file systeem wurdt net wiske tusken reprogramming. Hjirmei kin in knooppunt yn in netwurk bliuwe en deselde netwurkkaaien hâlde as jo it opnij programmearje.

As jo ​​​​bygelyks de frekwinsje moatte feroarje wêrop de module wurket as de DSK, moatte jo de chip "wiskje" foardat de nije frekwinsje nei de ynterne NVM skreaun wurdt.

As sadanich is jo apparaat al opnommen yn it netwurk.

Test de funksjonaliteit troch te kontrolearjen dat jo de RGB LED kinne yn- en útskeakelje.

  • Test de funksjonaliteit mei de "Basic Set ON" en "Basic Set OFF" yn 'e PC Controller. De RGB LED moat ON en OFF wurde.
  • De RGB LED kin ek yn- en útskeakele wurde mei BTN0 op 'e hardware.

Wy hawwe no ferifiearre dat de wiziging wurket lykas ferwachte en hawwe mei súkses feroare de GPIO brûkt yn in Sample Applikaasje

3.2 Feroarje de RGB-kleurkomponint

Yn dizze seksje sille wy de RGB LED wizigje en besykje de kleurkomponinten te mingjen.

"In kleur yn it RGB-kleurmodel wurdt beskreaun troch oan te jaan hoefolle fan elk fan 'e reade, griene en blauwe is opnommen. De kleur wurdt útdrukt as in RGB triplet (r, g, b), elk komponint kin fariearje fan nul oant in definiearre maksimum wearde. As alle komponinten op nul steane, is it resultaat swart; as alles op maksimaal is, is it resultaat it helderste fertsjintwurdige wyt.

Fan Wikipedia ôf RGB kleurmodel.

FIG 8 RGB-kleurkomponinten mingd tegearre

Sûnt wy ynskeakele alle kleur komponinten yn foarige seksje de RGB LED is wyt as ON. Troch it yn- en útskeakeljen fan 'e yndividuele komponinten kinne wy ​​de LED feroarje. Derneist, troch de yntinsiteit fan elke kleurkomponinten oan te passen, kinne wy ​​​​alle kleuren tusken meitsje. Dêrfoar sille wy PWM brûke om de GPIO's te kontrolearjen.

  1. Yn ApplicationTask () inisjalisearje de PwmTimer en set de RGB-pins yn op PWM, lykas werjûn yn figuer 9.                                                                                FIG 9 PWM inisjalisearre yn ApplicationTask
  2. Yn RefreshMMI (), wy sille brûke in willekeurich getal foar eltse kleur komponint. Brûk rand () foar in fa in nije wearde eltse kear as de LED wurdt ynskeakele.
  3. Brûk DPRINTF() om de nij oanmakke wearde te skriuwen nei de serial debug-poarte.
  4. Ferfange Board_SetLed () mei Board_RgbLedSetPwm (), om de willekeurige wearde te brûken.
  5. Ferwize nei figuer 10 foar de bywurke RefreshMMI ().

FIG 10 RefreshMMI bywurke mei PWM

Ofbylding 10: RefreshMMI bywurke mei PWM

Us nije modifikaasje is no ymplementearre, en jo binne ree om te kompilearjen.

  1. Klikje op de "Build" IKOON 1 knop om it projekt te begjinnen.
  2. As de bou klear is, wreidzje de map "Binaries" út en klik mei de rjochter op de *.hex file om "Flash nei apparaat ..." te selektearjen.
  3. Selektearje de ferbûne hardware yn it pop-upfinster. De "Flash Programmer" is no foarôf ynfolle mei alle nedige gegevens, en jo binne ree om te klikken op "Programma".
  4. Klik op "Programma".

Nei in koart skoft is de programmearring klear, en jo einapparaat wurdt no flitse mei jo wizige ferzje fan Switch On / Off.

3.2.1 Test de funksjonaliteit

Test de funksjonaliteit troch te kontrolearjen dat jo de kleur fan 'e RGB LED kinne feroarje.

  1. Test de funksjonaliteit mei de "Basic Set ON" yn 'e PC Controller.
  2. Klikje op "Basic Set ON" om in feroaring yn kleur te sjen.

Wy hawwe no ferifiearre dat de wiziging wurket lykas ferwachte en hawwe de GPIO mei súkses feroare om PWM te brûken.

4 Diskusje

Yn dizze oefening hawwe wy Switch On / Off feroare fan it kontrolearjen fan in ienfâldige LED nei it kontrolearjen fan in multi-color LED. Ofhinklik fan 'e PWM-wearden kinne wy ​​no feroarje nei elke kleur en yntensiteit.

  • Moat in "Binary Switch" wurde brûkt as apparaattype foar dizze applikaasje?
  • Hokker kommando klassen binne better geskikt foar in multi-color LED?

Om de fraach te beantwurdzjen, moatte jo ferwize nei de Z-Wave-spesifikaasje:

  • Z-Wave Plus v2 Apparaat Type Specification
  • Z-Wave Application Command Class Specification

Dit konkludearret de tutorial oer hoe't jo de GPIO's fan in Z-Wave Sample Applikaasje.

 

Lês mear oer dizze hânlieding en download PDF:

Dokuminten / Resources

SILICON LABS Lab 3B - Wizigje Switch On / Off [pdf] Brûkersgids
Lab 3B, Wizigje Switch, On, Off, Z-Wave, SDK

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *