矽膠標誌

SILICON LABS 實驗室 3B – 修改開/關用戶指南

SILICON LABS 實驗室 3B - 修改開關開/關

此動手練習將演示如何對其中一個進行修改amp作為 Z-Wave SDK 一部分提供的應用程序。

本練習是“Z-Wave 1 日課程”系列的一部分。

  1. 包括使用 SmartStart
  2. 使用 Zniffer 解密 Z-Wave RF 幀
  3. 3A:編譯開關打開/關閉和啟用調試
    3B:修改開/關
  4. 了解 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: 帶 Z-Wave SiP 模塊的主開發板

1.3 先決條件
之前的動手練習涵蓋瞭如何使用 PC 控制器和 Zniffer 應用程序來構建 Z-Wave 網絡並捕獲 RF 通信以用於開發目的。 本練習假設您熟悉這些工具。

以前的動手練習也涵蓋瞭如何使用 sampZ-Wave SDK 附帶的應用程序。 本練習假設您熟悉使用和編譯其中一個amp應用程序。

 

2. 導航板界面

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 是如何初始化的。

  1. 從主要 file “SwitchOnOff.c”,找到“ApplicationInit()”並註意對Board_Init()的調用。
  2. 將您的課程放在 Board_Init() 上並按 F3 打開聲明。

圖 2 打開 Samp項目

3. 在 Board_Init() 中,注意 BOARD_LED_COUNT 中的 LED 是如何通過調用 Board_ConfigLed() 初始化的

圖 3 打開 Samp項目

4. 將您的課程放在 BOARD_LED_COUNT 上並按 F3 打開聲明。
5、led_id_t中定義的LED如下:

圖 4 打開 Samp項目

6.返回board.c file.
7. 將您的課程放在 Board_ConfigLed() 上並按 F3 打開聲明。
8. 注意 led_id_t 中定義的所有 LED 然後在 Board_ConfigLed() 中配置為輸出。

圖 5 打開 Samp項目

這意味著,開發板上的所有 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 未做任何修改

圖 6:沒有任何修改的 RefreshMMI

2. 我們將使用“Board_SetLed”函數,但將 GPIO 更改為
o 板_RGB1_R
o 板_RGB1_G
o 板_RGB1_B

3. 在OFF狀態和ON狀態下調用“Board_SetLed”3次,如圖7所示。

圖 7 RefreshMMI 修改為使用 RGB LED

我們的新修改現已實施,您可以編譯了。
對器件進行編程的步驟在練習“3A Compile Switch OnOff and enable debug”中涵蓋,並在此處簡要重複:

  1. 點擊“構建” 圖標1 按鈕開始構建項目。
  2. 構建完成後,展開“Binaries”文件夾並右鍵單擊 *.hex file 選擇“閃存到設備..”。
  3. 在彈出窗口中選擇連接的硬件。 “Flash Programmer”現在預填充了所有需要的數據,您可以點擊“Program”。
  4. 點擊“程序”。

稍等片刻後,編程完成,您的終端設備現在會閃爍您修改後的 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 顏色模型。

圖 8 混合在一起的 RGB 顏色分量

由於我們在上一節中啟用了所有顏色組件,因此 RGB LED 在開啟時為白色。 通過打開和關閉各個組件,我們可以更改 LED。 此外,通過調整每個顏色分量的強度,我們可以製作介於兩者之間的所有顏色。 為此,我們將使用 PWM 來控制 GPIO。

  1. 在 ApplicationTask() 中初始化 PwmTimer 並將 RGB 引腳設置為 PWM,如圖 9 所示。                                                                                圖 9 ApplicationTask 中初始化的 PWM
  2. 在 RefreshMMI() 中,我們將為每個顏色分量使用一個隨機數。 每次 LED 點亮時,使用 rand() 獲取新值。
  3. 使用 DPRINTF() 將新生成的值寫入串行調試端口。
  4. 將 Board_SetLed() 替換為 Board_RgbLedSetPwm(),以便使用隨機值。
  5. 有關更新後的 RefreshMMI(),請參見圖 10。

圖 10 RefreshMMI 更新為 PWM

圖 10:使用 PWM 更新的 RefreshMMI

我們的新修改現已實施,您可以編譯了。

  1. 點擊“構建” 圖標1 按鈕開始構建項目。
  2. 構建完成後,展開“Binaries”文件夾並右鍵單擊 *.hex file 選擇“閃存到設備..”。
  3. 在彈出窗口中選擇連接的硬件。 “Flash Programmer”現在預填充了所有需要的數據,您可以點擊“Program”。
  4. 點擊“程序”。

稍等片刻後,編程完成,您的終端設備現在會閃爍您修改後的 Switch On/Off 版本。

3.2.1 測試功能

通過驗證您可以更改 RGB LED 的顏色來測試功能。

  1. 使用 PC 控制器中的“Basic Set ON”測試功能。
  2. 單擊“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

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *