Плата расширения Troyka Cap — это хаб для подключения Troyka-модулей через стандартные трёхпроводные шлейфы. Плата избавит вас от рассыпухи из мелких компонентов, пайки и макетной платы.
sudo i2cdetect -y 1
0x2a — это 42, адрес расширителя портов по умолчанию.
wiringpi
для Pythonpip3 install wiringpi
TroykaCapPython
для работы с расширителем портов:pip3 install git+https://github.com/amperka/TroykaCapPython
На этом установка закончена, теперь смело переходите к экспериментам.
Имена пинов на Troyka Cap относятся к нумерации Wiring Pi
, которая отличается от нумерации BCM
в стартовом наборе Малина. Обратите внимание на распиновку Troyka Cap
Повторите третий эксперимент из набора Малина — маячок. Только вместо облачка, подключите к Troyka Cap светодиод «Пиранья» (Troyka-модуль) через стандартный трёхпроводной шлейф к 7
цифровому пину.
# библиотека для работы с методами языка Wiring (Arduino) import wiringpi as wp # инициализация WiringPi wp.wiringPiSetup() # пин 7 в режим выхода wp.pinMode(7, 1) while (True): # подаём на пин 7 высокий уровень wp.digitalWrite(7, 1) # ждём пол секунды wp.delay(500) # подаём на пин 7 низкий уровень wp.digitalWrite(7, 0) # ждём пол секунды wp.delay(500)
После запуска скрипта, светодиод начнёт мигать раз в пол секунды.
Добавьте к предыдущему эксперименту кнопку (Troyka-модуль) и подключите её к Troyka Cap через стандартный трёхпроводной шлейф к 22
цифровому пину.
# библиотека для работы с методами языка Wiring (Arduino) import wiringpi as wp # инициализация WiringPi wp.wiringPiSetup() # пин 22 в режим входа wp.pinMode(22, 0) # пин 7 в режим выхода wp.pinMode(7, 1) while (True): # если кнопка нажата if (not(wp.digitalRead(22))): # включаем светодиод wp.digitalWrite(7, 1) # если кнопка отжата else: # выключаем светодиод wp.digitalWrite(7, 0)
При нажатии на кнопку — светодиод загорится, а отпустить — погаснет.
Raspberry Pi обладает всего двумя каналами ШИМ и не имеет аналого-цифрового преобразователя. Troyka Cap решает проблему через встроенный микроконтроллер ARM Cortex M0. Модули подключаются через Troyka-контакты GPIO-расширителя (Expandera).
В качестве примера подключим ползунковый потенциометр (Troyka-модуль) и Светодиод 5 мм (Troyka-модуль) к пинам Expandera 3
и 6
соответственно.
# библиотека для работы с расширителем портов import gpioexp # создаём объект для работы с расширителем портов exp = gpioexp.gpioexp() while True: # считываем состояние потенциометра pot = exp.analogRead(3) # включаем яркость светодиода # в зависимости от состояние потенциометра exp.analogWrite(6, pot)
После запуска скрипта, яркость светодиода будет меняться в зависимости от перемещения ползунка слайдера.
Выйдем за границы светодиодной робототехники. Сделаем ручную регулировку громкости одноплатника Raspberry Pi.
3
GPIO-расширителя (Expandera).pyalsaaudio
для контроля уровня громкости:pip3 install pyalsaaudio
# Библиотека для работы с расширителем портов import gpioexp # Библиотека для контроля уровня громкости import alsaaudio # Создаём объект для работы с расширителем портов exp = gpioexp.gpioexp() # Создаём объект для работы с регулировкой громкости mixer = alsaaudio.Mixer('Master') while True: # Считываем состояние слайдера potValue = exp.analogRead(3) # Умножаем полученное значение со слайдера на 100 # и преобразовываем переменную float в int volume = int(potValue * 100) # Устанавливаем громкость mixer.setvolume(volume)
Громкость в операционной системы будет меняться в зависимости от перемещения ползунка слайдера.
Мозгом GPIO-расширителя является мощный 32-разрядный микроконтроллер фирмы STMicroelectronics — STM32F030F4P6 с вычислительном ядром ARM Cortex® M0.
На линии питания GPIO-расширителя есть возможность выбора питания установкой джампера:
5V→V
— на линии V
будет присутствовать напряжение 5 вольт. Это удобно при подключении модулей с рабочим напряжением 5 вольт. Например микросервопривод или ультразвуковой дальномер.3V3→V
— на линии V
— 3,3 вольта. Режим полезен при подключении аналоговых сенсоров. Так как диапазон входного напряжения для считывания аналоговых сенсоров от 0 до 3,3 вольт. Например потенциометр или датчик освещённости.Контакты для подключения устройств, которые общаются с управляющей электроникой по шине SPI.
Контакты для подключения устройств, которые общаются с управляющей электроникой по шине I²C / TWI.
Имя светодиода | Назначение |
---|---|
L23 | Светодиод вывода 23 . При подачи высокого уровня — светодиод включается, при низком — выключается. |
ACT | Мигает при обмене данными между одноплатником Raspberry Pi и GPIO-расширителям портов |
Понижающий DC-DC TPS563200 с выходом 5 вольт, обеспечивает питание схемы. Максимальный выходной ток составляет 3 А.