SILIKONOWE LOGO

SILICON LABS Lab 3B – Podręcznik użytkownika dotyczący modyfikacji włączania/wyłączania

SILICON LABS Lab 3B — Włącz/wyłącz modyfikację

To praktyczne ćwiczenie pokaże, jak dokonać modyfikacji w jednym z sample, które są dostarczane jako część pakietu SDK Z-Wave.

To ćwiczenie jest częścią serii „1-dniowy kurs Z-Wave”.

  1. Uwzględnij użycie SmartStart
  2. Odszyfruj ramki RF Z-Wave za pomocą Zniffer
  3. 3A: Kompiluj włączanie/wyłączanie i włączanie debugowania
    3B: Zmodyfikuj włącznik/wyłącznik
  4. Poznaj urządzenia FLiRS

 

GŁÓWNE CECHY

  • Zmień GPIO
  • Zaimplementuj PWM
  • Użyj wbudowanej diody LED RGB

 

1. Wprowadzenie

To ćwiczenie stanowi kontynuację poprzedniego ćwiczenia „3A: Kompiluj opcję Włącz/Wyłącz i włącz debugowanie”, które pokazało, jak skompilować i używać funkcji Switch On/Offampplik aplikacji.

W tym ćwiczeniu dokonamy modyfikacji pliku sample, zmieniając GPIO sterujące diodą LED. Ponadto będziemy używać diody LED RGB i nauczymy się używać PWM do zmiany kolorów.

1.1 Wymagania sprzętowe

  • 1 Główna płytka rozwojowa WSTK
  • 1 płytka rozwojowa radia Z-Wave: moduł SiP ZGM130S
  • 1 kontroler UZB
  • 1 port USB Zniffera

1.2 Wymagania dotyczące oprogramowania

  • Studio prostoty v4
  • SDK Z-Wave 7
  • Kontroler komputerowy Z-Wave
  • Z-Wave Zniffer

FIG 1 Główna płytka rozwojowa z modułem Z-Wave SiP

Rysunek 1: Główna płytka rozwojowa z modułem Z-Wave SiP

1.3 Wymagania wstępne
Poprzednie ćwiczenia praktyczne omawiały sposób wykorzystania kontrolera PC i aplikacji Zniffer do zbudowania sieci Z-Wave i przechwytywania komunikacji RF do celów programistycznych. W tym ćwiczeniu założono, że znasz te narzędzia.

Poprzednie ćwiczenia praktyczne omawiały także sposób używania sample, które są dostarczane z pakietem Z-Wave SDK. W tym ćwiczeniu założono, że znasz używanie i kompilowanie jednego z bibliotek samppliki aplikacji.

 

2. Nawiguj w interfejsie płytki

Framework Z-Wave zawiera warstwę abstrakcji sprzętu (HAL) zdefiniowaną przez board.h i board.c, zapewniając możliwość implementacji dla każdej platformy sprzętowej.

Warstwa abstrakcji sprzętu (HAL) to kod programu pomiędzy sprzętem systemu a jego oprogramowaniem, który zapewnia spójny interfejs dla aplikacji, które mogą działać na kilku różnych platformach sprzętowych. Aby wziąć AdvantagKorzystając z tej możliwości, aplikacje powinny uzyskiwać dostęp do sprzętu poprzez interfejs API udostępniany przez warstwę HAL, a nie bezpośrednio. Następnie, po przejściu na nowy sprzęt, wystarczy zaktualizować warstwę HAL.

2.1 Otwórz Sample Projekt
W tym ćwiczeniu musisz otworzyć przycisk Włącz/Wyłączampaplikacja. Jeśli wykonałeś ćwiczenie „3A Compile Switch OnOff and Enable debug”, powinno ono być już otwarte w Twoim środowisku IDE Simplicity Studio.

W tej części przyjrzymy się planszy files i zrozumieć, w jaki sposób diody LED są inicjowane.

  1. Z głównego file „SwitchOnOff.c”, znajdź „ApplicationInit()” i zwróć uwagę na wywołanie Board_Init().
  2. Umieść swojego kursanta na Board_Init() i naciśnij F3, aby otworzyć deklarację.

RYS. 2 Otwórz Sample Projekt

3. W Board_Init() zwróć uwagę, jak diody LED zawarte w BOARD_LED_COUNT są inicjowane przez wywołanie Board_Con-figLed()

RYS. 3 Otwórz Sample Projekt

4. Umieść swojego kursanta na BOARD_LED_COUNT i naciśnij F3, aby otworzyć deklarację.
5. Diody zdefiniowane w led_id_t to:

RYS. 4 Otwórz Sample Projekt

6. Wróć na planszę.c file.
7. Umieść swojego kursanta na Board_ConfigLed() i naciśnij F3, aby otworzyć deklarację.
8. Zwróć uwagę, że wszystkie diody LED zdefiniowane w led_id_t są następnie konfigurowane w Board_ConfigLed() jako wyjście.

RYS. 5 Otwórz Sample Projekt

Oznacza to, że wszystkie diody LED na płycie rozwojowej są już zdefiniowane jako wyjścia i gotowe do użycia.

 

3. Dokonaj modyfikacji w Z-Wave Sample aplikacji

W tym ćwiczeniu będziemy modyfikować GPIO używane dla diody LED w przełącznikach włączania/wyłączaniaampaplikacja. W poprzedniej sekcji dowiedzieliśmy się, że wszystkie diody LED na płycie rozwojowej są już zainicjowane jako wyjście i gotowe do użycia.

3.1 Użyj diody RGB

Będziemy używać wbudowanej diody LED RGB w module deweloperskim Z-Wave zamiast diody LED na płycie przycisków.

1. W aplikacji głównej SwitchOnOff.c znajdź funkcję RefreshMMI, jak pokazano na rysunku 6. file.

RYS 6 RefreshMMI bez żadnych modyfikacji

Rysunek 6: Odśwież MMI bez żadnych modyfikacji

2. Będziemy korzystać z funkcji „Board_SetLed”, ale zmieńmy GPIO na
o PŁYTA_RGB1_R
o PŁYTA_RGB1_G
o PŁYTA_RGB1_B

3. Wywołaj „Board_SetLed” 3 razy zarówno w stanie OFF, jak i w stanie ON, jak pokazano na rysunku 7.

RYS. 7 RefreshMMI zmodyfikowane tak, aby korzystało z diod LED RGB

Nasza nowa modyfikacja została już zaimplementowana i możesz przystąpić do kompilacji.
Kroki programowania urządzenia są omówione w ćwiczeniu „3A Kompiluj, wyłącz i włącz debugowanie” i krótko powtórzone tutaj:

  1. Kliknij „Buduj” ICON 1 przycisk, aby rozpocząć tworzenie projektu.
  2. Po zakończeniu kompilacji rozwiń folder „Binaries” i kliknij prawym przyciskiem myszy plik *.hex file aby wybrać opcję „Flash do urządzenia…”.
  3. W wyskakującym oknie wybierz podłączony sprzęt. „Programista Flash” jest teraz wypełniony wszystkimi potrzebnymi danymi i możesz kliknąć „Program”.
  4. Kliknij „Program”.

Po krótkiej chwili programowanie zakończy się i na Twoim urządzeniu końcowym zostanie sflashowana zmodyfikowana wersja Włącz/Wyłącz.

3.1.1 Sprawdź funkcjonalność

W poprzednich ćwiczeniach włączaliśmy już urządzenie do bezpiecznej sieci Z-Wave za pomocą SmartStart. Instrukcje znajdują się w ćwiczeniu „Uwzględnij użycie SmartStart”.

Wskazówka Wewnętrzna file system nie jest kasowany pomiędzy przeprogramowaniami. Dzięki temu węzeł może pozostać w sieci i zachować te same klucze sieciowe podczas jego przeprogramowywania.

Jeśli zajdzie potrzeba zmiany np. częstotliwości pracy modułu lub DSK, należy „skasować” chip, zanim nowa częstotliwość zostanie zapisana w wewnętrznym NVM.

W związku z tym Twoje urządzenie jest już uwzględnione w sieci.

Przetestuj funkcjonalność, sprawdzając, czy możesz włączyć i wyłączyć diodę LED RGB.

  • Przetestuj funkcjonalność, korzystając z opcji „Basic Set ON” i „Basic Set OFF” w kontrolerze PC. Dioda RGB powinna włączać się i wyłączać.
  • Diodę RGB LED można także włączać i wyłączać za pomocą BTN0 na sprzęcie.

Sprawdziliśmy teraz, że modyfikacja działa zgodnie z oczekiwaniami i pomyślnie zmieniliśmy GPIO używane w Sample aplikacji

3.2 Zmień składnik koloru RGB

W tej sekcji będziemy modyfikować diodę LED RGB i próbować mieszać składniki kolorów.

