diff --git a/docs/ru/leds.md b/docs/ru/leds.md index 7ccb1c66..e230cab6 100644 --- a/docs/ru/leds.md +++ b/docs/ru/leds.md @@ -2,7 +2,7 @@ ## Подключение и определение типа ленты -Есть два основных типа адресуемых светодиодов: WS2812 и WS2812B. Принцип управления один и тот же, однако тайминги разные. Найдите на ленте чип светодиода и определите сколько у него ножек: 6 или 4. Если ножек 6, то это WS2812, если 4 - то WS2812B или его аналог SK6812. +Есть два основных типа адресуемых светодиодов: WS2812 и WS2812B. Принцип управления один и тот же, однако тайминги разные. Найдите на ленте чип светодиода и определите сколько у него ножек: 6 или 4. Если ножек 6, то это WS2812, если 4 – то WS2812B или его аналог SK6812. leds @@ -14,38 +14,38 @@ | 5V | 5V | | DIN | GPIO21 или GPIO31 | -Типы лент для обозначения ленты в коде описаны в [файле](https://github.com/jgarff/rpi_ws281x/blob/master/ws2811.h). Основные типы лент - это WS2812\_STRIP \(для WS2812\) и SK6812\_STRIP \(для WS2812B или SK6812\). +Типы лент для обозначения ленты в коде описаны в [файле](https://github.com/jgarff/rpi_ws281x/blob/master/ws2811.h). Основные типы лент – это WS2812\_STRIP \(для WS2812\) и SK6812\_STRIP \(для WS2812B или SK6812\). ## Установка библиотеки для работы со светодиодной лентой -Определите папку, в которой будут находиться файлы библиотеки, и открыть путь к этой папке в терминале. По-умолчанию можно использовать домашнюю папку, для перехода в неё нужно выполнить команду +Определите папку, в которой будут находиться файлы библиотеки, и открыть путь к этой папке в терминале. По-умолчанию можно использовать домашнюю папку, для перехода в неё нужно выполнить команду: -```(bash) +```bash cd ~ ``` -Склонируйте репозиторий библиотеки для работы с led лентами на Raspberry Pi +Склонируйте репозиторий библиотеки для работы с led лентами на Raspberry Pi: -```(bash) +```bash git clone https://github.com/jgarff/rpi_ws281x.git ``` -Установите [Scons](https://ru.wikipedia.org/wiki/SCons) и [Swig](https://ru.wikipedia.org/wiki/SWIG) +Установите [Scons](https://ru.wikipedia.org/wiki/SCons) и [Swig](https://ru.wikipedia.org/wiki/SWIG): -```(bash) +```bash sudo apt-get install scons python-dev swig ``` -Соберите библиотеку с помощью Scons \(команда выполняется внутри папки с исходным кодом библиотеки\) +Соберите библиотеку с помощью Scons \(команда выполняется внутри папки с исходным кодом библиотеки\): -```(bash) +```bash cd rpi_ws281x scons ``` -Соберите python обёртку библиотеки с помощью Swig и установите её для возможности использования в своих python скриптах. +Соберите Python-обёртку библиотеки с помощью Swig и установите её для возможности использования в своих Python-скриптах. -```(bash) +```bash cd python sudo python ./setup.py build sudo python ./setup.py install @@ -53,13 +53,13 @@ sudo python ./setup.py install ## Пример программы для светодиодной ленты на RPI3 -Откройте в текстовом редакторе файл strandtest.py из папки python/examples \(находится в папке с библиотекой\) +Откройте в текстовом редакторе файл `strandtest.py` из папки `python/examples` \(находится в папке с библиотекой\): -```(bash) +```bash nano strandtest.py ``` -Найдите участок кода с настройками ленты +Найдите участок кода с настройками ленты: ```(bash) # LED strip configuration: @@ -76,7 +76,7 @@ LED_STRIP = ws.WS2811_STRIP_GRB # Strip type and colour ordering Поправьте настройки для работы с лентой и сохраните файл. Чтобы использование ленты не мешало работе других устройств на Raspberry Pi, рекомендуется использовать следующие настройки \(настройки подходят для ленты в комплекте с Клевер 3\): -```(bash) +```bash # LED strip configuration: LED_COUNT = 30 # Number of LED pixels. LED_PIN = 21 # GPIO pin connected to the pixels. @@ -88,9 +88,9 @@ LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53 LED_STRIP = ws.SK6812_STRIP # Strip type and colour ordering ``` -Запустите тестовую программу, используя права администратора +Запустите тестовую программу, используя права администратора: -```(bash) +```bash sudo python strandtest.py ``` @@ -98,9 +98,9 @@ sudo python strandtest.py ## Совместимость с ROS и Python -При запуске программы с помощью sudo пользовательское окружение изменяется и появляются ошибки импорта библиотек, т.к. в окружении отсутствуют необходимые пути. Чтобы добавить в окружение пути к библиотекам python и пакетам ROS, необходимо добавить в файл /etc/sudoers следующие строки: +При запуске программы с помощью sudo пользовательское окружение изменяется и появляются ошибки импорта библиотек, т.к. в окружении отсутствуют необходимые пути. Чтобы добавить в окружение пути к библиотекам Python и пакетам ROS, необходимо добавить в файл `/etc/sudoers` следующие строки: -```(bash) +```bash Defaults env_keep += "PYTHONPATH" Defaults env_keep += "PATH" Defaults env_keep += "ROS_ROOT" @@ -113,18 +113,18 @@ Defaults env_keep += "ROS_LOG_DIR" ## Функции для работы со светодиодной лентой -Для подключения библиотеки и её корректной работы требуется подключить следующие модули: neopixel - для работы ленты, time - для управления задержками, sys и signal для прерываний и формирования управляющего сигнала. +Для подключения библиотеки и её корректной работы требуется подключить следующие модули: neopixel - для работы ленты, time – для управления задержками, sys и signal для прерываний и формирования управляющего сигнала. -```(python) +```python from neopixel import * import time import signal import sys ``` -Для работы с лентой необходимо создать объект типа **Adafruit\_NeoPixel **и инициализировать библиотеку: +Для работы с лентой необходимо создать объект типа **Adafruit_NeoPixel** и инициализировать библиотеку: -```(python) +```python # Создание объекта NeoPixel c заданной конфигурацией strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT) # Инициализация библиотеки, должна быть выполнена перед другими функциями @@ -133,20 +133,20 @@ strip.begin() Основные функции, которые используются для управления лентой: -* **numPixels\(\)** - Возвращает количество пикселей в ленте. Удобно для цикличного управления всей лентой целиком. -* **setPixelColor\(pos, color\)** - Устанавливает цвет пикселя в позиции **pos** в цвет **color**. Цвет должен быть 24 битным значением, где первые 8 бит - красный цвет \(red\), следующие 8 бит - зелёный цвет \(green\) и последние 8 бит - голубой \(blue\). Для получения значения **color** можно использовать функцию **Color\(red, green, blue\)**, которая составляет это значение из 3х компонент. Каждый компонент должен находиться в диапазоне 0-255, где 0 - отсутствие цвета, а 255 - наибольшая доступная яркость компонента в светодиодном модуле. -* **setPixelColorRGB\(pos, red, green, blue\)** - Устанавливает цвет пикселя в позиции pos в цвет, состоящий из компонент **red, green, blue**. Каждый компонент должен находиться в диапазоне 0-255, где 0 - отсутствие цвета, а 255 - наибольшая доступная яркость компонента в светодиодном модуле. -* **show\(\)** - Обновляет состояние ленты. Только после её использования все программные изменения перемещаются на светодиодную ленту. +* `numPixels()` - возвращает количество пикселей в ленте. Удобно для цикличного управления всей лентой целиком. +* `setPixelColor(pos, color)` – устанавливает цвет пикселя в позиции `pos` в цвет `color`. Цвет должен быть 24 битным значением, где первые 8 бит - красный цвет \(red\), следующие 8 бит - зелёный цвет \(green\) и последние 8 бит - голубой \(blue\). Для получения значения `color` можно использовать функцию `Color(red, green, blue)`, которая составляет это значение из 3х компонент. Каждый компонент должен находиться в диапазоне 0-255, где 0 – отсутствие цвета, а 255 – наибольшая доступная яркость компонента в светодиодном модуле. +* `setPixelColorRGB(pos, red, green, blue)` – устанавливает цвет пикселя в позиции pos в цвет, состоящий из компонент `red`, `green`, `blue`. Каждый компонент должен находиться в диапазоне 0–255, где 0 – отсутствие цвета, а 255 – наибольшая доступная яркость компонента в светодиодном модуле. +* `show()` – обновляет состояние ленты. Только после её использования все программные изменения перемещаются на светодиодную ленту. Остальные функции можно обнаружить, вызвав команду -```(bash) +```bash pydoc neopixel ``` Результат выполнения команды: -```(bash) +```bash Help on module neopixel: NAME