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

物联网AI MicroPython传感器学习 之 WS2812 RGB点阵灯环

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

ws2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。
image.png
引脚定义

  • DI: 控制信号输入引脚
  • VCC:电源5V
  • GND:电源地
  • DO: 信号输出引脚,串联下一个灯珠

二、技术参数

  • 工作电压:5V
  • 发送速率:800Kbps
  • 亮度显示:支持256级亮度显示,rgb三色支持16777216种颜色的显示
  • 通信方式:单线通信
  • 工作特性:刷新速率30帧/秒时,级联数不小于1024
  • 工作温度:-20°C~85°C

三、软件接口

WS2812 - 创建WS2812驱动对象

  • 函数原型

relayObj = WS2812(gpioObj, ledPixel)

  • 参数说明
参数类型必选参数?说明
gpioObjGPIOWS2812控制引脚的GPIO对象
ledPixelint默认ledPixel为24个RGB点灯,开发者根据自己的实际需求创建
  • 返回值

若WS2812对象创建成功,返回WS2812对象;否则抛出Exception

  • 示例代码
from machine import Pin
import ws2812gpioObj=Pin(2, Pin.OUT, Pin.PULLDOWN)
ws2812Obj = ws2812.WS2812(gpioObj)
print("ws2812 inited!")
  • 输出
ws2812 inited!

set(r,g,b,index) - 点亮对应index的RGB点阵灯环

  • 函数功能:

点亮对应index的RGB点阵灯环

  • 函数原型:

WS2812.set(r,g,b,index)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
indexint对应的灯珠索引号,范围:0~(ledPixel-1),例如:第一个灯珠的index为0
  • 返回值:

dot(r,g,b,time) - 将RGB点阵灯环逐个点亮,每次只有一个灯珠被点亮

  • 函数功能:

将RGB点阵灯环逐个点亮,每次只有一个灯珠被点亮

  • 函数原型:

WS2812.dot(r,g,b,time)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
timeint逐个点灯的时间,单位(ms)
  • 返回值:

wipe(r,g,b,time) - 将RGB点阵灯环一一点亮

  • 函数功能:

将RGB点阵灯环一一点亮

  • 函数原型:

WS2812.wipe(r,g,b,time)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
timeint逐次点灯的时间,单位(ms)
  • 返回值:

rainbow(time) - RGB点阵灯环实现彩虹变换

  • 函数功能:

RGB点阵灯环实现彩虹变换

  • 函数原型:

WS2812.rainbow(time)

  • 参数说明:
参数类型说明
timeint彩虹渐变的时间,单位(ms)
  • 返回值:

clear(index) - 熄灭对应index的RGB点阵灯环

  • 函数功能:

熄灭对应index的RGB点阵灯环

  • 函数原型:

WS2812.clear(index)

  • 参数说明:
参数类型是否必选说明
indexint当不选参数的时候,所有的灯珠会熄灭。
index对应的灯珠索引号,范围:0~(ledPixel-1),例如:第一个灯珠的index为0
  • 返回值:

四、接口案例

  • 示例代码
from machine import Pin
import ws2812gpioObj=Pin(2, Pin.OUT, Pin.PULLDOWN)
ws2812Obj = ws2812.WS2812(gpioObj)
print("ws2812 inited!")
while True:ws2812Obj.dot(128,0,0,100)

五、工作原理

数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度影响。
image.png
ws2812时序波形图:
image.png

参考文献及购买链接

[1] WS2812原理介绍
[2] WS2812购买链接

相关文章:

物联网AI MicroPython传感器学习 之 WS2812 RGB点阵灯环

学物联网,来万物简单IoT物联网!! 一、产品简介 ws2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路&a…...

【GPU常见概念】GPU常见概念及分类简述

随着大模型和人工智能的爆火,大家对GPU的关注持续上升,本文简单简述下GPU经常用的概念。 GPU(图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备&…...

JVM篇---第九篇

系列文章目录 文章目录 系列文章目录一、什么是指针碰撞?二、什么是空闲列表三、什么是TLAB? 一、什么是指针碰撞? 一般情况下,JVM的对象都放在堆内存中(发生逃逸分析除外)。当类加载检查通过后&#xff0…...

探索 GAN 和 VAE 之外的 NLP 扩散模型

介绍 扩散模型最近引起了极大的关注,特别是在自然语言处理(NLP)领域。基于通过数据扩散噪声的概念,这些模型在各种NLP任务中表现出了卓越的能力。在本文中,我们将深入研究扩散模型,了解其基本原理,并探讨实际应用、优势、计算注意事项、扩散模型在多模态数据处理中的相…...

发现很多人分不清 jwt session token 的区别?

1. JWT(JSON Web Token) 1.1 什么是JWT? JWT,全称为JSON Web Token,是一种用于在网络上安全传输信息的开放标准。它的设计初衷是用于跨域通信,在不同域之间传递声明性信息。JWT是一种自包含的令牌&#x…...

GPT系列论文解读:GPT-3

GPT系列 GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型,由OpenAI开发。以下是GPT系列的主要模型: GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer…...

神经网络中的知识蒸馏

多分类交叉熵损失函数:每个样本的标签已经给出,模型给出在三种动物上的预测概率。将全部样本都被正确预测的概率求得为0.70.50.1,也称为似然概率。优化的目标就是希望似然概率最大化。如果样本很多,概率不断连乘,就会造…...

jmeter利用自身代理录制脚本

在利用代理录制脚本时一定要安装java jdk,不然不能录制的。 没有安装过java jdk安装jmeter后打开时会提示安装jdk,但是mac系统中直接打开提示安装jdk页面后下载的java并不是jdk(windows中没有试验过,笔者所说的基本全部指的是在ma…...

【漏洞复现】时空智友企业流程化管控系统 session泄露

漏洞描述 时空智友企业流程化管控系统 session 泄露 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用…...

获取泛型的类型

示例一&#xff1a;获取父类的泛型的类型 public class Emp<T, Q> {class Stu extends Emp<String, Integer> {}Testvoid fun() {final Type type Emp.class.getGenericSuperclass();final ParameterizedType parameterizedType (ParameterizedType) type;Syste…...

[Python进阶] Pyinstaller打包问题

5.9 Pyinstaller打包问题 5.9.1 找不到指定的模块 Pyinstaller在进行打包时&#xff0c;会解析打包的Python文件&#xff0c;自动寻找py源文件的依赖模块。但是Pyinstaller解析模块时可能会遗漏某些模块&#xff0c;这个时候就会报错&#xff1a;No Module named xxx。 如果是…...

计算机竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …...

竞赛选题 机器学习股票大数据量化分析与预测系统 - python 竞赛选题

文章目录 0 前言1 课题背景2 实现效果UI界面设计web预测界面RSRS选股界面 3 软件架构4 工具介绍Flask框架MySQL数据库LSTM 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器学习股票大数据量化分析与预测系统 该项目较为新颖&am…...

智慧驿站:为城市带来全新智慧公厕未来形态

随着城市发展和科技进步的不断推进&#xff0c;智慧公厕逐渐成为城市规划和公共设施建设的重要组成部分。而集合了创意的外观设计、全金属结构工艺、智慧公厕、自动售货、共享设备、广告大屏、小型消防站、小型医疗站&#xff0c;并能根据需要而灵活组合的智慧驿站成为其中重要…...

Java获取汉字首字母

Java获取汉字的首字母&#xff0c;例如&#xff1a;中国香港&#xff0c;则返回ZGXG&#xff1b;Tom 中国欢迎你&#xff0c;则返回 TOM ZGHYN&#xff0c;如果为英文&#xff0c;则返回英文的大写形式&#xff0c;传空字符串则什么也不返回。 其中需要引用的maven依赖&#xf…...

基于or-tools的人员排班问题建模求解(JavaAPI)

使用Java调用or-tools实现了阿里mindopt求解器的案例&#xff08;https://opt.aliyun.com/platform/case&#xff09;人员排班问题。 这里写目录标题 人员排班问题问题描述数学建模编程求解&#xff08;ortoolsJavaAPI&#xff09;求解结果 人员排班问题 随着现在产业的发展&…...

设备管理团队如何做好停机维护工作_基于PreMaint设备数字化平台

在现代工业生产中&#xff0c;设备的正常运行对于企业的生产效率和利润至关重要。而停机维护作为设备管理的重要环节&#xff0c;旨在确保设备的安全性、可靠性和性能稳定。本文将介绍停机维护的概念&#xff0c;讨论如何计划停机维护&#xff0c;并重点探讨如何通过PreMaint设…...

c++ qt--线程(二)(第九部分)

c qt–线程&#xff08;二&#xff09;&#xff08;第九部分&#xff09; 一.线程并发 1.并发问题&#xff1a; ​ 多个线程同时操作同一个资源&#xff08;内存空间、文件句柄、网络句柄&#xff09;&#xff0c;可能会导致结果不一致的问题。发生的前提条件一定是多线程下…...

​企业数据泄露不断,深信服EDR助企业构建数据“安全屋”

随着数字时代不断发展,数据泄露问题愈发严峻,个人信息安全面临着严重的威胁。近日,加拿大电信巨头加拿大贝尔(Bell Canada)对外披露了一起大规模数据泄露事件,该公司承认黑客入侵其系统,并窃取了190万个用户电子邮件地址以及约1700个用户姓名及活跃电话号码信息,相关损失无法估…...

单线复用iptv影响网速吗?

IPTV单线复用对网速有影响吗&#xff1f;这是一个比较常见的问题。如果你家的局域网是老的100M局域网LAN的路由器&#xff0c;走单线复用会影响你上网速度。但是如果你家的局域网是千兆网络&#xff0c;IPTV单线复用叠加上去的这点流量算不上什么&#xff0c;可以认为不占用网速…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

免费批量Markdown转Word工具

免费批量Markdown转Word工具 一款简单易用的批量Markdown文档转换工具&#xff0c;支持将多个Markdown文件一键转换为Word文档。完全免费&#xff0c;无需安装&#xff0c;解压即用&#xff01; 官方网站 访问官方展示页面了解更多信息&#xff1a;http://mutou888.com/pro…...

虚拟机网络不通的问题(这里以win10的问题为主,模式NAT)

当我们网关配置好了&#xff0c;DNS也配置好了&#xff0c;最后在虚拟机里还是无法访问百度的网址。 第一种情况&#xff1a; 我们先考虑一下&#xff0c;网关的IP是否和虚拟机编辑器里的IP一样不&#xff0c;如果不一样需要更改一下&#xff0c;因为我们访问百度需要从物理机…...