Troyka Cap

Плата расширения Troyka Cap — это хаб для подключения Troyka-модулей через стандартные трёхпроводные шлейфы. Плата избавит вас от рассыпухи из мелких компонентов, пайки и макетной платы.

Видеообзор

Подключения и настройка

  1. Установите Troyka Cap сверху на Raspberry Pi.
  2. Просмотрите подключённые I²C-устройства:
    sudo i2cdetect -y 1

    0x2a — это 42, адрес расширителя портов по умолчанию.

  3. Установите библиотеку wiringpi для Python
    pip3 install wiringpi

  4. Установите библиотеку TroykaCapPython для работы с расширителем портов:
    pip3 install git+https://github.com/amperka/TroykaCapPython

На этом установка закончена, теперь смело переходите к экспериментам.

Примеры работы

Имена пинов на Troyka Cap относятся к нумерации Wiring Pi, которая отличается от нумерации BCM в образовательном наборе малина. Обратите внимание на распиновку Troyka Cap

Маячок

Повторите третий эксперимент из набора малина — маячок. Только вместо облачка, подключите к Troyka Cap светодиод «Пиранья» (Troyka-модуль) через стандартный трёхпроводной шлейф к 7 цифровому пину.

Код для Python

blink.py
# библиотека для работы с методами языка Wiring (Arduino)
import wiringpi as wp{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_blink.gif?nolink |}}
# инициализация 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 цифровому пину.

Код для Python

switchLamp.py
# библиотека для работы с методами языка 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-контакты Expandera.

В качестве примера подключим ползунковый потенциометр (Troyka-модуль) и Светодиод 5 мм (Troyka-модуль) к пинам Expandera 3 и 6 соответственно.

Код для Python

brigtnessLamp.py
# библиотека для работы с расширителем портов
import gpioexp
# создаём объект для работы с расширителем портов 
exp = gpioexp.gpioexp()
 
while True:
    # считываем состояние потенциометра
    pot = exp.analogRead(3)
    # включаем яркость светодиода
    # в зависимости от состояние потенциометра
    exp.analogWrite(6, pot)

После запуска скрипта, яркость светодиода будет меняться в зависимости от перемещения ползунка слайдера.

Аналоговая регулировка громкости

Выйдем за границы светодиодной робототехники. Сделаем ручную регулировку громкости одноплатника Raspberry Pi.

  1. Подключите ползунковый потенциометр (Troyka-модуль) к пину Expandera 0.
  2. Установите библиотеку pyalsaaudio для контроля уровня громкости:
    pip3 install pyalsaaudio

  3. Запустите нижеприведённый скрипт:

Код для Python

controrVolume.py
# библиотека для работы с методами языка Wiring (Arduino)
import wiringpi as wp
# библиотека для контроля уровня громкости
import alsaaudio
# библиотека для работы с расширителем портов
import gpioexp
 
# инициализация WiringPi
wp.wiringPiSetup()
# создаём объект для работы с расширителем портов 
exp = gpioexp.gpioexp()
# создаём объект для работы с регулировкой громкости
mixer = alsaaudio.Mixer('PCM')
 
while True:
    # считываем состояние слайдера
    pot = exp.analogRead(0)
    # умножаем полученное значение со слайдера на 100
    # и преобразовываем переменную float в int
    volume = int(pot * 100)
    # устанавливаем громкость
    mixer.setvolume(volume)

Громкость в операционной системы будет меняться в зависимости от перемещения ползунка слайдера.

Элементы платы

Troyka-контакты Raspberry Py

Troyka-контакты GPIO-расширителя

Микроконтроллер ARM Cortex M0

Мозгом GPIO-расширителя является мощный 32-разрядный микроконтроллер фирмы STMicroelectronicsSTM32F030F4P6 с вычислительном ядром ARM Cortex® M0.

Джампер выбора питания

На линии питания GPIO-расширителя есть возможность выбора питания установкой джампера:

  • 5V→V — на линии V будет присутствовать напряжение 5 вольт. Это удобно при подключении модулей с рабочим напряжением 5 вольт. Например микросервопривод или ультразвуковой дальномер.
  • 3V3→V — на линии V — 3,3 вольта. Режим полезен при подключении аналоговых сенсоров. Так как диапазон входного напряжения для считывания аналоговых сенсоров от 0 до 3,3 вольт. Например потенциометр или датчик освещённости.

Troyka-контакты SPI

Контакты для подключения устройств, которые общаются с управляющей электроникой по шине SPI.

Troyka-контакты I²C

Контакты для подключения устройств, которые общаются с управляющей электроникой по шине I²C / TWI.

Светодиодная индикация

Имя светодиода Назначение
L23 Светодиод вывода 23. При подачи высокого уровня — светодиод включается, при низком — выключается.
ACT Мигает при обмене данными между одноплатником Raspberry Pi и GPIO-расширителям портов

Разъём внешнего питания

DC-DC преобразователь

Понижающий DC-DC TPS563200 с выходом 5 вольт, обеспечивает питание схемы. Максимальный выходной ток составляет 3 А.

Распиновка

Принципиальная и монтажная схемы

Характеристики

  • Количество Troyka-контактов Raspbery Pi: 21
  • Количество Troyka-контактов GPIO-расширителя: 8
  • Troyka-контактов SPI: 3
  • Troyka-контактов I²C: 2
  • Напряжение логических уровней: 3,3 В
  • Все пины толеранты к 5 вольтам
  • Портов с поддержкой ШИМ: 8
  • Разрядность ШИМ: 16 бит
  • Портов с АЦП: 8
  • Разрядность АЦП: 12 бит
  • Максимальный ток контакта питания 5V: 3 А
  • Максимальный ток контакта питания V: 1 А
  • Допустимое входное напряжение от внешнего источника: 5–15 В

Ресурсы