SILICON LABS Lab 3B – Podręcznik użytkownika dotyczący modyfikacji włączania/wyłączania
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”.
- Uwzględnij użycie SmartStart
- Odszyfruj ramki RF Z-Wave za pomocą Zniffer
- 3A: Kompiluj włączanie/wyłączanie i włączanie debugowania
3B: Zmodyfikuj włącznik/wyłącznik - 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
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.
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.
- Z głównego file „SwitchOnOff.c”, znajdź „ApplicationInit()” i zwróć uwagę na wywołanie Board_Init().
- Umieść swojego kursanta na Board_Init() i naciśnij F3, aby otworzyć deklarację.
3. W Board_Init() zwróć uwagę, jak diody LED zawarte w BOARD_LED_COUNT są inicjowane przez wywołanie Board_Con-figLed()
4. Umieść swojego kursanta na BOARD_LED_COUNT i naciśnij F3, aby otworzyć deklarację.
5. Diody zdefiniowane w led_id_t to:
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.
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.
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.
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:
- Kliknij „Buduj”
przycisk, aby rozpocząć tworzenie projektu.
- Po zakończeniu kompilacji rozwiń folder „Binaries” i kliknij prawym przyciskiem myszy plik *.hex file aby wybrać opcję „Flash do urządzenia…”.
- W wyskakującym oknie wybierz podłączony sprzęt. „Programista Flash” jest teraz wypełniony wszystkimi potrzebnymi danymi i możesz kliknąć „Program”.
- 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.
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.
- W ApplicationTask() zainicjuj PwmTimer i skonfiguruj piny RGB na PWM, jak pokazano na rysunku 9.
- 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.
- Użyj DPRINTF(), aby zapisać nowo wygenerowaną wartość do szeregowego portu debugowania.
- Zamień Board_SetLed() na Board_RgbLedSetPwm(), aby użyć wartości losowej.
- Zobacz rysunek 10, aby zapoznać się z zaktualizowaną funkcją RefreshMMI().
Rysunek 10: RefreshMMI zaktualizowany za pomocą PWM
Nasza nowa modyfikacja została już zaimplementowana i możesz przystąpić do kompilacji.
- Kliknij „Buduj”
przycisk, aby rozpocząć tworzenie projektu.
- Po zakończeniu kompilacji rozwiń folder „Binaries” i kliknij prawym przyciskiem myszy plik *.hex file aby wybrać opcję „Flash do urządzenia…”.
- W wyskakującym oknie wybierz podłączony sprzęt. „Programista Flash” jest teraz wypełniony wszystkimi potrzebnymi danymi i możesz kliknąć „Program”.
- 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.
- Przetestuj funkcjonalność za pomocą opcji „Basic Set ON” w kontrolerze PC.
- 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 |