Raspberry Pi:Библиотеки/WiringPi/Драйверы DevLib/Драйвер для PiGlow: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 17: | Строка 17: | ||
== Подключение == | == Подключение == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
#include <wiringPi.h> | #include <wiringPi.h> | ||
#include <piGlow.h> | #include <piGlow.h> | ||
Строка 24: | Строка 24: | ||
== Инициализация == | == Инициализация == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
piGlowSetup (int clear) ; | piGlowSetup (int clear) ; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
Утилита '''piglow''' работает через командную строку и позволяет выполнять следующие команды: | Утилита '''piglow''' работает через командную строку и позволяет выполнять следующие команды: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
piglow off # выключить все светодиоды | piglow off # выключить все светодиоды | ||
piglow red 50 # включить 3 светодиода на 50% | piglow red 50 # включить 3 светодиода на 50% | ||
Строка 58: | Строка 58: | ||
* Перед работой с девайсами, использующими шину '''I2C''', вам нужно загрузить соответствующие модули ядра. Для этого впишите в командную строку | * Перед работой с девайсами, использующими шину '''I2C''', вам нужно загрузить соответствующие модули ядра. Для этого впишите в командную строку | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c | gpio load i2c | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 64: | Строка 64: | ||
* Если это единственный '''I2C'''-девайс, подключенный к '''Pi''' (а так, скорее всего, и будет, разве что вы не используете макетную плату), то частоту нужно выставить на '''400 КГц'''. Для этого впишите следующее: | * Если это единственный '''I2C'''-девайс, подключенный к '''Pi''' (а так, скорее всего, и будет, разве что вы не используете макетную плату), то частоту нужно выставить на '''400 КГц'''. Для этого впишите следующее: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c 400 | gpio load i2c 400 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 71: | Строка 71: | ||
* Если у вас '''Pi''' версии '''1''', команду '''i2cdetect''' нужно использовать так: | * Если у вас '''Pi''' версии '''1''', команду '''i2cdetect''' нужно использовать так: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect -q -y 0 | i2cdetect -q -y 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 77: | Строка 77: | ||
, а если у вас '''Pi''' версии '''2''', то так: | , а если у вас '''Pi''' версии '''2''', то так: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect -q -y 1 | i2cdetect -q -y 1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 83: | Строка 83: | ||
* Команда '''gpio''' поддерживает команду '''i2cdetect''' и автоматически подстраивается под версию платы. Просто впишите: | * Команда '''gpio''' поддерживает команду '''i2cdetect''' и автоматически подстраивается под версию платы. Просто впишите: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio i2cd | gpio i2cd | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 19:52, 23 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
![]() |
Черновик |
Драйвер для PiGlow[1]
Библиотека WiringPi поддерживает расширительный модуль/драйвер devLib, позволяющий использовать вспомогательную плату PiGlow от Pimoroni.
![](/ruwiki/images/f/fc/Piglow.jpg)
Плата PiGlow оснащена светодиодным контроллером SN3218 (работает через шину I2C) и 18 светодиодами, сгруппированными в 3 «ножки» по 6 светодиодов. Цвета светодиодов на разных ножках соответствуют друг другу: сначала красный светодиод (на самом краю), потом желтый, оранжевый, зеленый, синий и белый (в центре).
Драйвер devLib позволяет менять яркость отдельных светодиодов, а также отдельной «ножки» или «кольца».
Подключение
#include <wiringPi.h>
#include <piGlow.h>
Инициализация
piGlowSetup (int clear) ;
Инициализирует драйвер devLib для PiGlow. Перед использованием этой функции убедитесь, что загрузили модуль ядра для шины I2C, и если не загрузили, воспользуйтесь для этого программой gpio. После этого вам, возможно, придется запускать свою программу с правами root-пользователя (т.е. через sudo).
Параметр clear – это true или false. Если поставить true, то PiGlow будет инициализирована с выключенными светодиодами.
Функции
Примеры
Примеры использования этого драйвера ищите в папке «~wiringPi/examples/PiGlow». Там же находится простая утилита piglow. Чтобы использовать эти программы, сначала их нужно, как и обычно, скомпилировать. В видео ниже показано, как работает программа piGlow1.
Утилита piglow работает через командную строку и позволяет выполнять следующие команды:
piglow off # выключить все светодиоды
piglow red 50 # включить 3 светодиода на 50%
piglow all 75 # включить все светодиоды на 75%
piglow leg 0 25 # включить ножку 0 на 25%
piglow ring 3 100 # включить кольцо 3 на 100%
piglow led 2 5 100 # включить светодиод на ножке 2 и кольце 5 на 100%
Примечания
- Перед работой с девайсами, использующими шину I2C, вам нужно загрузить соответствующие модули ядра. Для этого впишите в командную строку
gpio load i2c
- Если это единственный I2C-девайс, подключенный к Pi (а так, скорее всего, и будет, разве что вы не используете макетную плату), то частоту нужно выставить на 400 КГц. Для этого впишите следующее:
gpio load i2c 400
- Чтобы проверить, видит ли ваша Pi чип SN3218, просканируйте шину I2C при помощи программы i2cdetect. Чип SN3218 должен появиться с адресом «0x54».
- Если у вас Pi версии 1, команду i2cdetect нужно использовать так:
i2cdetect -q -y 0
, а если у вас Pi версии 2, то так:
i2cdetect -q -y 1
- Команда gpio поддерживает команду i2cdetect и автоматически подстраивается под версию платы. Просто впишите:
gpio i2cd
- Драйвер библиотеки WiringPi для SN3218 знает, какую версию Pi вы используете, поэтому никакой предварительной настройки делать не нужно. Ваш код будет работать на обеих версиях Raspberry Pi.
- На внутреннем уровне devLib-драйвер для PiGlow добавляет к «карте контактов» WiringPi 18 дополнительных контактов. Базовым номером (параметр pinBase) для них нужно выставить что-то около «577». Это не должно стать проблемой, потому что PiGlow сделан таким образом, чтобы быть единственным периферийным устройством, подключенным к Pi. Но если у вас есть макетная плата, позволяющая подключить к Pi другие устройства, то параметр pinBase не должен быть в диапазоне между «577» и «595».
Видео-демонстрация
https://www.youtube.com/watch?v=E5mZJybKseo