Raspberry Pi:Библиотеки/WiringPi/Драйверы DevLib/Драйвер для PiGlow
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Драйвер для PiGlow[1]
Библиотека WiringPi поддерживает расширительный модуль/драйвер devLib, позволяющий использовать вспомогательную плату PiGlow от Pimoroni.
Плата 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