Package: haas-python-ws2812
HaaS Python介绍HaaS Python是阿里云IoT团队最新研发的一套低代码编程框架，兼容MicroPython编程规范，依托HaaS平台软硬件积木提供AI、支付、蓝牙配网、云连接、UI等物联网场景常用的能力，从而解决了物联网应用开发难的问题。有了Python轻应用框架，物联网编程不再局限于专业软件开发人员，一般的技术员也可以快速实现复杂的物联网需求。
更多HaaS Python介绍和开发资料见HaaS Python官网,创意案例,硬件积木HaaS Python is a set of low-code programming frameworks newly developed by Alibaba Cloud IoT team. It is compatible with MicroPython programming specifications. It relies on the hardware and software building blocks of the HaaS platform to provide capabilities commonly used in IoT scenarios such as AI, payment, Bluetooth network configuration, cloud connection, and UI. Solve the difficult problem of IoT application development. With the Python light application framework, IoT programming is no longer limited to professional software developers, and general technicians can quickly implement complex IoT requirements.
For more HaaS Python introduction and development materials, seeHaaS Python official website,Creative Case,Hardware Building Blocks安装方法在HaaS Python官网下载开发板对应的固件，并完成固件烧录Download the firmware corresponding to the development board atHaaS Python websiteand complete the firmware burning在开发板上运行以下命令完成安装和使用,如果您在使用过程中遇到问题，欢迎在github上向我们提交issue，我们的工程师会及时解答Run the following commands on the development board to complete the installation and use. If you encounter problems during use, please submit an issue to us ongithub, Our engineers will answer in timeimport upip
upip.install("haas-python-ws2812")
import haas-python-ws2812WS2812 RGB点阵灯环一、产品简介ws2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同，每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路，还包含有高精度的内部振荡器和12V高压可编程定电流控制部分，有效保证了像素点光的颜色高度一致。引脚定义DI： 控制信号输入引脚VCC：电源5VGND：电源地DO： 信号输出引脚，串联下一个灯珠二、技术参数工作电压：5V发送速率：800Kbps亮度显示：支持256级亮度显示，rgb三色支持16777216种颜色的显示通信方式：单线通信工作特性：刷新速率30帧/秒时，级联数不小于1024工作温度：-20°C~85°C三、软件接口WS2812 RGB点阵灯环 HaaS Python驱动：下载地址WS2812 - 创建WS2812驱动对象函数原型relayObj = WS2812(gpioObj, ledPixel)参数说明参数类型必选参数？说明gpioObjGPIO是WS2812控制引脚的GPIO对象。调用此函数前需确保对象已被openledPixelint否默认ledPixel为24个RGB点灯，开发者根据自己的实际需求创建返回值若WS2812对象创建成功，返回WS2812对象；否则抛出Exception示例代码importws2812fromdriverimportGPIOgpioObj=GPIO()gpioObj.open("ws2812")# 按照board.json中名为"ws2812"的设备节点的配置参数print("GPIO inited!")led=ws2812.WS2812(gpioObj)输出GPIO inited!set(r,g,b,index) - 点亮对应index的RGB点阵灯环函数功能：点亮对应index的RGB点阵灯环函数原型：WS2812.set(r,g,b,index)参数说明：参数类型说明rint红色灯珠的值，取值范围：0-255gint绿色灯珠的值，取值范围：0-255bint蓝色灯珠的值，取值范围：0-255indexint对应的灯珠索引号，范围：0～（ledPixel-1），例如：第一个灯珠的index为0返回值：无dot(r,g,b,time) - 将RGB点阵灯环逐个点亮，每次只有一个灯珠被点亮函数功能：将RGB点阵灯环逐个点亮，每次只有一个灯珠被点亮函数原型：WS2812.dot(r,g,b,time)参数说明：参数类型说明rint红色灯珠的值，取值范围：0-255gint绿色灯珠的值，取值范围：0-255bint蓝色灯珠的值，取值范围：0-255timeint逐个点灯的时间，单位（ms）返回值：无wipe(r,g,b,time) - 将RGB点阵灯环一一点亮函数功能：将RGB点阵灯环一一点亮函数原型：WS2812.wipe(r,g,b,time)参数说明：参数类型说明rint红色灯珠的值，取值范围：0-255gint绿色灯珠的值，取值范围：0-255bint蓝色灯珠的值，取值范围：0-255timeint逐次点灯的时间，单位（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返回值：无四、接口案例board.json 配置{"name":"board-name","version":"1.0.0","io":{"ws2812":{"type":"GPIO","port":0,"dir":"output","pull":"pulldown"}}}importws2812fromdriverimportGPIOgpioObj=GPIO()gpioObj.open("ws2812")# 按照board.json中名为"ws2812"的设备节点的配置参数print("GPIO inited!")led=ws2812.WS2812(gpioObj)whileTrue:led.dot(128,0,0,100)五、工作原理数据协议采用单线归零码的通讯方式，像素点在上电复位以后，DIN端接受从控制器传输过来的数据，首先送过来的24bit数据被第一个像素点提取后，送到像素点内部的数据锁存器，剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点，每经过一个像素点的传输，信号减少24bit。像素点采用自动整形转发技术，使得该像素点的级联个数不受信号传送的限制，仅仅受限信号传输速度影响。ws2812时序波形图：参考文献及购买链接[1]WS2812原理介绍[2]购买链接