„Kolor w modelu kolorów RGB jest opisywany poprzez wskazanie, ile zawiera każdego z kolorów czerwonego, zielonego i niebieskiego. Kolor wyraża się jako trójkę RGB (r, g, b), której każdy składnik może zmieniać się od zera do określonej wartości maksymalnej. Jeśli wszystkie składniki są zerowe, wynik jest czarny; jeśli wszystkie są ustawione na maksimum, efektem będzie najjaśniejsza możliwa do odwzorowania biel.

Z Wikipedii na Model kolorów RGB.

RYS. 8. Składniki kolorów RGB zmieszane razem

Ponieważ w poprzedniej sekcji włączyliśmy wszystkie komponenty kolorów, dioda LED RGB jest biała, gdy jest włączona. Włączając i wyłączając poszczególne elementy mamy możliwość zmiany diody LED. Dodatkowo dostosowując intensywność poszczególnych składników koloru, możemy uzyskać wszystkie kolory pośrednie. W tym celu będziemy używać PWM do sterowania GPIO.

  1. W ApplicationTask() zainicjuj PwmTimer i skonfiguruj piny RGB na PWM, jak pokazano na rysunku 9.                                                                                FIG 9 PWM zainicjowany w ApplicationTask
  2. W RefreshMMI() będziemy używać losowej liczby dla każdego składnika koloru. Użyj Rand(), aby uzyskać nową wartość za każdym razem, gdy dioda LED jest WŁĄCZONA.
  3. Użyj DPRINTF(), aby zapisać nowo wygenerowaną wartość do szeregowego portu debugowania.
  4. Zamień Board_SetLed() na Board_RgbLedSetPwm(), aby użyć wartości losowej.
  5. Zobacz rysunek 10, aby zapoznać się z zaktualizowaną funkcją RefreshMMI().

FIG 10 RefreshMMI zaktualizowano za pomocą PWM

Rysunek 10: RefreshMMI zaktualizowany za pomocą PWM

Nasza nowa modyfikacja została już zaimplementowana i możesz przystąpić do kompilacji.

  1. Kliknij „Buduj” ICON 1 przycisk, aby rozpocząć tworzenie projektu.
  2. Po zakończeniu kompilacji rozwiń folder „Binaries” i kliknij prawym przyciskiem myszy plik *.hex file aby wybrać opcję „Flash do urządzenia…”.
  3. W wyskakującym oknie wybierz podłączony sprzęt. „Programista Flash” jest teraz wypełniony wszystkimi potrzebnymi danymi i możesz kliknąć „Program”.
  4. Kliknij „Program”.

Po krótkiej chwili programowanie zakończy się i na Twoim urządzeniu końcowym zostanie sflashowana zmodyfikowana wersja Włącz/Wyłącz.

3.2.1 Testowanie funkcjonalności

Przetestuj funkcjonalność, sprawdzając, czy możesz zmienić kolor diody LED RGB.

  1. Przetestuj funkcjonalność za pomocą opcji „Basic Set ON” w kontrolerze PC.
  2. Kliknij „Basic Set ON”, aby zobaczyć zmianę koloru.

Sprawdziliśmy teraz, że modyfikacja działa zgodnie z oczekiwaniami i pomyślnie zmieniliśmy GPIO, aby korzystało z PWM.

4 Dyskusja

W tym ćwiczeniu zmodyfikowaliśmy funkcję Włącz/Wyłącz ze sterowania prostą diodą LED na sterowanie wielokolorową diodą LED. W zależności od wartości PWM możemy teraz zmienić na dowolny kolor i intensywność.

  • Czy w tej aplikacji jako typ urządzenia powinien być używany „przełącznik binarny”?
  • Które klasy poleceń lepiej nadają się do wielokolorowej diody LED?

Aby odpowiedzieć na pytanie należy zapoznać się ze specyfikacją Z-Wave:

  • Specyfikacja typu urządzenia Z-Wave Plus v2
  • Specyfikacja klasy poleceń aplikacji Z-Wave

Na tym kończy się samouczek dotyczący modyfikowania i zmiany GPIO Z-Wave Sample Aplikacja.

 

Przeczytaj więcej o tym podręczniku i pobierz plik PDF:

Dokumenty / Zasoby

SILICON LABS Lab 3B — Włącz/wyłącz modyfikację [plik PDF] Instrukcja użytkownika
Laboratorium 3B, Modyfikuj przełącznik, Włącz, Wyłącz, Z-Wave, SDK

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *