В своём блоге я рассмотрел десятки контроллеров разных компаний, среди которых Kincony, Norvi, RobotDyn, LILYGO и т. д., всё это замечательные изделия, но есть у них одна общая черта — все они созданы зарубежными производителями. Само по себе это неплохо, но хотелось бы уже познакомиться с чем-то, созданным нашими IT-умельцами.
На самом деле, в России разрабатывается и производится множество различных и весьма интересных контроллеров, сегодня мы познакомимся с одним из них — это контроллер Lavritech V7.1 Lite на основе ESP32, созданный для рынка DIY автоматизации. То есть как раз того направления, которое интересно мне и постоянным читателям моего блога.
Lavritech V7.1 Lite интересен ещё и тем, что совместим с блоками популярной экосистемы контроллеров Wirenboard и имеет необычную модульную архитектуру, что резко выделяет его на фоне ранее рассмотренных «обычных» контроллеров. По сути, это «младший брат Wirenboard» на ESP32 с архитектурой а-ля IBM PC, но только в мире контроллеров.
Ну и ещё одна отличная новость: для того, чтобы узнать об этом чуде инженерной мысли, вам достаточно просто нажать на кнопку «Читать дальше», что я и предлагаю вам незамедлительно сделать (уже завидую).
Итак, приступим…
Немного о компании Lavritech
Для начала немного о компании (торговой марке) Lavritech. На данный момент это небольшой стартап занимающийся разработкой, производством и продажей контроллеров, дополнительных блоков и модулей к ним под своей торговой маркой Lavritech.
Сам стартап возник не «из воздуха», а является одним из подразделений уже давно и успешно работающей инжиниринговой компании, одним из направлений деятельности которой является разработка, производство и установка светодиодных экранов для магазинов, торговых площадок и т. д. То есть и у команды стартапа уже есть необходимый для успешной работы опыт как по разработке электронных изделий, так и по их упаковке (в широком смысле) и продаже. Что вселяет определённые надежды как в отношении архитектуры (схемных решений), так функционала и качества изделий под торговой маркой Lavritech.
На этом о компании всё, переходим к рассмотрению технических вопросов и разбору самих контроллеров.
Причём тут Wirenboard?
Пояснение. Для тех, кто не знает, Wirenboard — это целая линейка популярных контроллеров, основанных на Linux и предназначенных для DIY рынка и «более серьёзного» рынка системных интеграторов. Экосистема Wirenboard включает в себя очень развитую номенклатуру дополнительных блоков и модулей расширения для основных контроллеров.
Чтобы понять причём тут Wirenboard и какую роль он тут играет, сначала нужно сказать несколько слов об идеологии контроллеров Lavritech. Кроме всего прочего (о чём мы поговорим далее), одними из краеугольных камней идеологии Lavritech являются следующие принципы:
Широкий набор функций. Контроллер должен обладать максимальным набором функций, что достигается возможностью подключения (как внутренних, так и внешних) блоков и модулей, то есть модульной архитектурой.
Минимальная стоимость и быстрота разработки. Максимальное (по возможности) использование готовых блоков и модулей сторонних разработчиков и производителей. То же касается и программного обеспечения.
Совместная разработка. Стандартизация разъёмов, интерфейсов, габаритных размеров и посадочных мест блоков позволяет создать экосистему (и рынок) дополнительных модулей по примеру плат IBM PC.
Блоки экосистемы Wirenboard (номенклатура содержит десятки готовых блоков на все случаи жизни)
На момент разработки концепции контроллеров Lavritech, уже существовала продуманная и хорошо себя зарекомендовавшая экосистема Wirenboard, где уже были как готовые блоки и модули, так и доступные спецификации разъёмов и интерфейсов экосистемы.
Разработчики Lavritech не стали изобретать велосипед и искать лучшего от уже вполне хорошего решения и просто решили взять стандарт блоков и модулей Wirenboard за основу стандарта своей собственной экосистемы Lavritech.
В результате для любого контроллера Lavritech стали доступны десятки уже готовых и продающихся блоков и модулей Wirenboard (там просто невероятно широкий ассортимент) и, кроме этого, доступны также оригинальные модули разработки самой Lavritech и блоки и модули (сделанные по стандарту Wirenboard) от большого числа энтузиастов и отдельных разработчиков.
Модули («платы») для внутренней установки в контроллер (доступны десятки готовых модулей от Wirenboard, Lavritech и прочих производителей).
Так сказать, шах и мат в три хода — покупаете (относительно недорогой) контроллер Lavritech V7.1 Lite, выбираете нужные вам блоки и модули из десятков (если не сотен) доступных, подключаете их в стандартные разъёмы — и вуаля — контроллер вашей мечты готов!
Поскольку интерфейсы, габариты и посадочные места Wirenboard и Lavritech одинаковые и совместимые, можно сказать, что де-факто контроллеры Lavritech являются частью экосистемы Wirenboard и чем-то вроде «младшего брата» их флагманских Linux контроллеров.
Или, если нынешний стартап Lavritech будет успешно развиваться, сама Wirenboard в один прекрасный момент может стать частью экосистемы Lavritech (смайл).
Lavritech V7.1 Lite
Теперь переходим непосредственно к знакомству с виновником торжества — контроллером Lavritech V7.1 Lite. Как следует из его названия, Lite — это облегчённая (урезанная) версия основного контроллера Lavritech V7.1. В целом, оба эти контроллера очень похожи, разница заключается в основном в количестве разъёмов для дополнительных модулей и общих габаритах контроллеров.
Поэтому на основной контроллер мы пока отвлекаться не будем (тем более, что его пока нет в моём распоряжении), а полностью сосредоточимся на младшей модели Lavritech V7.1 Lite. Фото контроллера крупным планом, вид спереди:
Всё сделано аккуратно, дизайн надписей хоть и не образец совершенства, но не вызывает эстетического отторжения — перед нами вполне симпатичное устройство для своего класса и области применения.
Видны колодка входов/выходов, разъёмы питания, «в глубине» просматриваются кнопки USER/RESET контроллера. Снизу виден язычок пружины установки на DIN рейку.
С обратной стороны расположен разъём Ethernet интерфейса, антенный разъём (LoRa) и ещё одна колодка входов/выходов. Поскольку Lavritech V7.1 Lite собирается из отдельных модулей почти как конструктор Lego, в вашем конкретном случае этих опций может и не быть, например, вместо Ethernet разъёма может быть ещё одна колодка входов/выходов, а LoRa разъём может быть вообще не распаян на плате — всё зависит от вашего проекта и необходимых вам опций.
Для примера, ниже представлено сравнение двух похожих контроллеров из моей коллекции — Lavritech V7.1 Lite и Norvi Cema.
Сёма
Производитель заботливо комплектует контроллер наклейками для типовых вариантов маркировки входных и выходных контактов колодок. Вроде бы ерунда, но это говорит об отношении компании к своей продукции и её пользователям.
Основные характеристики
Общее представление о контроллере Lavritech V7.1 Lite мы получили, теперь самое время познакомиться с ним поближе и разобрать его ТТХ. Здесь речь пойдёт о конкретно моём образце, но его конфигурация близка к максимальной, поэтому вам будет понятно на что способен Lavritech V7.1 Lite.
Поскольку модульность в архитектуре контроллеров Lavritech возведена в принцип, то и ESP32 присутствует в конфигурации не в виде самого «нативного» модуля, а в виде рефренсной ESP32 платы.
Плюсы такого решения: упрощается разработка и производство контроллера, уменьшается цена основной «материнской» платы, в случае поломки легко заменить сгоревший модуль.
Минусы: зависимость производства от доступности готовых рефренсных плат (поддерживается несколько моделей), соединения контактов не паянные, что более-менее нормально для DIY, но может вызвать проблемы при эксплуатации контроллера в условиях вибрации, повышенной влажности и т. п.
Сам микроконтроллер — ESP32-WROOM-32 со всеми присущими ему возможностями (Wi-Fi, Bluetooth и т. д.). Поскольку мы имеем дело с целой (рефренсной) платой, то тут же установлен регулятор напряжения, переходник USB-UART для подключения к компьютеру и программирования и прочие компоненты.
Кроме платы ESP32, Lavritech V7.1 Lite содержит:
- LoRa модуль RF96
- Разъём и внешнюю антенну для LoRa модуля
- Ethernet интерфейс на чипе W5500
- Кнопки USER и RESET
- Кнопка с фиксацией (не распаяна)
- 2 12-pin внутренних разъёма для Wirenboard модулей
- 2 4-pin колодки для внутренних Wirenboard модулей
- Внутренний 10-pin разъём для подключения EUHP модулей
- 1 межблочный 10-pin Wirenboard разъём
- Светодиод наличия питания
- Разъём и колодку для питания 5 В
Как видно из перечисления доступных опций, Lavritech V7.1 Lite — это именно «материнская» плата, имеющая множество разъёмов для установки дополнительных модулей (и подключения внешних блоков), которые и будут определять её рабочий потенциал.
Дополнительно в моём распоряжении имеются следующие модули Wirenboard (для установки внутрь контроллера):
WIRENBOARD WBE2-DI-DR-3 (3 входа «сухой контакт»)
WIRENBOARD WBE2-DO-OC-2 (2 выхода «Открытый коллектор»)
WIRENBOARD WBE2-I-RS485-ISO (изолированный порт RS-485)
И внешние блоки Wirenboard (для подключения «стыковкой» на DIN-рейку):
WIRENBOARD WBIO-DI-WD-14 (Универсальный модуль дискретных входов)
WIRENBOARD WBIO-AI-DV-12/4-20mA (Модуль аналоговых входов 4-20мА)
WIRENBOARD WBIO-DO-R10A-8 (Модуль релейных выходов 7A)
А также EUHP модуль Lavritech RS485 V1 для установки в соответствующий внутренний разъём (подробнее об этом будет рассказано далее).
Соответственно, в данный момент я могу дополнить контроллер 3-я входами «сухой контакт», 2-я выходами «открытый коллектор» и/или портами RS-485 в варианте Wirenboard или EUHP модулей.
А также могу подключить к системе блок с 14-ю универсальными дискретными входами, 12-ю аналоговыми входами 4-20мА и/или 8-ю релейными выходами по 7A.
Уже неплохо, но, поскольку доступен огромный выбор дополнительных блоков и модулей от Wirenboard и прочих производителей, то можно просто купить нужный блок и добавить в базовый контроллер Lavritech V7.1 Lite нужный лично вам функционал.
Разбираем контроллер
Теперь настало время
Вынимаем разъёмы из колодок — фактически Lavritech V7.1 Lite — это плата расширения для рефренсного модуля ESP32 (вся магия в модульной архитектуре, стандартизации и наличии экосистемы готовых модулей и блоков).
Вынимаем плату ESP32 из материнской платы Lavritech V7.1 Lite. Видно, что на основной плате практически нет активных элементов — это, можно сказать, очень «хитрозакрученная» матрица межмодульных и межблочных соединений. Насколько хитро она закручена будет понятно из дальнейшего повествования (в этой или, скорее всего, последующих статьях), тут я только кратко скажу, что некоторые разъёмы (области) имеют до 4-х слоёв хардверной (!) абстракции — я ни с чем подобным ранее не встречался и могу только свидетельствовать, что это что-то совершенно уникальное.
Примечание. Под «хардверной абстракцией» я понимаю несколько разных функций для одних и тех же пинов в разъёмах, устанавливаемых либо при помощи перемычек (резисторов) на материнской плате, либо внутри (!) вставляемых модулей. Но подробное объяснение этой концепции требует отдельного повествования, которое я дам чуть позже.
Схемотехника
Несмотря на то, что плата Lavritech V7.1 Lite внешне кажется небольшой и не очень сложной, на самом деле это только вершина айсберга: этот скромный кусок текстолита воплощает в железе довольно сложные и интеллектуально ёмкие технические идеи и требует для своего описания отдельной статьи, и, скорее всего, даже не одной, а нескольких.
Ещё одно пояснение. Говоря другими словами, похоже авторам Lavritech V7.1 Lite удалось (невозможное) реализовать концепцию «одна плата — множество контроллеров», то есть выпускается одна плата, которая при помощи дополнительных модулей и внутреннего конфигурирования может превращаться в один из десятков (сотен) различных контроллеров.
Осилить это описание и донести до вас идеи, заложенные в Lavritech V7.1 Lite я попытаюсь в следующей статье, а пока дам несколько фото основной платы. Вид сверху.
Этого на плате это не видно и непонятно без дополнительных пояснений, но тут буквально всё (разъёмы, кнопки, перемычки, модули и т. д.) может быть либо впаяно при производстве (адаптации под заказ или самим пользователем), либо не впаяно (выпаяно). В результате, понимая эту матрицу (смысл и назначение элементов и интерфейсов) можно как угодно конфигурировать контроллер (на железном уровне) и кардинально менять его функционал.
Кстати, здесь реализована идея, вообще выносящая мозг (без кавычек) — в качестве модулей могут выступать… другие микроконтроллеры! например, STM32.
А ведь есть ещё старший брат Lavritech V7.1 (без Lite), который построен по такому же принципу, но имеет гораздо более широкие возможности по конфигурированию и (хардверной) настройке.
Вид обратной стороны платы. Тоже всё очень скромно, с первого взгляда и не скажешь, что имеешь дело с чем-то необычным (выдающимся).
Немного о сообществе и коллаборации
Lavritech это молодая и динамично развивающаяся компания, которая открыта для сотрудничества и, мало того, исповедует принципы совместной разработки как железа (дополнительных модулей и блоков), так и программного обеспечения. Идея проста и с ней трудно спорить: зачем каждому изобретать один и тот же велосипед, когда можно просто делать нужные модули (блоки), которых ещё нет в экосистеме Lavritech/Wirenboard?
Сами контроллеры Lavritech находятся на стадии разработки версии 7.1 (в моём распоряжении контроллер версии 7.1.5) и если вы квалифицированный инженер или имеете идеи по улучшению контроллеров линейки — просто свяжитесь с компанией любым удобным способом, доступны сайт, Telegram-канал, канал на Youtube и т. д. (ссылок не даю, но их нетрудно найти по поиску).
Пример подключения к плате модуля Wirenboard WBE2-I-RS485-ISO (изолированный порт RS-485)
Заключение
На этом для вводной статьи, наверное, достаточно. В следующих статьях я подробно разберу схемотехнику и хардверную концепцию контроллеров Lavritech, а затем мы попробуем разобраться с программированием и/или использованием готовых прошивок для Lavritech V7.1 Lite.
P. S.
Разрабатываете или продаёте контроллеры? Свяжитесь со мной (в профиле есть ссылка) и, возможно, через некоторое время читатели Хабра смогут узнать о ваших разработках и продукции.