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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

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/


Интересные статьи

Интересные статьи

Маркетплейс – это сервис от 1С-Битрикс, который позволяет разработчикам делиться своими решениями с широкой аудиторией, состоящей из клиентов и других разработчиков.
Мы любим пробовать новое, и поэтому часто делимся ссылками на интересную информацию из мира IT и программирования со своими коллегами. Мы являемся давними пользователями slack и для таких ссылок ...
Если вы интересуетесь машинным обучением, то наверняка слышали про BERT и трансформеры. BERT — это языковая модель от Google, показавшая state-of-the-art результаты с большим отрывом н...
Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row si...
Один из самых острых вопросов при разработке на Битрикс - это миграции базы данных. Какие же способы облегчить эту задачу есть на данный момент?