====== Troyka Cap: инструкция по подключению, распиновка и схемы ======
Плата расширения [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki |Troyka Cap]] — это хаб для подключения [[:troyka-modules|Troyka-модулей]] через стандартные [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=troyka-shield&utm_medium=wiki |трёхпроводные шлейфы]]. Плата избавит вас от рассыпухи из мелких компонентов, пайки и макетной платы.
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap.5.jpg?nolink |}}
===== Видеообзор =====
{{youtube>9qKCkXrhCVE?large}}
===== Подключение и настройка =====
- Установите Troyka Cap сверху на Raspberry Pi.{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap.4.jpg?nolink |}}
- Подключите блок питания к разъему Troyka Cap.
- [[:rpi:installation|Заведите Raspberry Pi]].
- [[:rpi:installation#обновление_пакетов|Обновите программные пакеты]]
- [[:rpi:installation#интерфейс_i_c|Включите шину I²C]] и [[:rpi:installation#i_c_сканер|установите I²C сканер]]
- Просмотрите подключённые I²C-устройства:sudo i2cdetect -y 1
0x2a — это 42, адрес расширителя портов по умолчанию.{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_install.1.png?nolink |}}
- Установите библиотеку ''wiringpi'' для Pythonpip3 install wiringpi
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_install.2.png?nolink |}}
- Установите библиотеку ''TroykaCapPython'' для работы с расширителем портов:pip3 install git+https://github.com/amperka/TroykaCapPython
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_install.3.png?nolink |}}
На этом установка закончена, теперь смело переходите к экспериментам.
===== Примеры работы ======
Имена пинов на Troyka Cap относятся к нумерации ''Wiring Pi'', которая отличается от нумерации ''BCM'' в стартовом наборе [[amp>collection/raspberry-pi-kits?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki|Малина]]. Обратите внимание на [[:продукты:raspberry-troyka-cap#распиновка|распиновку Troyka Cap]]
==== Маячок ====
Повторите третий эксперимент из набора [[amp>collection/raspberry-pi-kits?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki |Малина]] — маячок. Только вместо облачка, подключите к Troyka Cap [[amp>product/troyka-led-module?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki | светодиод «Пиранья» (Troyka-модуль)]] через стандартный трёхпроводной шлейф к ''7'' цифровому пину.
=== Код для Python ===
# библиотека для работы с методами языка 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)
После запуска скрипта, светодиод начнёт мигать раз в пол секунды.
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_blink.gif?nolink |}}
==== Кнопочный выключатель ====
Добавьте к предыдущему эксперименту [[amp>product/troyka-button?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki | кнопку (Troyka-модуль)]] и подключите её к Troyka Cap через стандартный трёхпроводной шлейф к ''22'' цифровому пину.
=== Код для Python ===
# библиотека для работы с методами языка 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-troyka-cap:raspberry-troyka-cap_switch_lamp.gif?nolink |}}
==== Светильник с управляемой яркостью ===
Raspberry Pi обладает всего двумя каналами ШИМ и не имеет аналого-цифрового преобразователя. Troyka Cap решает проблему через встроенный микроконтроллер ARM Cortex M0. Модули подключаются через Troyka-контакты //GPIO-расширителя// (Expandera).
В качестве примера подключим [[amp>product/troyka-slider?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki |ползунковый потенциометр (Troyka-модуль)]] и [[amp>product/troyka-button?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki |Светодиод 5 мм (Troyka-модуль)]] к пинам Expandera ''3'' и ''6'' соответственно.
=== Код для Python ===
# библиотека для работы с расширителем портов
import gpioexp
# создаём объект для работы с расширителем портов
exp = gpioexp.gpioexp()
while True:
# считываем состояние потенциометра
pot = exp.analogRead(3)
# включаем яркость светодиода
# в зависимости от состояние потенциометра
exp.analogWrite(6, pot)
После запуска скрипта, яркость светодиода будет меняться в зависимости от перемещения ползунка слайдера.
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_brigtness_lamp.gif?nolink |}}
==== Аналоговая регулировка громкости ====
Выйдем за границы светодиодной робототехники. Сделаем ручную регулировку громкости одноплатника Raspberry Pi.
- Подключите [[amp>product/troyka-slider?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki |ползунковый потенциометр (Troyka-модуль)]] к пину ''3'' //GPIO-расширителя// (Expandera).
- Установите библиотеку ''pyalsaaudio'' для контроля уровня громкости:pip3 install pyalsaaudio
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_install.4.png?nolink |}}
- Запустите нижеприведённый скрипт:
=== Код для Python ===
# Библиотека для работы с расширителем портов
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)
Громкость в операционной системы будет меняться в зависимости от перемещения ползунка слайдера.
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_control_volume.gif?nolink |}}
===== Элементы платы =====
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_annotation.png?nolink |}}
==== Troyka-контакты Raspberry Py ====
==== Troyka-контакты GPIO-расширителя ====
==== Микроконтроллер ARM Cortex M0 ====
Мозгом GPIO-расширителя является мощный 32-разрядный микроконтроллер фирмы [[http://www.st.com|STMicroelectronics]] — {{:продукты:raspberry-troyka-cap:stm32f030f4p6_datasheet.pdf|STM32F030F4P6}} с вычислительном ядром ARM Cortex® M0.
==== Джампер выбора питания ====
На линии питания GPIO-расширителя есть возможность выбора питания установкой джампера:
* ''5V->V'' — на линии ''V'' будет присутствовать напряжение 5 вольт. Это удобно при подключении модулей с рабочим напряжением 5 вольт. Например [[amp>product/servo-fs90?utm_source=man&utm_campaign=troyka-shield&utm_medium=wiki | микросервопривод]] или [[amp>product/hc-sr04-ultrasonic-sensor-distance-module?utm_source=man&utm_campaign=troyka-shield&utm_medium=wiki | ультразвуковой дальномер]].
* ''3V3->V'' — на линии ''V'' — 3,3 вольта. Режим полезен при подключении аналоговых сенсоров. Так как диапазон входного напряжения для считывания аналоговых сенсоров от 0 до 3,3 вольт. Например [[amp>product/troyka-potentiometer?utm_source=man&utm_campaign=troyka-shield&utm_medium=wiki |потенциометр]] или [[amp>product/troyka-light-sensor?utm_source=man&utm_campaign=troyka-shield&utm_medium=wiki |датчик освещённости]].
==== Troyka-контакты SPI ====
Контакты для подключения устройств, которые общаются с управляющей электроникой по шине [[видеоуроки:8-интерфейсы-spi|SPI]].
==== Troyka-контакты I²C ====
Контакты для подключения устройств, которые общаются с управляющей электроникой по шине [[Видеоуроки:7-i2c-и-processing|I²C / TWI]].
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| L23 |Светодиод вывода ''23''. При подачи высокого уровня — светодиод включается, при низком — выключается. |
| ACT |Мигает при обмене данными между одноплатником Raspberry Pi и GPIO-расширителям портов |
==== Разъём внешнего питания ====
==== DC-DC преобразователь ====
Понижающий DC-DC {{:продукты:raspberry-troyka-cap:tps563200_datasheet.pdf|TPS563200}} с выходом 5 вольт, обеспечивает питание схемы. Максимальный выходной ток составляет 3 А.
===== Распиновка =====
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_pinout.png?nolink |}}
===== Принципиальная и монтажная схемы =====
{{:продукты:raspberry-troyka-cap:raspberry-troyka-cap_schematic.png?direct&350 |}}
{{ :продукты:raspberry-troyka-cap:raspberry-troyka-cap_layout.png?direct&300|}}
===== Характеристики =====
* Количество Troyka-контактов Raspbery Pi: 21
* Количество Troyka-контактов GPIO-расширителя: 8
* Troyka-контактов SPI: 3
* Troyka-контактов I²C: 2
* Напряжение логических уровней: 3,3 В
* Все пины толеранты к 5 вольтам
* Портов с поддержкой ШИМ: 8
* Разрядность ШИМ: 8 бит
* Портов с АЦП: 8
* Разрядность АЦП: 12 бит
* Максимальный ток контакта питания 5V: 3 А
* Максимальный ток контакта питания V: 1 А
* Допустимое входное напряжение от внешнего источника: 5–15 В
===== Ресурсы =====
* [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=troyka-cap&utm_medium=wiki|Troyka Cap]] в магазине
* [[https://github.com/amperka/TroykaCapPython|Библиотека для Raspberry Pi]]
* [[https://github.com/amperka/hardware-drawings/blob/master/raspberry-troyka-cap.svg|Векторное изображение модуля]]
* {{:продукты:raspberry-troyka-cap:tps563200_datasheet.pdf|Datasheet на понижающий DC-DC преобразователь}}