SILICON LABS 實驗室 3B – 修改開/關用戶指南
此動手練習將演示如何對其中一個進行修改amp作為 Z-Wave SDK 一部分提供的應用程序。
本練習是“Z-Wave 1 日課程”系列的一部分。
- 包括使用 SmartStart
- 使用 Zniffer 解密 Z-Wave RF 幀
- 3A:編譯開關打開/關閉和啟用調試
3B:修改開/關 - 了解 FLiRS 設備
主要特點
- 更改 GPIO
- 實施脈寬調製
- 使用板載 RGB LED
一、簡介
本練習建立在上一個練習“3A:編譯開關開/關並啟用調試”的基礎上,該練習演示瞭如何編譯和使用開關開/關amp申請。
在本練習中,我們將對 s 進行修改amp在應用程序中,通過更改控制 LED 的 GPIO。 此外,我們將使用 RGB LED 並學習如何使用 PWM 來改變顏色。
1.1 硬體需求
- 1 WSTK 主開發板
- 1 Z-Wave 無線電開發板:ZGM130S SiP 模塊
- 1個UZB控制器
- 1 個 USB Zniffer
1.2 軟件要求
- 簡單工作室 v4
- Z-Wave 7 開發工具包
- Z-Wave 電腦控制器
- Z 波 Zniffer
圖1: 帶 Z-Wave SiP 模塊的主開發板
1.3 先決條件
之前的動手練習涵蓋瞭如何使用 PC 控制器和 Zniffer 應用程序來構建 Z-Wave 網絡並捕獲 RF 通信以用於開發目的。 本練習假設您熟悉這些工具。
以前的動手練習也涵蓋瞭如何使用 sampZ-Wave SDK 附帶的應用程序。 本練習假設您熟悉使用和編譯其中一個amp應用程序。
Z-Wave 框架帶有由 board.h 和 board.c 定義的硬件抽象層 (HAL),為您的每個硬件平台提供實現的可能性。
硬件抽象層 (HAL) 是系統硬件與其軟件之間的程序代碼,它為可以在多個不同硬件平台上運行的應用程序提供一致的接口。 佔先tag在此功能中,應用程序應通過 HAL 提供的 API 訪問硬件,而不是直接訪問。 然後,當您遷移到新硬件時,您只需更新 HAL。
2.1 打開 Samp項目
對於本練習,您需要打開 Switch On / Offamp申請。 如果您完成了練習“3A Compile Switch OnOff and enable debug”,它應該已經在您的 Simplicity Studio IDE 中打開了。
在本節中,我們將查看董事會 files 並了解 LED 是如何初始化的。
- 從主要 file “SwitchOnOff.c”,找到“ApplicationInit()”並註意對Board_Init()的調用。
- 將您的課程放在 Board_Init() 上並按 F3 打開聲明。
3. 在 Board_Init() 中,注意 BOARD_LED_COUNT 中的 LED 是如何通過調用 Board_ConfigLed() 初始化的
4. 將您的課程放在 BOARD_LED_COUNT 上並按 F3 打開聲明。
5、led_id_t中定義的LED如下:
6.返回board.c file.
7. 將您的課程放在 Board_ConfigLed() 上並按 F3 打開聲明。
8. 注意 led_id_t 中定義的所有 LED 然後在 Board_ConfigLed() 中配置為輸出。
這意味著,開發板上的所有 LED 都已定義為輸出並可以使用。
3. 對 Z-Wave S 進行修改amp申請
在本練習中,我們將修改 Switch On/Off 中用於 LED 的 GPIOamp申請。 在上一節中,我們了解了開發板上的所有 LED 是如何初始化為輸出並準備使用的。
3.1 使用 RGB LED
我們將使用 Z-Wave 開發模塊上的板載 RGB LED,而不是按鈕板上的 LED。
1.在SwitchOnOff.c主應用中找到RefreshMMI函數,如圖6所示 file.
圖 6:沒有任何修改的 RefreshMMI
2. 我們將使用“Board_SetLed”函數,但將 GPIO 更改為
o 板_RGB1_R
o 板_RGB1_G
o 板_RGB1_B
3. 在OFF狀態和ON狀態下調用“Board_SetLed”3次,如圖7所示。
我們的新修改現已實施,您可以編譯了。
對器件進行編程的步驟在練習“3A Compile Switch OnOff and enable debug”中涵蓋,並在此處簡要重複:
- 點擊“構建”
按鈕開始構建項目。
- 構建完成後,展開“Binaries”文件夾並右鍵單擊 *.hex file 選擇“閃存到設備..”。
- 在彈出窗口中選擇連接的硬件。 “Flash Programmer”現在預填充了所有需要的數據,您可以點擊“Program”。
- 點擊“程序”。
稍等片刻後,編程完成,您的終端設備現在會閃爍您修改後的 Switch On/Off 版本。
3.1.1 測試功能
在之前的練習中,我們已經使用 SmartStart 將設備包含到安全的 Z-Wave 網絡中。 有關說明,請參閱練習“包括使用 SmartStart”。
提示 內部 file 系統不會在重新編程之間被擦除。 這允許節點留在網絡中並在重新編程時保留相同的網絡密鑰。
如果您需要更改例如模塊運行的頻率或 DSK,您需要在新頻率寫入內部 NVM 之前“擦除”芯片。
因此,您的設備已包含在網絡中。
通過驗證您可以打開和關閉 RGB LED 來測試功能。
- 使用 PC 控制器中的“Basic Set ON”和“Basic Set OFF”測試功能。 RGB LED 應該打開和關閉。
- RGB LED 也可以使用硬件上的 BTN0 打開和關閉。
我們現在已經驗證修改按預期工作,並成功更改了 S 中使用的 GPIOamp申請
3.2 改變RGB顏色分量
在本節中,我們將修改 RGB LED 並嘗試混合顏色分量。
“RGB 顏色模型中的顏色是通過指示包含多少紅色、綠色和藍色來描述的。 顏色表示為 RGB 三元組 (r,g,b),其每個分量可以從零變化到定義的最大值。 如果所有分量都為零,則結果為黑色; 如果全部都達到最大值,則結果是最亮的可表示白色。”
從維基百科上 RGB 顏色模型。
由於我們在上一節中啟用了所有顏色組件,因此 RGB LED 在開啟時為白色。 通過打開和關閉各個組件,我們可以更改 LED。 此外,通過調整每個顏色分量的強度,我們可以製作介於兩者之間的所有顏色。 為此,我們將使用 PWM 來控制 GPIO。
- 在 ApplicationTask() 中初始化 PwmTimer 並將 RGB 引腳設置為 PWM,如圖 9 所示。
- 在 RefreshMMI() 中,我們將為每個顏色分量使用一個隨機數。 每次 LED 點亮時,使用 rand() 獲取新值。
- 使用 DPRINTF() 將新生成的值寫入串行調試端口。
- 將 Board_SetLed() 替換為 Board_RgbLedSetPwm(),以便使用隨機值。
- 有關更新後的 RefreshMMI(),請參見圖 10。
圖 10:使用 PWM 更新的 RefreshMMI
我們的新修改現已實施,您可以編譯了。
- 點擊“構建”
按鈕開始構建項目。
- 構建完成後,展開“Binaries”文件夾並右鍵單擊 *.hex file 選擇“閃存到設備..”。
- 在彈出窗口中選擇連接的硬件。 “Flash Programmer”現在預填充了所有需要的數據,您可以點擊“Program”。
- 點擊“程序”。
稍等片刻後,編程完成,您的終端設備現在會閃爍您修改後的 Switch On/Off 版本。
3.2.1 測試功能
通過驗證您可以更改 RGB LED 的顏色來測試功能。
- 使用 PC 控制器中的“Basic Set ON”測試功能。
- 單擊“Basic Set ON”以查看顏色的變化。
我們現在已經驗證修改按預期工作,並且已成功將 GPIO 更改為使用 PWM。
4 討論
在本練習中,我們將開關開/關從控制簡單的 LED 修改為控制多色 LED。 根據 PWM 值,我們現在可以更改為任何顏色和強度。
- 是否應該將“二進制開關”用作此應用程序的設備類型?
- 哪些命令類更適合多色 LED?
為了回答這個問題,您應該參考 Z-Wave 規範:
- Z-Wave Plus v2 設備類型規範
- Z-Wave 應用命令類規範
關於如何修改和更改 Z-Wave S 的 GPIO 的教程到此結束amp申請。
閱讀更多關於本手冊的資訊並下載 PDF:
文件/資源
![]() |
SILICON LABS 實驗室 3B - 修改開關開/關 [pdf] 使用者指南 實驗室 3B,修改開關,開,關,Z-Wave,SDK |