📜  neopixel thonny python (1)

📅  最后修改于: 2023-12-03 15:03:09.584000             🧑  作者: Mango

介绍Neopixel在Thonny Python中的应用

简介

Neopixel是一款由Adafruit开发的RGB LED灯条。它使用单个数据线来控制多个灯珠的颜色和亮度。它广泛应用于DIY灯光、环境效果装置等领域。Thonny是一款Python IDE,它提供了Python编程环境和丰富的工具支持,包括代码补全、调试、线上代码分享等功能。

安装Neopixel库

在使用Neopixel之前,需要在Thonny Python中先安装相关的库。打开终端窗口,在命令行中输入下面的命令进行安装:

sudo pip install adafruit-circuitpython-neopixel
示例代码

下面是一个基于Neopixel的简单动画程序。它通过循环控制灯光的闪烁模式和颜色变化:

import time
import board
import neopixel

led_count = 8                # 灯珠数量
led_pin = board.D18          # 灯珠所在的引脚
led_brightness = 0.2         # 亮度,0-1之间
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]  # 红、绿、蓝三种颜色

# 初始化灯光
pixels = neopixel.NeoPixel(led_pin, led_count, brightness=led_brightness, auto_write=False)

# 主循环
while True:
    for color in colors:
        for i in range(led_count):
            pixels[i] = color
            pixels.show()
            time.sleep(0.05)
        for i in range(led_count):
            pixels[i] = (0, 0, 0)
            pixels.show()
            time.sleep(0.05)
代码说明

1. 导入所需库

import time
import board
import neopixel

这里导入了三个库:time库用于控制节奏和时间;board库用于设置和获取引脚的编号和名称;neopixel库则提供了控制Neopixel灯带的基本功能。

2. 设置灯光参数

led_count = 8                # 灯珠数量
led_pin = board.D18          # 灯珠所在的引脚
led_brightness = 0.2         # 亮度,0-1之间
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]  # 红、绿、蓝三种颜色

这里我们设置了三个灯光参数:led_count表示灯珠的数量;led_pin表示灯珠所在的引脚;led_brightness表示灯光的亮度,其值在0-1之间;colors为我们定义的三种颜色,分别是红、绿、蓝。

3. 初始化灯光

pixels = neopixel.NeoPixel(led_pin, led_count, brightness=led_brightness, auto_write=False)

这里通过调用neopixel.NeoPixel函数初始化了一个Neopixel对象。其中led_pinled_count是前面设置的引脚和灯珠数量;brightness表示灯光的亮度;auto_write表示是否自动刷新灯光。这里我们将auto_write设置为False,表示需要手动调用pixels.show()方法来更新灯光。

4. 主循环

while True:
    for color in colors:
        for i in range(led_count):
            pixels[i] = color
            pixels.show()
            time.sleep(0.05)
        for i in range(led_count):
            pixels[i] = (0, 0, 0)
            pixels.show()
            time.sleep(0.05)

这里的主循环控制了灯光的闪烁和颜色变化。外层循环遍历了三种颜色,内层循环则遍历了所有的灯珠。每次循环时,将当前颜色赋值给当前灯珠,然后调用pixels.show()方法来刷新灯光。每当一种颜色遍历完后,将灯光设为全灭,再次刷新灯光。这里每种颜色的遍历时间间隔为0.05s。

结论

本次介绍了如何在Thonny Python中使用Neopixel库,以及如何控制灯光的闪烁和颜色变化。通过学习本文,我们可以开发出更加丰富的基于Neopixel的DIY装置和艺术品。