Micropython - это просто. Часть третья

20 марта 2020


В прошлой статье были упомянуты библиотеки, доступные сразу, "из коробки". Об одной из встроенных библиотек мы сегодня и поговорим. Это библиотека для работы с адресными RGB-светодиодами - neopixel.

Для начала напишем простую программу, которая по очереди окрасит светодиоды в красный, зелёный и синий цвета.

import machine, neopixel
import time

np = neopixel.NeoPixel(machine.Pin(2), 8)

def color(delay = 1):
    for color in [(100,0,0),(0,100,0),(0,0,100)]:
        for index in range(8):
            np[index] = color
            np.write()
            time.sleep(delay)

Для начала необходимо импортировать библиотеки: machine - для работы с пинами, neopixel - непосредственно для работы со светодиодами и библиотеку time - она понадобится для создания задержки.

Затем необходимо инициализировать нашу светодиодную ленту. Основным достоинством адресных светодиодов является то, что для управления необходим всего один пин. В функцию необходимо передать два параметра: пин, к которому подключен управляющий канал и количество светодиодов на плате. В моём примере плата из 8 светодиодов подключена ко второму пину.

Для установки цвета светодиода используется кортеж из трёх чисел, каждое из которых отвечает за канал определённого цвета: R,G,B.

Используя команду [index] = color мы указываем необходимый цвета, для светодиода с номером index, а команда np.write() - отображает цвета.

Теперь усложним задачу, если в первом примере светодиоды зажигались по очереди, то теперь попробуем сделать симуляцию вращения.

import machine, neopixel
import time

np = neopixel.NeoPixel(machine.Pin(2), 8)
    
def tic(first_index = 0):
    color = [(100,0,0),(0,100,0),(0,0,100),(100,100,100)]
    i = 0
    for index in range(first_index,8+first_index,2):
        np[index%8] = color[i]
        np[(1+index)%8] = color[i]
        i+=1
    np.write()


i = 0
while True:
    tic(i)
    i = (i+1)%8 
    time.sleep(0.2)

Функция tic(first_index = 0) раскрашивает каждую пару светодиодов начиная с заданного в разные цвета. Передвигая цвета по одному - то есть сдвигая на один элемент - можно добиться "симуляции" вращения.

C помощью светодиодных колец, таких как это, можно отображать различные данные. Например, в интернете очень популярны часы, сделанные с использованием адресных светодиодов, а скоро вы узнаете, как узнать время просто подключившись к интернету.


Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: