====== 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 преобразователь}}