SILIKON-LOGO

SILICON LABS Lab 3B – Modify Switch On/Off Benutzerhandbuch

SILICON LABS Lab 3B - Schalter Ein/Aus ändern

Diese praktische Übung zeigt, wie Sie eine Änderung an einem der s . vornehmenample Anwendungen, die als Teil des Z-Wave SDK ausgeliefert werden.

Diese Übung ist Teil der Reihe „Z-Wave 1-Day Course“.

  1. Mit SmartStart einschließen
  2. Entschlüsseln Sie Z-Wave-RF-Frames mit dem Zniffer
  3. 3A: Kompilieren Ein-/Ausschalten und Debug aktivieren
    3B: Schalter Ein/Aus ändern
  4. FLiRS-Geräte verstehen

 

HAUPTMERKMALE

  • GPIO ändern
  • PWM implementieren
  • Verwenden Sie die integrierte RGB-LED

 

1. Einleitung

Diese Übung baut auf der vorherigen Übung „3A: Compile Switch On/Off and enable debug“ auf, in der gezeigt wurde, wie man die Switch On/Off s kompiliert und verwendetample Anwendung.

In dieser Übung nehmen wir eine Modifikation des s . vorample-Anwendung, indem Sie den GPIO ändern, der die LED steuert. Darüber hinaus verwenden wir eine RGB-LED und lernen, wie man mit PWM Farben ändert.

1.1 Hardware-Anforderungen

  • 1 WSTK-Hauptentwicklungsboard
  • 1 Z-Wave-Funkentwicklungsboard: ZGM130S SiP-Modul
  • 1 UZB-Controller
  • 1 USB-Zniffer

1.2 Softwareanforderungen

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

BILD 1 Hauptentwicklungsboard mit Z-Wave-SiP-Modul

Abbildung 1: Hauptentwicklungsboard mit Z-Wave-SiP-Modul

1.3 Voraussetzungen
In früheren praktischen Übungen wurde behandelt, wie der PC-Controller und die Zniffer-Anwendung verwendet werden, um ein Z-Wave-Netzwerk aufzubauen und die HF-Kommunikation für Entwicklungszwecke zu erfassen. In dieser Übung wird davon ausgegangen, dass Sie mit diesen Tools vertraut sind.

In früheren praktischen Übungen wurde auch die Verwendung des s behandeltample Anwendungen, die mit dem Z-Wave SDK geliefert werden. In dieser Übung wird davon ausgegangen, dass Sie mit der Verwendung und Kompilierung eines der sample Anwendungen.

 

2. Navigieren Sie durch die Board-Schnittstelle

Das Z-Wave-Framework wird mit einer von board.h und board.c definierten Hardware-Abstraktionsschicht (HAL) geliefert, die die Möglichkeit bietet, Implementierungen für jede Ihrer Hardware-Plattformen zu haben.

Der Hardware Abstraction Layer (HAL) ist ein Programmcode zwischen der Hardware eines Systems und seiner Software, der eine konsistente Schnittstelle für Anwendungen bereitstellt, die auf mehreren verschiedenen Hardwareplattformen ausgeführt werden können. VorankommentagAufgrund dieser Fähigkeit sollten Anwendungen nicht direkt, sondern über die von der HAL bereitgestellte API auf die Hardware zugreifen. Wenn Sie dann auf neue Hardware umsteigen, müssen Sie nur die HAL aktualisieren.

2.1 Offenes Sampdas Projekt
Für diese Übung müssen Sie den Schalter On / Off s . öffnenample Anwendung. Wenn Sie die Übung „3A Compile Switch OnOff and enable debug“ abgeschlossen haben, sollte sie bereits in Ihrer Simplicity Studio IDE geöffnet sein.

In diesem Abschnitt werden wir uns das Board ansehen files und verstehen, wie die LEDs initialisiert werden.

  1. Von der Haupt file „SwitchOnOff.c“, suchen Sie „ApplicationInit()“ und beachten Sie den Aufruf von Board_Init().
  2. Platzieren Sie Ihren Kurser auf Board_Init() und drücken Sie auf F3, um die Deklaration zu öffnen.

BILD 2 Öffnen Sie Sampdas Projekt

3. Beachten Sie in Board_Init(), wie die in BOARD_LED_COUNT enthaltenen LEDs durch den Aufruf von Board_ConfigLed() initialisiert werden

BILD 3 Öffnen Sie Sampdas Projekt

4. Platzieren Sie Ihren Kursteilnehmer auf BOARD_LED_COUNT und drücken Sie auf F3, um die Deklaration zu öffnen.
5. Die in led_id_t definierten LEDs sind wie folgt:

BILD 4 Öffnen Sie Sampdas Projekt

6. Kehre zum Board zurück.c file.
7. Platzieren Sie Ihren Kurser auf Board_ConfigLed() und drücken Sie auf F3, um die Deklaration zu öffnen.
8. Beachten Sie, dass alle in led_id_t definierten LEDs dann in Board_ConfigLed() als Ausgang konfiguriert werden.

BILD 5 Öffnen Sie Sampdas Projekt

Das bedeutet, dass alle LEDs auf dem Entwicklungsboard bereits als Ausgänge definiert und einsatzbereit sind.

 

3. Nehmen Sie eine Änderung an einem Z-Wave S vorample Anwendung

In dieser Übung ändern wir die GPIOs, die für die LED im Schalter On/Off s . verwendet werdenample Anwendung. Im vorherigen Abschnitt haben wir gelernt, wie alle LEDs auf dem Entwicklungsboard bereits als Ausgang initialisiert und einsatzbereit sind.

3.1 Verwenden der RGB-LED

Wir werden die Onboard-RGB-LED des Z-Wave-Entwicklungsmoduls anstelle der LED auf der Tastenplatine verwenden.

1. Suchen Sie die RefreshMMI-Funktion, wie in Abbildung 6 gezeigt, in der SwitchOnOff.c-Hauptanwendung file.

BILD 6 RefreshMMI ohne Modifikationen

Abbildung 6: RefreshMMI ohne Modifikationen

2. Wir werden die Funktion „Board_SetLed“ verwenden, aber den GPIO ändern auf
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Rufen Sie „Board_SetLed“ dreimal sowohl im OFF-Zustand als auch im ON-Zustand auf, wie in Abbildung 3 gezeigt.

BILD 7 RefreshMMI modifiziert, um RGB-LED zu verwenden

Unsere neue Modifikation ist nun implementiert, und Sie sind bereit zum Kompilieren.
Die Schritte zum Programmieren eines Geräts werden in Übung „3A Compile Switch OnOff and enable debug“ behandelt und hier kurz wiederholt:

  1. Klicken Sie auf „Bauen“ ICON 1 Schaltfläche, um mit der Erstellung des Projekts zu beginnen.
  2. Wenn der Build abgeschlossen ist, erweitern Sie den Ordner „Binaries“ und klicken Sie mit der rechten Maustaste auf *.hex file „Flash to Device...“ auswählen.
  3. Wählen Sie im Popup-Fenster die angeschlossene Hardware aus. Der „Flash Programmer“ ist nun mit allen benötigten Daten vorgefüllt und Sie können auf „Programmieren“ klicken.
  4. Klicken Sie auf „Programm“.

Nach kurzer Zeit ist die Programmierung abgeschlossen und Ihr Endgerät ist nun mit Ihrer geänderten Version von Switch On/Off geflasht.

3.1.1 Funktion testen

In früheren Übungen haben wir das Gerät bereits mit SmartStart in ein sicheres Z-Wave-Netzwerk eingebunden. Anweisungen hierzu finden Sie in der Übung „Einbeziehen mit SmartStart“.

Hinweis Das interne file Das System wird zwischen den Neuprogrammierungen nicht gelöscht. Dies ermöglicht einem Knoten, in einem Netzwerk zu bleiben und die gleichen Netzwerkschlüssel zu behalten, wenn Sie ihn neu programmieren.

Wenn Sie zB die Frequenz, mit der das Modul arbeitet, oder den DSK ändern müssen, müssen Sie den Chip „löschen“, bevor die neue Frequenz in den internen NVM geschrieben wird.

Damit ist Ihr Gerät bereits im Netzwerk eingebunden.

Testen Sie die Funktionalität, indem Sie überprüfen, ob Sie die RGB-LED ein- und ausschalten können.

  • Testen Sie die Funktionalität mit dem „Basic Set ON“ und „Basic Set OFF“ im PC Controller. Die RGB-LED sollte sich ein- und ausschalten.
  • Die RGB-LED kann auch mit BTN0 an der Hardware ein- und ausgeschaltet werden.

Wir haben nun überprüft, dass die Modifikation wie erwartet funktioniert und haben den in einem S . verwendeten GPIO erfolgreich geändertample Anwendung

3.2 Ändern der RGB-Farbkomponente

In diesem Abschnitt werden wir die RGB-LED modifizieren und versuchen, die Farbkomponenten zu mischen.

