当前位置: 首页 > news >正文

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(6)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω)

今天大都督继续为大家带来系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音助手,let’s go!

(6)WS2812灯带的简单控制与RGB调色介绍

上节我们已经熟悉了天问BLOCK的WS2812拓展库,这节我们就来简单控制一下吧。

WS2812接线图如下:

在这里插入图片描述

(图片摘自官方说明文档,链接在这里)

这里说明一下,如果我们使用的灯珠数比较少,是可以这样直接用单片机的5V引脚给灯带供电的,但如果灯珠数目多,就需要外接电源了(大都督试过120个灯珠以下基本都能正常供电)。

我们已经介绍了WS2812拓展库的相关代码(详见(5)拓展库的添加与WS2812灯带介绍)),并且也知道天问BLOCK怎么下载程序(详见(3)天问BLOCK程序下载与常见问题),现在我们就来进行WS2812拓展库的功能演示。

这是大都督自己用3D打印做的一个手办展架(关于3D打印与建模的知识也会在后续系列中放出,大家可以持续关注哦),

在这里插入图片描述

下面就是WS2812灯带,现在我们来用这个展架进行一下功能演示:

在这里插入图片描述

初始配置代码:

因为是代码测试,所以我们初始代码不需要太复杂,如下即可:

在这里插入图片描述

这里需要说一下,在我们初始RGB时要根据灯带上灯珠的数量进行初始化,比如这里我用的就是30灯珠灯带。

另外如果我们需要更改如switch分支数量等代码块信息,点击代码块左上角的蓝齿轮图标即可:

在这里插入图片描述

WS2812拓展库各代码功能展示:

1. 控制单个灯按指定颜色亮起

控制灯按指定颜色亮起有两种实现方式,一种是通过官方预设的颜色,如下:

在这里插入图片描述

另一种就是RGB调色,不懂RGB是什么的可以参考本文最后的RGB介绍。

现在我们控制指定灯1号和30号按指定颜色亮起对应代码分别如下:

在这里插入图片描述

加上RGB显示,将其放在case1中即可,暂时用不到的代码,我们可以鼠标右键点击禁用块,暂时禁用该代码块。

在这里插入图片描述

在这里插入图片描述

最后实现效果如图:

在这里插入图片描述

2.控制所有灯全部熄灭

开灯之后自然还需要关灯,关灯代码如下:
在这里插入图片描述

将它放到case2中即可:
在这里插入图片描述

3.控制所有灯指定颜色亮起

代码如下,将对应代码放到case1中即可:

在这里插入图片描述

演示效果如图:

在这里插入图片描述

4.彩虹循环与流光溢彩效果

代码如下,彩虹循环效果就是各个灯珠循环变色,流光溢彩就是全体灯珠一起颜色渐变。

这里注意间隔时间不是整个效果持续时间,而是不同颜色的渐变时间间隔:

在这里插入图片描述

效果如下,大家可以更改不同的ms毫秒数试试其他效果:

在这里插入图片描述

如果需要本节的工程文件,在咱们深海王国的公众号「深海大都督」里回复「语音控制灯带」就可以啦。

为什么要使用多线程?

在进行彩虹循环和流光溢彩效果的过程中,我们会发现,喊指令关灯,ASRPRO并不会让我们的灯带灭掉,而是无视了我们的指令,只有等彩虹循环流光溢彩效果结束后,我们喊指令关灯才有效。

核心原因就是目前我们的单片机是单线程运行。

简单来说,就是现在单片机比较傻比较一根筋,只能同时做一件事。

要不去执行流光溢彩效果(实际上这个效果是个条件循环结构,在没执行完整个效果前,程序都会卡在while循环里一直运行),要不去听我们的指令,二者不可得兼。

这时候就要使用我们的多线程模式了,下节我们就来解决这个问题。

附:RGB调色介绍

RGB调色是一种基于光的加色模式,主要应用于电视、计算机屏幕、手机屏幕以及其他电子显示设备上。它由红色(Red)、绿色(Green)、蓝色(Blue)三种颜色的光合成而成,通过调整这三种颜色光的亮度或比例,可以产生几乎所有可感知的颜色。

RGB色彩模式是数字技术中广泛使用的颜色系统,其工作原理是基于人类视觉对光的感应。在RGB模式中,每种颜色都是通过指定红、绿、蓝三个颜色通道的强度来定义的。这些强度通常用0到255的数字表示,其中0表示该颜色通道不发光,而255表示该通道发光强度最大。例如,纯红色表示为(255, 0, 0);纯绿色表示为(0, 255, 0);纯蓝色表示为(0, 0, 255);黑色表示为(0, 0, 0),因为所有颜色通道都不发光;而白色表示为(255, 255, 255),所有颜色通道都以最大强度发光。通过这种方式,可以混合出多种颜色。

今天的学习到这里就差不多啦。下节我们就开始ASRPRO多线程模式的学习,加油!看到这里的你今天也辛苦啦٩(ˊᗜˋ)و✧。

需要的相关材料链接我都放在公众号「深海大都督」里了,回复「语音控制灯带」就能获得啦~

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

相关文章:

  • ESP32之arduino环境安装及点灯
  • CentOS中使用SSH远程登录
  • 【华为战报】5月、6月HCIP考试战报!
  • Flink实现准确和高效流处理的关键问题
  • Keycloak SSO 如何验证已添加的 SPN 是否生效
  • 3个让你爽到爆炸的学习工具
  • IP地址配置
  • 解决跨域问题(vite、axios/koa)
  • el-dropdown的command方法添加自定义参数
  • 【项目实践】贪吃蛇
  • N-gram算法的pytorch代码实现
  • CPU的核心数和线程数
  • C语言 | Leetcode C语言题解之第213题打家劫舍II
  • 面试突击指南:Java基础面试题4
  • SpringBoot项目,配置文件pom.xml的结构解析
  • 4. 路由到控制器 - Laravel从零开始教程
  • CODING 缺陷管理功能正式开始公测
  • git 常用命令
  • iOS小技巧之UIImagePickerController实现头像选择
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Linux后台研发超实用命令总结
  • python docx文档转html页面
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Webpack 4x 之路 ( 四 )
  • 测试如何在敏捷团队中工作?
  • 技术发展面试
  • 聚簇索引和非聚簇索引
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 扑朔迷离的属性和特性【彻底弄清】
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 小程序 setData 学问多
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • UI设计初学者应该如何入门?
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # include “ “ 和 # include < >两者的区别
  • # Panda3d 碰撞检测系统介绍
  • #Linux(Source Insight安装及工程建立)
  • (3) cmake编译多个cpp文件
  • (70min)字节暑假实习二面(已挂)
  • (a /b)*c的值
  • (C语言)字符分类函数
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一) springboot详细介绍
  • (一)基于IDEA的JAVA基础10
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转) Face-Resources
  • (转)项目管理杂谈-我所期望的新人
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .Family_物联网
  • .NET CLR基本术语