SILICON LOGO

SILICON LABS Lab 3B – Rediger Tænd/sluk brugervejledning

SILICON LABS Lab 3B - Modificer tænd/sluk

Denne praktiske øvelse vil demonstrere, hvordan man laver en ændring på en af ​​sampapplikationer, der sendes som en del af Z-Wave SDK.

Denne øvelse er en del af serien "Z-Wave 1-dages kursus".

  1. Inkluder brug af SmartStart
  2. Dekrypter Z-Wave RF-rammer ved hjælp af Zniffer
  3. 3A: Kompiler Slå til/fra og aktiver fejlretning
    3B: Ændre Tænd/Sluk
  4. Forstå FLiRS-enheder

 

NØGLEFUNKTIONER

  • Skift GPIO
  • Implementer PWM
  • Brug indbygget RGB LED

 

1. Introduktion

Denne øvelse bygger oven på den forrige øvelse "3A: Kompiler Tænd/sluk og aktiver fejlretning", som demonstrerede, hvordan man kompilerer og bruger Tænd/sluk-funktionerneampansøgningen.

I denne øvelse vil vi lave en ændring af sampapplikationen ved at ændre den GPIO, der styrer LED'en. Derudover vil vi bruge en RGB LED og lære at bruge PWM til at ændre farver.

1.1 Hardwarekrav

  • 1 WSTK Hovedudviklingsnævn
  • 1 Z-Wave Radio Development Board: ZGM130S SiP-modul
  • 1 UZB controller
  • 1 USB Zniffer

1.2 Softwarekrav

  • Enkelhed Studio v4
  • Z-Wave 7 SDK
  • Z-Wave PC-controller
  • Z-Wave Zniffer

FIG 1 Hovedudviklingskort med Z-Wave SiP-modul

Figur 1: Hovedudviklingstavle med Z-Wave SiP-modul

1.3 Forudsætninger
Tidligere praktiske øvelser har dækket, hvordan man bruger PC Controller og Zniffer-applikationen til at bygge et Z-Wave-netværk og fange RF-kommunikationen til udviklingsformål. Denne øvelse forudsætter, at du er fortrolig med disse værktøjer.

Tidligere hands-on øvelser har også dækket, hvordan man bruger sampapplikationer, der leveres med Z-Wave SDK. Denne øvelse forudsætter, at du er fortrolig med at bruge og kompilere et af sample applikationer.

 

2. Naviger i Board Interface

Z-Wave rammeværket kommer med et hardwareabstraktionslag (HAL) defineret af board.h og board.c, hvilket giver mulighed for at have implementeringer til hver af dine hardwareplatforme.

Hardware Abstraction Layer (HAL) er programkode mellem et systems hardware og dets software, der giver en ensartet grænseflade til applikationer, der kan køre på flere forskellige hardwareplatforme. At tage advantagMed denne kapacitet skal applikationer få adgang til hardware gennem API'en, der leveres af HAL, snarere end direkte. Når du derefter flytter til ny hardware, behøver du kun at opdatere HAL.

2.1 Åbn Sample Projekt
Til denne øvelse skal du åbne Tænd/Sluk sampansøgningen. Hvis du har gennemført øvelsen "3A Compile Switch OnOff og aktivere fejlretning", skulle den allerede være åbnet i din Simplicity Studio IDE.

I dette afsnit vil vi se på tavlen files og forstå, hvordan LED'erne initialiseres.

  1. Fra hovedet file “SwitchOnOff.c”, find “ApplicationInit()” og læg mærke til kaldet til Board_Init().
  2. Placer din kurser på Board_Init() og tryk på F3 for at åbne erklæringen.

FIG 2 Åbn Sample Projekt

3. I Board_Init() bemærk, hvordan LED'er indeholdt i BOARD_LED_COUNT initialiseres af kaldet Board_Con-figLed()

FIG 3 Åbn Sample Projekt

4. Placer din kurser på BOARD_LED_COUNT og tryk på F3 for at åbne erklæringen.
5. LED'erne defineret i led_id_t er som følger:

FIG 4 Åbn Sample Projekt

6. Vend tilbage til bestyrelsen.c file.
7. Placer din kurser på Board_ConfigLed() og tryk på F3 for at åbne erklæringen.
8. Bemærk, at alle LED'er defineret i led_id_t derefter er konfigureret i Board_ConfigLed() som output.

FIG 5 Åbn Sample Projekt

Det betyder, at alle LED'er på udviklingskortet allerede er defineret som udgange og klar til brug.

 

3. Foretag en ændring af en Z-Wave Sample Ansøgning

I denne øvelse vil vi ændre de GPIO'er, der bruges til LED'en i tænd/sluk-enhedenampansøgningen. I det foregående afsnit lærte vi, hvordan alle LED'er på udviklingskortet allerede er initialiseret som output og klar til brug.

3.1 Brug RGB LED

Vi vil bruge den indbyggede RGB LED på Z-Wave udviklingsmodulet i stedet for LED'en på knapkortet.

1. Find RefreshMMI-funktionen, som vist i figur 6, i hovedapplikationen SwitchOnOff.c file.

FIG 6 RefreshMMI uden ændringer

Figur 6: RefreshMMI uden ændringer

2. Vi vil bruge funktionen "Board_SetLed", men ændre GPIO til
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Kald "Board_SetLed" 3 gange i både OFF-tilstand og ON-tilstand, som vist i figur 7.

FIG 7 RefreshMMI modificeret til at bruge RGB LED

Vores nye modifikation er nu implementeret, og du er klar til at kompilere.
Trinnene til at programmere en enhed er dækket i øvelsen "3A Compile Switch OnOff and enable debug", og gentages kort her:

  1. Klik på "Byg" ICON 1 knappen for at begynde at bygge projektet.
  2. Når opbygningen er færdig, skal du udvide mappen "Binaries" og højreklikke på *.hex file for at vælge "Flash til enhed...".
  3. Vælg den tilsluttede hardware i pop op-vinduet. "Flash Programmer" er nu udfyldt med alle nødvendige data, og du er klar til at klikke på "Program".
  4. Klik på "Program".

Efter et kort stykke tid afsluttes programmeringen, og din slutenhed blinker nu med din modificerede version af Tænd/sluk.

3.1.1 Test funktionaliteten

I tidligere øvelser har vi allerede inkluderet enheden i et sikkert Z-Wave-netværk ved hjælp af SmartStart. Se øvelsen "Inkluder at bruge SmartStart" for instruktioner.

Hint Det indre file systemet slettes ikke mellem omprogrammering. Dette gør det muligt for en node at blive i et netværk og beholde de samme netværksnøgler, når du omprogrammerer den.

Hvis du skal ændre f.eks. den frekvens, som modulet opererer med, eller DSK'en, skal du "slette" chippen, før den nye frekvens bliver skrevet til den interne NVM.

Som sådan er din enhed allerede inkluderet i netværket.

Test funktionaliteten ved at kontrollere, at du kan tænde og slukke for RGB-LED'en.

  • Test funktionaliteten ved at bruge "Basic Set ON" og "Basic Set OFF" i pc-controlleren. RGB-LED'en skal tænde og slukke.
  • RGB LED kan også tændes og slukkes ved hjælp af BTN0 på hardwaren.

Vi har nu bekræftet, at ændringen fungerer som forventet og har med succes ændret den GPIO, der bruges i en Sample Ansøgning

3.2 Skift RGB-farvekomponenten

I dette afsnit vil vi ændre RGB-LED'en og prøve at blande farvekomponenterne.

“En farve i RGB-farvemodellen er beskrevet ved at angive, hvor meget af hver af de røde, grønne og blå der er inkluderet. Farven er udtrykt som en RGB-triplet (r,g,b), hvor hver komponent kan variere fra nul til en defineret maksimumværdi. Hvis alle komponenter er på nul, er resultatet sort; hvis alle er på maksimum, er resultatet den klarest repræsentative hvide."

Fra Wikipedia videre RGB farvemodel.

FIG 8 RGB-farvekomponenter blandet sammen

Da vi aktiverede alle farvekomponenter i forrige afsnit, er RGB-LED'en hvid, når den er tændt. Ved at tænde og slukke for de enkelte komponenter kan vi skifte LED. Derudover kan vi ved at justere intensiteten af ​​hver farvekomponent lave alle farverne imellem. Til det vil vi bruge PWM til at styre GPIO'erne.

  1. I ApplicationTask() initialiser PwmTimeren og opsæt RGB-pindene til PWM, som vist i figur 9.                                                                                FIG 9 PWM initialiseret i ApplicationTask
  2. I RefreshMMI() vil vi bruge et tilfældigt tal for hver farvekomponent. Brug rand() for at få en ny værdi, hver gang LED'en tændes.
  3. Brug DPRINTF() til at skrive den nyligt genererede værdi til den serielle debug-port.
  4. Erstat Board_SetLed() med Board_RgbLedSetPwm(), for at bruge den tilfældige værdi.
  5. Se figur 10 for den opdaterede RefreshMMI().

FIG 10 RefreshMMI opdateret med PWM

Figur 10: RefreshMMI opdateret med PWM

Vores nye modifikation er nu implementeret, og du er klar til at kompilere.

  1. Klik på "Byg" ICON 1 knappen for at begynde at bygge projektet.
  2. Når opbygningen er færdig, skal du udvide mappen "Binaries" og højreklikke på *.hex file for at vælge "Flash til enhed...".
  3. Vælg den tilsluttede hardware i pop op-vinduet. "Flash Programmer" er nu udfyldt med alle nødvendige data, og du er klar til at klikke på "Program".
  4. Klik på "Program".

Efter et kort stykke tid afsluttes programmeringen, og din slutenhed blinker nu med din modificerede version af Tænd/sluk.

3.2.1 Test funktionaliteten

Test funktionaliteten ved at verificere, at du kan ændre farven på RGB LED.

  1. Test funktionaliteten ved hjælp af "Basic Set ON" i pc-controlleren.
  2. Klik på "Basic Set ON" for at se en farveændring.

Vi har nu bekræftet, at ændringen fungerer som forventet, og vi har med succes ændret GPIO'en til at bruge PWM.

4 Diskussion

I denne øvelse har vi ændret Tænd/sluk fra at styre en simpel LED til at styre en flerfarvet LED. Afhængigt af PWM-værdierne kan vi nu skifte til enhver farve og intensitet.

  • Skal en "binær switch" bruges som enhedstype til denne applikation?
  • Hvilke kommandoklasser er bedre egnede til en flerfarvet LED?

For at besvare spørgsmålet bør du henvise til Z-Wave-specifikationen:

  • Z-Wave Plus v2 enhedstypespecifikation
  • Z-Wave Application Command Class Specification

Dette afslutter selvstudiet i, hvordan man ændrer og ændrer GPIO'erne på en Z-Wave Sample Ansøgning.

 

Læs mere om denne manual og download PDF:

Dokumenter/ressourcer

SILICON LABS Lab 3B - Modificer tænd/sluk [pdfBrugervejledning
Lab 3B, Modify Switch, On, Off, Z-Wave, SDK

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *