0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GreenPAK设计和安卓应用程序设计

z2Pt_Dia 来源:Dialog半导体公司 作者:Dialog半导体公司 2021-12-25 17:15 次阅读

智能灯越来越受欢迎,并且正在稳步成为智能家居的关键部分。智能灯使用户能够通过智能手机上的应用程序控制灯光,可以在APP界面打开和关闭灯,也可以调节颜色。在本文中,我们将介绍一个如何实现智能灯控制器的项目,可以手动按钮或用移动APP通过蓝牙进行控制。为了给这个项目增加一些特色,我们添加了一些功能,允许用户从APP界面中包含的颜色列表中选择照明颜色。还可以激活“自动混合”以产生彩色效果,也可以每半秒改变一次灯光。用户可以使用PWM功能创建自己的颜色混合,该功能也可以用作三种基本颜色(红色、绿色、蓝色)的调光器。我们还在电路中添加了外部按钮,以便用户可以切换到手动模式并通过外部按钮调换灯光颜色。

本文由两部分组成:GreenPAK设计和安卓应用程序设计。GreenPAK设计基于使用UART接口进行通信。选择UART是因为大多数蓝牙模块以及大多数其他外设(例如Wi-Fi模块)都支持它。因此,GreenPAK设计可用于多种连接类型。

为了创建这个项目,我们将使用SLG46620 GreenPAK IC、一个蓝牙模块和一个RGB LED

GreenPAK IC将是该项目的控制核心:它从蓝牙模块和/或外部按钮接收数据,然后开始所需的程序来显示正确的照明。它还生成PWM信号并将其输出到LED。下面的图1展示了功能框图。

该项目中使用的GreenPAK器件在单颗IC中包含了一个SPI连接接口、PWM功能块、FSM和许多其他有用的附加功能块。它还具有体积小、能耗低的特点。这使得制造商能用单个IC构建小型实用电路,从而降低生产成本。

在这个项目中,我们将控制一个RGB LED。为了使该项目具有商用可行性,系统可能需要通过并联多个LED并使用适当的晶体管来提高亮度等级;电源电路也需要考虑。我们对该项目完成了实现和检验。

GreenPAK设计

在GreenPAK Designer软件中实现的设计由UART接收器、PWM单元和控制单元组成(完整的设计文件可从以下链接下载)。

https://www.dialog-semiconductor.com/sites/default/files/an-cm-273_gp.zip

a) UART接收器

首先,我们需要设置蓝牙模块。大多数蓝牙IC支持UART协议进行通信。UART是通用异步收发传输器,可以将数据在并行和串行格式之间相互转换。它包括一个串行到并行接收器,和一个并行到串行转换器,它们都单独计时。

蓝牙模块中接收到的数据将传输到GreenPAK器件。Pin10的空闲状态为高(HIGH)。发送的每个字符都以逻辑“低起始位(Low Start bit)”开头,然后是可配置数量的数据位(bit)和一个或多个逻辑“高停止位(High Stop bit)”。

UART发送器发送1个低起始位(Low Start bit)、8个数据位(bit)和1个高停止位(High Stop bit)。通常,蓝牙模块的UART默认波特率为9600。我们将从蓝牙IC发送数据字节到GreenPAK。

由于GreenPAK SPI功能块没有低起始位(Low Start bit)或高停止位(High Stop bit)控制,我们将使用这些位(bit)来启用和禁用SPI时钟信号(SCLK)。当Pin10变低(LOW)时,我们知道我们收到了一个低起始位(Low Start bit),因此我们使用GreenPAK内部的PDLY配置为下降沿检测器来识别通信的开始。该下降沿检测器为GreenPAK内部的DFF0提供触发时钟,从而启用SCLK信号为GreenPAK SPI功能块提供时钟。

我们将波特率设定为每秒9600 bit/s,对应SCLK周期为1/9600 = 104 µs。因此我们将OSC频率设置为2MHz,并使用GreenPAK内部的CNT0配置为分频器。为了使接收到的时钟周期是104 µs,需要将CNT0计数值设定为2818。

参照图2中GreenPAK内部的可配置单元图示,为了确保不丢失任何数据,我们需要将SPI时钟延迟半个时钟周期,以便SPI功能块在正确的时间被计时。我们通过使用CNT6、2-bit LUT1和OSC功能块的外部时钟来实现这一点。CNT6的输出直到DFF0被计时后52 µs才会变高,是该SPI的SCLK周期104 µs的一半。当CNT6为高(HIGH)时,配置为与门的2-bit LUT1允许时钟信号(CLK Begin)进入OSC 的EXT. CLK0输入,其输出时钟信号连接到CNT0的CLK端子

b) PWM功能单元

参照图3中GreenPAK内部的可配置单元图示,PWM信号是使用PWM0和相应时钟脉冲发生器(CNT8/DLY8)生成的。由于脉冲宽度是用户可控的,我们使用FSM0(可以连接到PWM0)来统计用户数据。

