硅胶标志

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

 

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: 带 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

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *