Raspberry Pi:Библиотеки/WiringPi/Драйверы DevLib/Драйвер для PiGlow

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Драйвер для 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

См.также

Внешние ссылки