„Eine Farbe im RGB-Farbmodell wird dadurch beschrieben, dass man angibt, wie viel von Rot, Grün und Blau jeweils enthalten ist. Die Farbe wird als RGB-Triplett (r,g,b) ausgedrückt, wobei jede Komponente von Null bis zu einem definierten Maximalwert variieren kann. Wenn alle Komponenten Null sind, ist das Ergebnis schwarz; wenn alle maximal sind, ist das Ergebnis das hellste darstellbare Weiß.“

Ab Wikipedia RGB-Farbmodell.

BILD 8 Zusammengemischte RGB-Farbkomponenten

Da wir im vorherigen Abschnitt alle Farbkomponenten aktiviert haben, ist die RGB-LED weiß, wenn sie eingeschaltet ist. Durch Ein- und Ausschalten der einzelnen Komponenten können wir die LED wechseln. Darüber hinaus können wir durch Anpassen der Intensität der einzelnen Farbkomponenten alle Farben dazwischen erstellen. Dazu verwenden wir PWM, um die GPIOs zu steuern.

  1. Initialisieren Sie in ApplicationTask() den PwmTimer und richten Sie die RGB-Pins auf PWM ein, wie in Abbildung 9 gezeigt.                                                                                BILD 9 PWM initialisiert in ApplicationTask
  2. In RefreshMMI() verwenden wir für jede Farbkomponente eine Zufallszahl. Verwenden Sie rand(), um jedes Mal, wenn die LED eingeschaltet wird, einen neuen Wert zu erhalten.
  3. Verwenden Sie DPRINTF(), um den neu generierten Wert an den seriellen Debug-Port zu schreiben.
  4. Ersetzen Sie Board_SetLed() durch Board_RgbLedSetPwm(), um den Zufallswert zu verwenden.
  5. Siehe Abbildung 10 für das aktualisierte RefreshMMI().

BILD 10 RefreshMMI aktualisiert mit PWM

Abbildung 10: RefreshMMI aktualisiert mit PWM

Unsere neue Modifikation ist nun implementiert, und Sie sind bereit zum Kompilieren.

  1. Klicken Sie auf „Bauen“ ICON 1 Schaltfläche, um mit der Erstellung des Projekts zu beginnen.
  2. Wenn der Build abgeschlossen ist, erweitern Sie den Ordner „Binaries“ und klicken Sie mit der rechten Maustaste auf *.hex file „Flash to Device...“ auswählen.
  3. Wählen Sie im Popup-Fenster die angeschlossene Hardware aus. Der „Flash Programmer“ ist nun mit allen benötigten Daten vorgefüllt und Sie können auf „Programmieren“ klicken.
  4. Klicken Sie auf „Programm“.

Nach kurzer Zeit ist die Programmierung abgeschlossen und Ihr Endgerät ist nun mit Ihrer geänderten Version von Switch On/Off geflasht.

3.2.1 Funktion testen

Testen Sie die Funktionalität, indem Sie überprüfen, ob Sie die Farbe der RGB-LED ändern können.

  1. Testen Sie die Funktionalität mit dem „Basic Set ON“ im PC Controller.
  2. Klicken Sie auf „Basic Set ON“, um eine Farbänderung zu sehen.

Wir haben nun überprüft, dass die Modifikation wie erwartet funktioniert und haben den GPIO erfolgreich auf PWM umgestellt.

4 Diskussion

In dieser Übung haben wir Switch On/Off von der Steuerung einer einfachen LED zur Steuerung einer mehrfarbigen LED modifiziert. Abhängig von den PWM-Werten können wir nun auf jede Farbe und Intensität wechseln.

  • Soll für diese Anwendung als Gerätetyp ein „Binary Switch“ verwendet werden?
  • Welche Befehlsklassen eignen sich besser für eine mehrfarbige LED?

Um die Frage zu beantworten, sollten Sie sich auf die Z-Wave-Spezifikation beziehen:

  • Z-Wave Plus v2 Gerätetypspezifikation
  • Spezifikation der Z-Wave-Anwendungsbefehlsklasse

Damit ist das Tutorial zum Modifizieren und Ändern der GPIOs eines Z-Wave S abgeschlossenample Anwendung.

 

Lesen Sie mehr über dieses Handbuch und laden Sie das PDF herunter:

Dokumente / Ressourcen

SILICON LABS Lab 3B - Schalter Ein/Aus ändern [pdf] Benutzerhandbuch
Lab 3B, Schalter ändern, Ein, Aus, Z-Wave, SDK

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *