用MicroPython玩Newbit(六)-- neopixle

本文介绍如何使用MicroPython控制NeoPixel彩灯,并提供了一个示例程序,该程序能够使彩灯随机显示颜色。此外,还介绍了NeoPixel对象的创建方法及如何更新显示效果。

microbit/newbit的MicroPython固件中,内置了neopixel彩灯的控制,我们可以使用任意一个GPIO去控制neopixel,支持任意数量的彩灯。

import neopixel

np = neopixel.NeoPixel(pin1, 8)
np[0] = (0, 0, 200)
np[1] = (0, 50, 100)
np[2] = (200, 0, 0)
np.show()

函数 neopixel.NeoPixel(PIN, NUM) 用来创建 neopixel 对象,它有两个参数,第一个是GPIO,第二个是彩灯的数量。

neopixel 对象是一个元组列表,每个列表项都是由 RGB 三种颜色组成的元组。RGB参数的范围是 0-255,三种颜色组合起来就有 256 x 256 x 256 = 1.67M种颜色。

颜色参数写入列表后并不能改变彩灯,还需要调用函数 show(),才会更新。如果要清除彩灯,可以调用函数 clear().

官方的例子,随机显示彩灯。

"""
    neopixel_random.py

    Repeatedly displays random colours onto the LED strip.
    This example requires a strip of 8 Neopixels (WS2812) connected to pin0.

"""
from microbit import *
import neopixel
from random import randint

# Setup the Neopixel strip on pin0 with a length of 8 pixels
np = neopixel.NeoPixel(pin0, 8)

while True:
    #Iterate over each LED in the strip

    for pixel_id in range(0, len(np)):
        red = randint(0, 60)
        green = randint(0, 60)
        blue = randint(0, 60)

        # Assign the current LED a random red, green and blue value between 0 and 60
        np[pixel_id] = (red, green, blue)

        # Display the current pixel data on the Neopixel strip
        np.show()
        sleep(100)

 

图形化编程
003412em3kenf3hy323heh.jpg 

对应的mpy代码:
 

import neopixel
import random
from microbit import *


np = neopixel.NeoPixel(pin0, 8)
while True:
  np[(random.randint(0, 7))] = ((random.randint(1, 50)), (random.randint(1, 50)), (random.randint(1, 50)))
  np.show()
  sleep(100)


如果直接用 microbit/newbit的3.3V供电,注意不要控制太多LED,因为LDO的输出功率有限,很容易造成过热保护。超过8个LED最好就用外部电源。

转载于:https://my.oschina.net/shaoziyang/blog/898558

本设计使用由网页控制的MicroPython驱动的节日灯装饰!通过MicroPython和智能节日灯来庆祝节日,这些节日灯都是通过网络控制的!该项目向您展示如何使用在ESP8266 WiFi微控制器上运行的MicroPythonNeoPixels设置动画。只需在网页上选择动画的颜色和类型,点击一个按钮,您的节日灯就会充满动感的节日欢呼。智能节日灯甚至可以记住他们上次动画时的动画。这个项目很好地展示了ESP8266和MicroPython的优势,例如使用WebREPL轻松访问WiFi并将数据存储在MicroPython的文件系统中。 本指南需要以下硬件: ESP8266运行MicroPython。 该羽毛ESP8266是完美的,如果你没有一个板呢,但是任何ESP8266板应该工作。有关如何在电路板上运行MicroPython的详细信息,请参阅电路板指南中的加载MicroPythonNeoPixels。 您可以使用任何类型的 NeoPixel,如条带,矩阵等。但是请确保使用RGB而不是RGBW像素,因为此项目的代码仅假设RGB像素。像30像素/米NeoPixels这样的三到四米长的条带非常适合环绕一个小花圈或小树。查看NeoPixel Uberguide,了解有关不同类型NeoPixels以及如何为其供电的更多信息。 5V电源。 你需要一个5伏电源,有足够的电流来驱动所有像素。每个NeoPixel都可以提供高达60mA的电流,因此请确保获得足够大的电源以支持所有像素!这款5V 10amp电源可以在全亮度下处理多达约150个NeoPixels(将一个插孔插孔 连接到接线端子适配器,以便轻松连接电源)。查看NeoPixel Uberguide以获取更多电源选项。 大电容保护像素。 正如NeoPixel Uberguide所提到的那样,您可能需要在电源连接处添加一个大电容,以防止突然出现电源时损坏像素。这里的4700uF 10V电解电容应该可以很好地工作。 焊接工具。 您可能需要焊接一些NeoPixel和其他连接,因此请务必使用烙铁,焊料和电线。如果您不熟悉焊接,请查看优秀焊接指南。 接线如下所示连接硬件: 电源接地/ -NeoPixel GND /地和羽毛HUZZAH ESP8266 GND /地。 电源5V / +至NeoPixel + 5V和羽毛HUZZAH ESP8266 USB引脚。对于其他ESP8266板,请检查其规格,看看哪个引脚可以支持运行电路板的5V电源输入。 羽毛HUZZAH ESP8266针脚15到NeoPixel Din /输入。您可以使用ESP8266上的大多数其他GPIO引脚(引脚16除外),但本指南假设您使用引脚15。 如果您使用电容来保护像素(强烈推荐!),请按如下方式连接:电容器阴极(带条纹一侧的引脚)为电源接地/ -。 电容器阳极到电源5V / +。 如果您使用圆柱形插孔连接到端子排适配器,最简单的方法是将电容器直接连接到下面的端子(确保带有条纹的一侧连接到负极/接地端子!) 接下来就进入软件部分了 设置MicroPython和WebREPL首先确保您为您的主板运行最新版本的ESP8266 MicroPython。有关将MicroPython加载到ESP8266板上的更多信息,请查看如何在电路板指南中加载MicroPython。 请注意,在本指南编写时,当前版本的ESP8266 MicroPython是1.8.6。更高版本可能会更改WebREPL,因此如果遇到意外问题,请尝试返回1.8.6版本。 接下来按照本指南设置ESP8266板上的WebREPL。请注意,最新的1.8.6版MicroPython略微改变了WebREPL的设置方式,因此请按照指南或官方说明启用WebREPL。在您的ESP8266运行MicroPython并且可以连接到其WebREPL之前,请不要继续 加载MicroPython代码代码在文件中请自行下载 控制灯现在为了一些乐趣,您已准备好控制网页上的灯光!在Web浏览器中打开lights.html页面(请注意,该页面已使用最新的Chrome浏览器进行了测试,但它应该可以与其他现代Web浏览器一起使用,例如Safari和IE 8+)。 你应该看到页面加载,看起来像: 确保您的计算机已连接到ESP8266主板的WiFi网络,就像您使用WebREPL时一样(但请确保您没有在另一个选项卡或浏览器中连接到WebREPL!)。 将电路板URL设置为用于访问WebREPL的URL(如果您不确定,则保留默认值,这是大多数WebREPL连接使用的)。 在密码字段中输入您在设置和访问WebREPL时设置的密码。 您可以使用页面上的字段控制灯光的动画: 动画 - 此下拉菜单控制灯光是否会以实心脉冲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值