Не просто идея

от автора

Как я и обещал, интрига с продолжением. Эта статья является продолжением вводной части с описанием парадигмы и предпосылок.

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

BEEPTOOLKIT — Инструментальная платформа для разработки автоматики, робототехники и смарт систем.

Программная часть

Ядро платформы собрано на инженерном кроссплатформенном языке G. Здесь я предвижу много в его сторону предсказуемого скепсиса, и рассуждений о том что это вовсе хххх и годится разве что для @@@. Здесь на Хабре есть немало статей в его пользу и мне не хотелось бы заново заниматься дублирующим обзором. В защиту своего выбора, отвечу — я к G шел через личный и сторонний, накопленный и годами провалидированный опыт NI. Весомым подтверждением стал проект SpaceX, где программисты взяли именно G для управления стартовой площадкой, двигателями и мониторингом.

SpaceX
SpaceX

Кроме в.с. я так же поставил перед собой цель выйти за предел ограничений DSP, аппаратных архитектур с их спецификой встраиваемого кода и т.д. и т.п.

Итак это G фреймворк, на данный момент скомпилированный под OS Windows 10 (64 LTSC).

Для формирования выходных сигналов разработан FSM (Finite State Machine) представляющий матричный генератор с фильтром быстрого преобразования Фурье (690 — 1633 Гц). Такое решение мне позволяет формировать достаточно большое количество программных портов, где каждый порт программно симулирует в сторону внешнего выходного USB аппаратного комплекта пакетный сигнал для формирования 16 -и бинарных, селективно настраиваемых каналов под аппаратную логику. Общее количество выходных, задействованных в алгоритме каналов по адресам их физических подключений, на данный момент может составлять от 16 до 128.

Входные каналы формируются как и в случае с выходными посредством разработанной FSM. Это одновременный, или селективный счет внешних 12 bit сигналов по 10-и каналам, с точностью в пределах 0,001 до 3,3 V. Общее количество входных каналов, может составлять от 10 до 1600.

В процессе разработки я много экспериментировал с различными функциями, которые могут применяться в качестве дополнительных FSM, к примеру взаимодействие с USB камерами. Мне удалось на базе относительно простой камеры создать FSM для машинного зрения графическим сервисом для калибровки, что позволяет в зависимости от количества пикселей в определенном спектре и площади региона, распознавать объекты в цвете и передавать триггерное значение на Выходные каналы.

В дополнение к имеющимся FSM так же в инструментарий могут подключаться и другие прикладные функциональные процедуры, к примеру такие как дальномер на базе высокоточного лидара от конкретных производителей, SLAM комплект. На данном этапе я пока не решил в их обязательном присутствии, т.к. платформа больше по своему концепту преследует цель демонополизации, в случае с конкретным фабричными модулями, мне бы пришлось разрабатывать к ним уникальный UART в соответствии с SDK производителя, при том, что я не хочу перегружать ресурсы хоббийными фитчами.

Аппаратная часть

Как я ранее сказал, концептуально платформа разрабатывалась без приоритетных предпочтений к тем или иным процессорным архитектурам, в качестве ведущих внешних контроллеров, их априори заменила инструментальная среда, которая одновременно является и симулятором многозадачного контроллера, средой разработки и конечной логической станцией в комплекте с внешними I/O USB модулями.

16 канальный Выходной модуль представляет из себя USB DAC (Beeptec Engineering) комплект на 16 коммутируемых адресов. Каждый выход может принимать значение состояния логического «0= 0,5 V» или «1= +3 … 5 V «, значения И/ИЛИ в соответствии с алгоритмом сценария. Реакция на срабатывание после предыдущей команды 30 — 70 мс, допустимый ток нагрузки на выход 270 mA. Модуль питается от постоянного тока 4,5 — 5V. Все 16 каналов по умолчанию имеют состояние «0», в случае «1» происходит подтягивание к земле.

10-и канальный входной USB модуль реализован на базе распространенного ADC STM32F103C8T6. Диапазон входного напряжения выборки: 0-3,3 V; Напряжение питания: 5 В / 3,3 V Разрешение 12 бит (4096) или 0,001 V;

Так выглядит дизайн платформы:

Характерной особенностью платформы является возможность ее установки непосредственно на конечном продукте (таблет, SBC) что очень удобно для отладочных работ в полевых условиях. Все промежуточные или финальные результаты (параметрические настройки, номера портов, коммуникации, алгоритм сценария) сохраняются во внешнем проектном файле, который может храниться на сервере, делегироваться на другие системы, редактироваться в среде разработки и т.п.

Сбор данных может сопровождаться непрерывным протоколированием измерений в реальном времени с сохранением результатов в текстовом файле. Структура отчета организована таким образом, что позволяет разработчикам аналитических систем, выполнять к к ней SQL запросы.

Требования к минимальным аппаратным ресурсам для устойчивой работы на примере SBC Latte Panda:

  • OS Windows 10 LTSC;

  • Processor: Intel Cherry Trail Z8350 Quad Core, 2 M Cache, up to 1.92 GHz;

  • Ram: 2 GB DDR3L;

  • Storage Capability: 32 GB

  • GPU: Intel HD Graphics, 12 EUs @200-500 MHz, single-channel memory;

  • USB 3.0 port или USB 2.0

    Создание пользовательских интерфейсов в соответствии с проектным кодом, на данный момент является прерогативой Beeptec Engineering.

    После распаковки объем установочного пакета составляет 250 МБ.

    Теперь мы подошли к самому важному моменту, ради которого все было задумано.

    Как я отметил в предыдущей статье, платформа гарантирует разработчикам создание систем автоматики, робототехники или смарт систем согласно следующим функциональным задачам:

    1. Дистанционный — управление с помощью специального интерфейса;

    2. RPA. Программный — реализация предсказуемых повторяющихся процедур объединённых в один сценарий, когда все действия автоматики четко повторяются и жестко фиксируются. Весь сценарий выполняется в режиме реального времени. без учета внешних факторов;

    3. RPA адаптивный — наличие в системе сенсорной части, благодаря которой, автоматизация работает с учетом внешних факторов.

    4. Объединяет в себе все 3 в.у. принципа.

    Пример рабочей инструкции и функциональный код (время составления меньше 2 минут), управления 5 шаговыми моторами со следующим линейным алгоритмом:

  1. Запуск сценария в автоматическом режиме по умолчанию через 15 с с момента загрузки ПО.

  2. Подаем питание на драйвер шагового мотора в режим удержания 12V>

  3. Подаем питание 5V на PWM генератор c подачей на +CLК драйвера мотора с вращением влево>

  4. Спустя 10с отключаем питание 5V от PWM, двигатель переходит в режим удержания>

  5. Подача питания 5V PWM сигнала к -CLK драйвера мотора с вращением вправо>

  6. Отключение 5V от PWM Спустя 1 час, остановка мотора с удержанием>

  7. Отключение питания драйвера мотора 12V> автоматическое завершение полного сценария с полной выгрузкой ПО.

Более развернутый образовательный видео пример в предыдущей статье.
Я предполагаю, что некоторые мои доводы, утверждения, трактовки или технические решения встретят здесь немалую волну недоумений или тотальных дисквалифицирующих приговоров. Собственно для этого я и выкладываю описание, что надеюсь будет неплохой прокачкой со стороны. Я готов Вас слушать, терпеливо без обид комментировать и получать любую субъективную экспертную критику.

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

ссылка на оригинал статьи https://habr.com/ru/post/568172/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *