Последние статьи из блога
- MegaD-485-TTL - изолированный конвертер индустриального класса
- MegaD-4VC - подключаем сигналы 0-10В и 4-20мА к контроллеру
- MegaD-4CM - высокоточный 4-х канальный измеритель тока
- MegaD-4US - 4-х канальный датчик напряжения на DIN-рейку
- Как я боролся с собаками с помощью нейросети
- Интеграция ультразвукового датчика скорости и направления ветра
- Установка WiFi-камеры на робота-газонокосилку
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
RPi-MegaD-Adapter - использование исполнительных модуей MegaD вместе с Raspberry Pi
28/06/2020 15:49:58
Микрокомпьютеры Raspberry Pi очень популярны у любителей домашней автоматизации. И это вполне закономерно. При скромной цене Raspberry Pi предлагает сравнительно неплохую производительность и имеет на борту все самое необходимое: USB, Ethernet, Wi-Fi, набор портов GPIO. К этому стоит добавить хорошую надежность и огромное сообщество помогающих друг другу пользователей.
RPi находит применение в совершенно разных областях Умного Дома. Например, я использовал этот мини-ПК для изготовления вызывной SIP-панели домофона, для автоматизации садового петушка, в качестве речевой "говорилки" сообщений сервера. Многие устанавливают Raspberry Pi даже в качестве сервера. В целом платформа предоставляет пользователям широкие возможности.
Но если со стандартными интерфейсами RPi (сеть, USB, камера, аудио) все понятно, то GPIO (универсальные порты ввода-вывода) часто остаются практически незадействованными. А ведь их достаточно много. Отчасти эта ситуация обусловлена сложностью подключения. Необходимо хотя бы на минимальном уровне разбираться в электроника, знать за какой конец держать паяльник и иметь под рукой всякие там резисторы и конденсаторы. Кроме этого, не вполне удобно реализовано в RPi питание через microUSB или определенные пины разъема GPIO.

RPi-MegaD-Adapter (shield)
Поэтому возникла идея изготовления адаптера (Shield'а), который бы обеспечивал возможность подключения к Raspberry Pi любых стандартных исполнительных модулей семейства MegaD. Так можно было бы легко задействовать все доступные порты микрокомпьютера. А RPi стал бы выступать в роли "головы" для исполнительных модулей MegaD вместо контроллера MegaD-2561.
Адаптер подключается к 40-пиновой гребенке RPi (типа "папа"), с помощью разъема GPIO IN (типа "мама"), смонтированного снизу платы.

Сверху адаптера установлено два 34-пиновых разъема XP1 и XP2 для подключения с помощью шлейфов модулей MegaD-8I7O-R, MegaD-8I7O-SD, MegaD-8I7O-S, MegaD-14-R, MegaD-14-IOR. Также установлен 40-пиновый повторитель GPIO. Это сделано для того, что иметь доступ к отдельным пинам Raspberry Pi, если используется только один исполнительный модуль.

Адаптер установлен на RaspberryPi 3
На плате адаптера смонтирован DC-DC преобразователь 12В->5В (2А). Таким образом, пользователю нужно подключить к клеммнику POWER IN только 12В от внешнего блока питания. Это напряжение будет использоваться и для питания исполнительных модулей MegaD и через преобразователь для питания Малинки. Дополнительно 5В через microUSB подключать не нужно! Зеленые светодиоды 12V OK и 5V OK сообщат о наличии напряжения и корректной работе конвертера питания. На плате также присутствует клеммник 5V IN/OUT. Этот клеммник можно использовать для подключения периферии, которой требуется 5В.
Крепежные отверстия на плате адаптера и RPi совпадает, что позволяет закрепить адаптер с помощью нейлоновых стоек и винтов.
Конфигурационные джамперы адаптера
Любой стандартный исполнительный модуль MegaD имеет на борту обвязку для 15 портов. Например MegaD-8I7O-R - это 7 стандартных входов с опторазвязкой, 7 релейных выходов 10А и 1 цифровой вход. Два исполнительных модуля - это обвязка 30 портов. Но у малины только 28 GPIO портов. Поэтому на плате адаптера смонтировано 4 джампера - по 2 на каждый разъем.
Джамперы JP1 и JP2
У Малины есть пины 27 и 28, которые именуются ID_SD и ID_SC (I2C ID EEPROM). Считается, что в процессе загрузки RPi пытается найти на этих пинах внешний EEPROM, в котором содержится информация для автоматической настройки GPIO. Одни пользователи считают, что к этим пинам не следует подключать что либо. Другие же не видят препятствий для использования GPIO0 и GPIO1 в своих целях. Поэтому с помощью джамперов JP1 и JP2 можно задать, подключать порты GPIO0/GPIO1 к портам P6 разъемов XP1/XP2 или нет.
Джампер установлен - соответствующий порт RPi соединен с портом P6 исполнительного модуля
Джампер снят - соответствующий порт RPi отключен от порта P6 исполнительного модуля
Джамперы JP3 и JP4
Так как общее количество портов, включая GPIO0 и GPIO1, у RPi всего 28, а не 30, необходимо было решить, какие порты исполнительного модуля отцепить. Но дело в том, что ценность обвязки порта во-многом зависит от типа исполнительного модуля. Так, например, в MegaD-14-R любой порт P0-P13 (реле) ценнее, чем P14 (цифровой вход). В то же время в MegaD-14-IOR все наоборот - релейный выход P14 ценнее любого входа P0-P13. Поэтому решено было установить два джампера, по одному на каждый исполнительный модуль, которые коммутирую GPIO26/GPIO20 либо на P0 либо на P14 исполнительного модуля.
Правое положение - соответствующий порт RPi подключен к P0
Левое положение - соответствующий порт RPi подключен к P14
Особенность портов GPIO02, GPIO03, GPIO14
Порты GPIO02 (P7/XP1) и GPIO03 (P7/XP2) снабжены в RPi аппаратной подтяжкой номиналом 1,8кОм. Это упрощает подключение различных цифровых датчиков. Но данная особенность приводит к тому, что если к разъемам XP1/XP2 подключены модули MegaD-8I7O или MegaD-14-R, то порт P7 будет включен, пока порт не GPIO02/GPIO03 не настроен как OUT (выход).
Частично эту проблему можно решить, добавив в /boot/config.txt следующую запись:
gpio=2,3=op,dl
Тогда порт P7 исполнительного модуля при старте Raspberry Pi моргнет всего на долю секунды, пока загрузчик не изменит тип порта на OUT.
Это стоит учитывать при подключении к P7 различных нагрузок. Если этот порт используется для управления освещением, то кратковременное включение при старте или перезагрузке Малинки не будет являться существенной проблемой. Ну а при желании можно легко удалить резисторы R23 и R24 (подтяжка GPIO02, GPIO03) с платы Raspberry Pi. Это полностью устранит данную особенность портов, если они используются как выходы.

Резисторы подтяжки портов GPIO02, GPIO03
Похожая ситуация с UART-портом GPIO14 (P8). Он также будет включаться при загрузке, но не из-за подтяжки, ее там попросту нет, а из-за того, что по умолчанию в Raspberry Pi включен консольный вывод через Serial-интерфейс (UART). Решается запуском raspi-config и отключением этой функции.

Отключение консольного вывода через raspi-config
Работа с ШИМ-портами
С обычными портами все более-менее понятно. Их можно конфигурировать как IN или OUT и управлять любым удобным способом.
Например, так:
echo 17 > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio17/direction echo "1" > /sys/class/gpio/gpio17/value
Необходимо учитывать, что при работе со входами исполнительных модулей MegaD, порт в режиме IN в RPi будет в состоянии "0" при отжатой кнопке и в состоянии "1" при нажатой.
Однако к RaspberryPi можно подключить и модуль MegaD-8I7O-SD с 3 диммируемыми портами. Для управления диммированием требуются ШИМ-порты.
В Малинке два независимых аппаратных ШИМ-порта: GPIO18 (выведен на XP1/P10) и GPIO19 (выведен на XP1/P10)
Для работы с этими портами проще всего использовать программу gpio из пакета wiringpi.
sudo apt-get install wiringpi gpio -g mode 18 pwm gpio -g pwm 18 512
Но один ШИМ-порт на разъем - это недостаточно. Ведь в MegaD-8I7O-SD три диммируемых канала.
Выход предлагает программа pi-blaster, которая позволяет наделить функцией PWM любой порт RPi.
sudo apt-get install git git clone https://github.com/sarfata/pi-blaster.git cd pi-blaster/ ./autogen.sh ./configure make sudo ./pi-blaster echo "18=0.2" > /dev/pi-blaster echo "24=0.5" > /dev/pi-blaster
Какие именно порты будут обрабатываться программой pi-blaster можно задать в исходниках (pi-blaster.c).
Крепление Raspberry Pi и адаптера к DIN-рейке
В текущий момент времени доступна масса различных способов крепления RPi к DIN-рейке. Многие изделия можно напечатать на 3D-принтере. Вот несколько вариантов.

Клипсы напечатаны на 3D-принтере

Держатель напечатан на 3D-принтере. Фото с другой стороны

Кронштейн универсальный с возможностью быстрого демонтажа платы
Не только Raspberry Pi
Важно отметить, что описанный шилд можно применять не только с Малиной. Его можно использовать с любым микро-ПК, который совместим с 40-пиновым GPIO-разъемом Raspberry Pi.
На текущий момент известны следующие совместимые микрокомпьютеры:
- Orange Pi
- Rock64 Media Board
- Asus Tinker Board
- Le Potato
- Banana Pi
- Odroid-C2 (?)
- Rock Pi 4 (?)
Соответствие портов Raspberry Pi и портов исполнительных модулей MegaD
RPi-MegaD-Adapter-ports.xls
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху
2024-10-29 13:56:32 | Andrey_B
Роман, в разделе "Купить".
2024-10-29 10:49:36 | Роман
Где его можно приобрести?
2020-10-13 19:06:15 | Илья
Жалко,что нет такого приятного и дружелюбного веб-интерфейса как на megaD
2020-10-13 08:51:41 | Andrey_B
Илья, это описано в документации, статьях, инструкциях для Raspberry Pi.
2020-10-13 07:04:49 | Илья
Добрый день! Как управлять портами / считывать данный с датчиков с модулей расширения, подключенных к малине?
2020-07-29 11:27:08 | Andrey_B
Виктор, скорее это не задел, а альтернатива. Микроконтроллеры хороши тем, что практически неубиваемы, надежны, почти ничего не потребляют. У них не может кончиться место на диске, у них не выйдет из строя накопитель, они не способны заразиться какой-нибудь гадостью, а замена контроллера занимает минуты, не требуя установки и настройки ОС. Но минусы тоже есть, которые связаны с ограниченным количеством ресурсов. Поэтому я не рассматриваю в данный момент мини-ПК как полноценную замену микроконтроллеру в среднесрочной перспективе, но как альтернативу или дополнительную возможность - почему бы и нет...
2020-07-29 11:08:46 | THK
Андрей, добрый день!
сразу напрашивается вопрос - это задел для аналога "Меги" на малине или аналогичных компов?
Кстати, Orange Pi Zero H2 с 512мб, OS Armbian v 5.59 работает 24х7 уже второй год без каких либо проблем. На ней крутятся 2 демона для сигнализации CCU825 - СCUProxy и мой из этой темы https:/www.ab-log.ru/forum/viewtopic.php?f=1&t=1527&start=20
ИМХО, конечно, при тех ценах на Orange Pi, которые есть сейчас, есть смысл рассматривать их в качестве головы для автономных девайсов.
2020-07-02 22:31:28 | Andrey_B
Владимир, я их не сам печатал. Покупал в словацком Интернет-магазине. Но там не дают исходников. Только сами изделия можно приобрести.
2020-07-01 15:57:51 | Владимир
А у Вас есть файлы для 3D-печати креплений для малины на дин-рейку?Не поделитесь, на почту?