在SLG46620中,8-bit FSM1可以与PWM1和PWM2结合使用。需要连接蓝牙模块,即必须使用SPI并行输出模块。SPI并行输出模块的bit 0~7与DCMP1、DMCP2和LF OSC CLK的OUT1和OUT0组合。PWM0从16-bit FSM0获得其输出。如果不改变,这会导致脉冲宽度过载。为了将计数器值限制在8位(bits),我们添加了另一个FSM:FSM1用作提示计数器达到0或255的提示器。FSM0用于生成 PWM脉冲,因此FSM0和FSM1必须同步。由于两个FSM都有预设的时钟选项,因此CNT1和CNT3用作将CLK传递给两个FSM的中间分频媒介。这两个计数器设置为相同的值,在本文中为25。我们可以通过改变这些计数器值来改变PWM值的变化率。

FSM的值由来自SPI并行输出模块的信号“+”和“-”来增加和减少。

c) 控制单元

参照图4中GreenPAK内部的可配置单元图示,在控制单元内,接收到的字节是从蓝牙模块获取到SPI并行输出,然后传递给相关的功能模块。首先,将检查PWM CS1和PWM CS2输出,查看PWM模式是否被激活。如果它被激活,它将决定通过LUT4、LUT6和LUT7中的哪个通道输出PWM。

LUT9、LUT11和LUT14负责检查其他两个LED的状态。LUT10、LUT12和LUT13检查手动按钮是否被激活。如果手动模式处于开启状态,则RGB将根据D0、D1、D2输出状态运行,每次按下颜色按钮时,这些输出状态会改变。它随着来自CNT7的上升沿而变化,CNT7用作上升沿信号的去抖动功能。

Pin 20配置为输入,用于在手动控制模式和蓝牙控制模式之间切换。

如果禁用手动模式并开启自动混合模式,则颜色每500毫秒改变一次,上升沿来自CNT7。4-bit LUT1 用于防止D0 D1 D2处于“000”状态,因为该状态会导致灯在自动混合模式时关闭。

如果手动模式、PWM模式和自动混合模式未启用,则红色、绿色和蓝色SPI命令流向引脚12、13和14,这些引脚配置为输出,并连接到外部RGB LED。

DFF6、DFF7和DFF8用于构建3-bit二进制计数器。计数器值随着CNT7脉冲增加,并在MUXs‘ (GreenPAK逻辑单元LUT10、LUT12、LUT13)的输入端产生不同的D0,D1,D2逻辑组合。

安卓应用程序

在本节中,我们将创建一个安卓应用程序,它将监测和显示用户的控件选择。界面由两部分组成:第一部分包含一组具有预定义颜色的按钮,因此当按下这些按钮中的任意一个时,相应颜色的LED会亮起。第二部分(MIX方块)为用户创建混合颜色。

在第一部分,用户选择他们希望PWM信号通过的LED引脚;PWM信号一次只能传递到一个引脚。下面的列表在PWM模式期间逻辑地控制其他两种颜色的开/关。

自动混合按钮负责运行自动换灯光模式,每半秒换一次灯光。MIX部分包含两个复选框列表,用户可以决定将哪两种颜色混合在一起。

我们使用MIT App Inventor网站创建了该应用程序。该网站允许用户在没有任何软件经验的情况下,使用图形软件块创建安卓应用程序。

我们最初设计的图形界面添加了一组负责显示预定义颜色的按钮,我们还添加了两个复选框列表,每个列表有3个元素;每个元素都在其单独的框中显示,如图5所示。

用户界面中的按钮与软件命令相关联:应用程序通过蓝牙发送的所有命令都是以字节格式,每一个bit负责特定的功能。

表1显示了发送到GreenPAK的命令帧的形式。

前三个bit:B0、B1和B2将通过预定义颜色的按钮在直接控制模式下保持RGB LED的状态。因此,当单击其中任意一个按钮时,将发送该按钮的相应值,如表2所示。

B3和B4 bit控制“+”和“-”命令,它们负责增加和减少脉冲宽度。按下按钮时bit值为1,松开按钮时bit值为0。

B5和B6 bit负责选择PWM信号将通过的引脚(颜色):这些bit的颜色指定如表3所示。最后一个bit B7负责激活自动混合功能。

图6和图7展示了将按钮与负责发送以上值的编程块链接的过程。

控制器已测试成功,颜色混合以及其他功能均显示正常工作。

结论

在本文中,我们创建了一个由安卓应用程序进行无线控制的智能灯电路。该项目中使用的GreenPAK IC有助于将几个用于控制灯光的基本组件集成到一个小型IC中。

原文标题:通过蓝牙控制RGB LED颜色

文章出处:【微信公众号:Dialog半导体公司】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23052

    浏览量

    656956
  • 智能家居
    +关注

    关注

    1926

    文章

    9467

    浏览量

    183770
  • 应用程序
    +关注

    关注

    37

    文章

    3233

    浏览量

    57541

