SILICON LABS 实验室 3B – 修改开/关用户指南
此动手练习将演示如何对其中一个进行修改amp作为 Z-Wave SDK 一部分提供的应用程序。
本练习是“Z-Wave 1 日课程”系列的一部分。
- 包括使用 SmartStart
- 使用 Zniffer 解密 Z-Wave RF 帧
- 3A:编译开关打开/关闭和启用调试
3B:修改开/关 - 了解 FLiRS 设备
主要特色
- 更改 GPIO
- 实施脉宽调制
- 使用板载 RGB LED
1. 简介
本练习建立在上一个练习“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 软件要求
- Simplicity Studio 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 |