Pull to refresh
56
0
Руслан Надыршин @rnadyrshin

Программист встраиваемых систем, видео-блоггер

Send message

Есть 2 варианта модулей CPU на старте:
- ESP32S3 - основной вариант, мощный и недорогой.
- MicroMod с M.2 - был добавлен по просьбам трудящихся, позволяет выбрать из 10 разных платформ.

Помимо этого возможно появление (в том числе силами сообщества) модулей CPU с любыми другими процессорами от древних и дешевых МК до систем на чипе на linux. Лишь бы они обеспечивали работу межмодульного интерфейса и успешно компоновались в модуль (не обязательно 1х1)

Нет, нет. Размер выбран эмпирически после множества экспериментов с размером модуля и перепроектированием всей линейки модулей. С ограничениями производителей плат это не связано

Поэтому, мой добрый совет: никаких «переворотов платы на 180 градусов»

next.module широко использует боковые поверхности девайса для вывода разъёмов, индикаторов и кнопок. Представьте, что модули нельзя поворачивать. То есть модуль с разъёмом на боку будет всегда располагать свой разъём только с одной стороны девайса и никак иначе. Все девайсы будут иметь разъёмы с одной стороны) Либо придётся делать разные платы чтобы вывести разъём в ту или иную сторону. Все эти варианты плохие. Либо распишите вашу концепцию, возможно я не понял.

и никаких «маркировка и назначение GPIO совпадают только если вы правильно вставили модуль», даже если это несколько ограничит функционал

Маркировка пинов есть только на плате модуля DBG LED, на котором есть LED-индикаторы, которые хочется подписать. Его всегда без проблем можно повернуть, ориентируясь на стрелочки. На других модулях нет маркировки и нужно только обратить внимание на 1-3 перемычки снизу, ориентируясь на подсказки стрелками.

Наоборот, на платах должен быть ключ, однозначно определяющий правильную её установку.

При повороте модуля никогда ничего не сгорает. Да, модуль заработает, только если перемычки и ориентация модуля в девайсе согласуются. Да, это усложняет сборку, но даёт гибкость - разворот модуля позволяет выводить разъёмы туда, куда удобнее. Также это позволяет гибко распределять модули по шинам, балансируя нагрузку на шины.

На мой взгляд, в размерах плат экосистемы next.module 42х42 мм заложена бомба замедленного действия, которая уже сейчас является тормозом для развития и успешности проекта и грозит похоронить его в будущем.

42х42 это критически мало. Если посмотреть презентационное видео, то на нём хорошо видно, что автор (задумчиво) крутит на экране рендеры модулей и через раз говорит, что тут не уместилось то, а тут не уместилось это и так далее чуть ли не по каждому модулю.

На самом деле нет никакого идеального размера для модулей. Какой размер ни выбери - всегда что-нибудь не поместится. А если выберешь очень крупный формат, то будут полупустые платы модулей и громоздкий девайс в результате.
Я много экспериментировал с форматами модулей от 40х40 до 50х50 и эмпирически выбрал 42х42 мм. На сегодня я считаю его идеальным балансом, хотя руки чешутся сделать чуть компактнее.
В видео я всегда рассказываю про технические нюансы и сложности, видео с презентацией - не исключение. При любом другом формате модулей нюансы и сложности тоже были бы, но уже другие.

Отсюда вывод: если уж использовать 1х формат компоновки модулей, то это должно быть соединение максимум 3-4 модулей и никак не больше.

Верно, так и есть

Отсюда же и второй вывод: для всей системы базовыми должны быть горизонтальные компоновки 2х, 4х, 6х и так далее.

Так и есть, во многих случаях большие горизонтальные компоновки будут выгоднее. Модули вплоть до 3x3, 3x2, 4x1, 4x2 уже разработаны. Просто они не попали в первую партию прототипов, поэтому в видео о них ни слова.


Я автор проекта next.module. Хочу сразу сказать спасибо за публикацию. Это сигнал для меня, что я недостаточно понятно рассказываю о проекте, так что буду навёрстывать.

Если это система прототипирования, наподобие Arduino — это одно, если это модульная система для создания устройств в корпусе — это второе, если эта система предполагает практическое применение для реальной автоматизации — это третье.

Это всё вместе. И конструктор для настольного прототипирования (с этого всё начиналось), и платформа для сборки устройств в корпусе, и система для реальной автоматизации.

Модули жестко крепятся друг к другу стойками, а межмодульные разъёмы достаточно надёжны. Это даёт мне надежду на надежную работу всего в целом, даже если вы собрали из модулей систему автоматизации для более-менее ответственной задачи. Все разъёмы, элементы управления и индикации расположены так, чтобы их легко было вывести из корпуса, они выглядели эстетично и были удобны. Корпус предполагается печатаемый на 3D-принтере, я предложу решения и проекты корпуса когда они будут готовы, пока до этого далеко. Для автоматизации уже представлен ряд модулей с промышленными интерфейсами и входами-выходами, распространенными в автоматизации. Так что да, для реальной автоматизации next.module тоже подойдет.

next.module не идеально подходит для всего этого, он лишь балансирует между возможностями и ограничениями чтобы подойти для как можно более широкого круга задач.

Если это продукт для профессионалов, способных работать в ESP32 SDK — это одно, если это продукт для массового рынка (а-ля Arduino) — это совсем другое.

Электрически next.module - это микроконтроллер и набор микросхем, с которыми МК взаимодействует. Программировать МК можно на чём угодно. Кто хочет - в Arduino IDE, кто хочет на bare metal. Тут конструктив не накладывает ограничений, а все принципиальные схемы модулей открыты.

Но, от меня для модуля CPU ESP32S3 точно будет разработан SDK на базе ESP-IDF с простым API доступа к ресурсам всех модулей. С синхронными и асинхронными способами обращения к модулям. С возможностью сконфигурировать девайс человекочитаемой конфигурацией. Он будет доступен в исходниках.

Наличие этого SDK вовсе не отрицает возможных альтернатив, включая Arduino. Более того, планируется адаптация прошивки IoT Manager под next.module, который сам по себе разработан в Arduino IDE.


Я просто не анонсирую и не обсуждаю варианты, которые пока не существуют и за разработку которых я сам на сегодня не берусь. Впрочем это тоже может измениться. Мы сейчас обсуждаем проект на стадии прототипа

В новой ревизии конструктива я реализовал такую возможность установкой в модуль CPU платы SparkFun с ПЛИС:
https://hackaday.io/project/189481-nextmodule/log/227825-cpu-modules
https://www.sparkfun.com/products/18030

После публикации этой статьи проект продолжает развиваться. Если вам понравилась идея проекта и вы хотите следить за новостями и участвовать в обсуждениях, подписывайтесь:

Страница проекта на hackaday.io
Мой instagram
Мой telegram

Спасибо за статью! Было интересно узнать технические нюансы проекта, за которым давно слежу

3D-визуализация сделана в Solidworks специально для этой статьи. Ведь в EasyEDA не получилось бы сделать сборки из нескольких модулей, а модели компонентов не всегда соответствуют размерам компонентов (высота электролитов, например).

Я понял ваши хотелки, спасибо

Спасибо за наводку по разъёмам!

Кастомное можно выполнить на крупной макетке, к которой хороший доступ. Если хочется сделать что-то кастомное в формате 40x40, то можно его разместить сверху или снизу крайним модулем или просто вынести куда удобно на 2 шлейфах.

Говоря об отсутствии документации, я отвечал на ваш комментарий про ESP32-P4

Понял, спасибо. Думаю, все специфические крепления - вопрос следующих этапов

Давайте ориентироваться на продукты, которые есть на рынке хотя бы с документацией. По анонсу ничего спроектировать невозможно)
А архитектура не важна по сути. Всё, что написано на C/C++ скомпилируется и заработает и на RISC-V, и на RISC-VI, и на RISC-VII :)

Мелкие дисплеи (с шириной до 40 мм) планируется выводить на переднюю сторону. Спереди же на соседнем модуле - кнопки. Либо такие дисплеи можно вывести на верхнюю сторону с ёмкостным тачскрином и без кнопок.
Для крупных экранов (до примерно 5") - будет просто готовый дисплейный разъем под гибкий шлейф на передней стороне модуля.

Модульный прототип - это промежуточное звено между кучей плат с проводами и законченным девайсом. Он нужен для отладки софта, впрочем его использование в конечном изделии не исключается.

Про ремонтопригодность я не совсем понял. По-моему наоборот. Во первых, модульный подход позволяет производить блочный ремонт и быструю диагностику заменой блока на заведомо исправный. Отремонтировать неисправных модуль, опять же, проще чем в большом девайсе. Вы сняли модуль и только с ним работаете. Если нужно ткнуться осциллографом в модуль, просто вынесите его на шлейфе. Предполагаю, что квалификация "ремонтника" это позволяет, если нет - то блочный ремонт.

  1. Обозначения можно разместить на каждом модуле снизу (там не должно быть компонентов). Думаю, это будет вполне удобно.

  2. Кнопки и USB на модуле CPU направлены вверх потому что планировалось всегда ставить этот модуль верхним, а переднюю сторону занять индикаторами. В целом, это можно пересмотреть.

  3. ESP32-S3 потому что это более свежий и совершенный чип, чем ESP32. Ближайшие 5-6 лет он точно будет производиться, а некоторые модификации ESP32 потихоньку снимают с производства. Опять же, во время кризиса полупроводников чипы Espressif были широко доступны, в отличии от очень многих более простых микроконтролеров.
    Что касается поддержки софтом - S3 хорошо поддерживается в ESP-IDF, я сейчас плотно с ним работаю. Остальные среды и фреймворки допилят всё, что у них не работает, время на это есть, а они в этом заинтересованы.

  4. Идея в том, что на модулях 40x40 мм ничего ковырять не нужно, Вы их берёте готовыми, они уже отлажены аппаратно и хорошо работают. Вы набираете из них девайс и дальше:
    - отлаживаете межмодульный обмен (это отладка ПО по сути), подключившить логическим анализатором (напрямую, без переходников) или осциллографом к межмодульным разъемам.
    - если нужно, паяете свои произвольные схемы на макетке и остальной модульный девайс подключаете к этой макетке через межмодульные разъёмы. Когда нужен доступ к макетке, она легко и быстро отстёгивается-пристёгивается.
    PS: под макетной платой я понимаю макетную плату, не breadboard.

Information

Rating
Does not participate
Location
Тбилиси, Грузия, Грузия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Content Writer
Lead