原文标题:通过蓝牙控制RGB LED颜色

文章出处:【微信号:Dialog半导体公司,微信公众号:Dialog半导体公司2】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AIC3262 CODEC能否在下运用?

    我们有多路音频混音应用需求(双路MIC. LINE IN, I2S 音源输入,耳机输出监听及混音后录音),针对混音还有通过DSP 作混响, 10段EQ应用, 该装置需要在环境下运行。不知TI AIC3262 CODEC能否在
    发表于 10-29 08:19

    第5章 MATLAB程序设计.ppt

    第5章 MATLAB程序设计
    发表于 10-24 16:40 0次下载

    FX3在系统上显示为\"DDC\",有什么办法可以定义这个字符串吗?

    正如标题所说,当我将 FX3 插入设备时,会询问应用程序是否可以访问\"DDC\" 。 有什么办法可以定义这个字符串吗? 谢谢!
    发表于 07-03 08:15

    浅析工控主板的优势

    工控主板作为专为工业控制领域设计的硬件平台,相较于普通商用主板,拥有诸多优势,以满足工业环境对稳定、可靠、长期运行的严格要求。以下是工控主板的主要优势分析:
    的头像 发表于 06-27 14:50 288次阅读

    makefile中启用了OTA_FW_UPGRADE:=1,应用程序崩溃的原因?怎么解决?

    在手表应用程序中,makefile 中启用了 OTA_FW_UPGRADE:=1,并尝试从 MTB 库中的 LE OTA APP()使用 OTA 升级固件,在更新了 ota.bin 文件后点击 UPDATE,
    发表于 06-03 07:11

    苹果将开发手机TV+应用

    近日,苹果公司宣布正在积极招募高级工程师,旨在为其在平台上开发一款全新的电视和体育应用程序。这一举措标志着苹果终于将其备受欢迎的TV+服务引入到了竞争对手的智能手机平台。
    的头像 发表于 05-31 09:35 639次阅读

    最简单的C程序设计

    电子发烧友网站提供《最简单的C程序设计.pptx》资料免费下载
    发表于 05-28 16:41 9次下载

    算法-程序设计的灵魂

    电子发烧友网站提供《算法-程序设计的灵魂.pptx》资料免费下载
    发表于 05-28 16:39 3次下载

    程序设计基础教程

    电子发烧友网站提供《程序设计基础教程.pptx》资料免费下载
    发表于 05-28 16:37 1次下载

    15调整存储设置,系统细分系统文件与临时文件

    目前,手机用户在存储设置中可查看各类型文件占用空间的详细数据,如应用程序、文档、图片、游戏、音频等,以及“系统”(System)空间内的基本系统文件所占空间大小。
    的头像 发表于 05-17 14:32 576次阅读

    谷歌15优化“强制深色”底层算法:适配更多应用、界面更有沉浸感

    据Android Authority报告,谷歌已计划将“所有应用程序变暗”这一特性纳入即将推出的15操作系统中。即便某些应用并不支持深色模式,谷歌也会通过强制手段使这些应用变为深色。
    的头像 发表于 04-26 09:46 375次阅读

    如何在系统上通过蓝牙控制Cypress CYW20730?

    嗨,我想开发一个 CAN 连接到赛普拉斯CYW20730芯片的Android应用程序。 实际上,一些主动快门 3D 眼镜使用了这个芯片,我想建立蓝牙连接来打开和关闭眼镜镜片。 我下载了您的 2
    发表于 03-01 11:58

    微软推出Copilot应用 类似ChatGPT功能

    微软在系统上的Copilot应用程序与ChatGPT非常相似,可以访问聊天机器人功能,通过DALL-E 3生成图像,并可以为电子邮件和文档起草文本。它还包括免费访问OpenAI最新的GPT-4模型,如果你使用ChatGPT,
    的头像 发表于 12-28 16:59 1002次阅读
    微软推出Copilot<b class='flag-5'>安</b><b class='flag-5'>卓</b>应用 类似ChatGPT功能

    BK7239应用程序设计产品介绍

    BK7239是高度集成的1x1三频2.4/5/6 GHz Wi-Fi 6/6E(802.11ax)和双模蓝牙5.4组合为需要高安全性和丰富资源的应用程序设计的解决方案。BK7239支持的利率
    发表于 12-07 10:59 3次下载

    手持式主板_PDA板_数据采集扫描智能手持终端方案

    手持式主板_PDA板_数据采集扫描智能手持终端方案。采用了八核2.0GHz高性能处理器和Android 11.0操作系统,具备更强大的数据处理能力。内存方面可选配2G+16G或
    的头像 发表于 12-05 19:32 516次阅读
    手持式<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板_PDA<b class='flag-5'>安</b><b class='flag-5'>卓</b>板_数据采集扫描智能手持终端方案