Skip to content

WebManufacture/RoboPlatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoboPlatform

Общее

Универсальная платформа для построения систем цифровой автоматизации и роботизации. Платформа разрабатывается, как самостоятельный проект, развитие идеи Arduino. В качестве основных контроллеров, используемых в платформе, выбрана линейка контроллеров от компании ST Microelectronics (STM8, STM32 ARM). Основные принципы и идеи платформы:

  1. Возможность создания по большей части самовоспроизводимой системы модулей. Имеется ввиду, что на базе существующей системы модулей и инструментов можно создавать как свою копию, так и новые, перспективные.
  2. Сделать компоненты настолько дешевыми, чтобы их можно было использовать свободно, как "кирпичики" для построения сложных систем, состоящих из огромного числа отлаженных модулей. Также дешевизна и простота модулей, делает возможным их применение в условиях кризиса или бесконечно-малого финансирования.
  3. По контроллеру - в каждый узел! Идея состоит в том, чтобы создать общее программное облако, с помощью которого, можно создавать самоконфигурируемые, самособирающиеся, самотестируемые и другие системы, требующие интерактивности от каждого своего функционального узла от мала до велика. Благо, современная конкуренция на рынке контроллеров дает возможность приобретать 8ми разрядные контроллеры по цене < $0.5, и ARM-контолллеры от 1$.
  4. Облегчение и автоматизация труда разработчика. Предполагается применение разработок Web-Manufacture.net (KLAB, HLAB, ILAB и прочих), а также создание современных систем управления, разработки и тестирования для этой платформы. Под "современностью" понимается использования опыта разработки для систем более высокого уровня, применительно, к несколько "поотставшей" области программирования и отладки систем на контроллерах.
  5. Использовать коммуникационные протоколы и принципы проекта ILAB
  6. "Селективная шина" в качестве основной модели взаимодействия

Текущая стадия и план.

На сегодня разработана и продумана общая концепция проекта. Проект разбит на несколько автономных, но взаимосвязанных подпроектов. Наибольший прогресс в области создания ПО, в частности распределенной клиент-серверной инфраструктуры и пользовательских интерфейсов. Реализованы “в железе” основные модули и базовый набор инстументов проекта, как то RoboMotors, RoboMind, RoboPwm, RoboPower, являющиеся концептуальными наследниками своих программных прототипов. Некоторые подпроекты уже имеют собственную жизнь, как RoboCNC, RoboPainter и RoboRails, трудящееся в автоматизированых теплицах. В рамках платформы идет работа по 3м основным направлениям:

  1. Инструменты и механическая часть, корпуса модулей, система соединения.
  2. Адаптация модулей, для воспроизводства в системе на базе RoboCNC (#МФКС).
  3. Доработка ПО, базирующееся на разработках Web-Manufacture (HLAB, ILAB, KLAB).
Шина XRouting

Шина представляет собой 4 вывода, 2 сигнальныx и 2 для питания. Каждый модуль может содержать несколько портов для подключения шины, но в целом это все равно остается одна физическая шина. Исключение -- контроллеры RoboMind.

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

Протокол шины описан ниже

Модули

Система построена на модулях для у правления чем-то конкретным (освещением RoboLeds, двигателем RoboMotor, другими контроллерами RoboMind), которые подключаются к общей шине XRouting. Также есть модули для считывания и запоминания информации (RoboSensor, RoboControl), а также ее обработки (RoboMind)

Для модулей используются разные контроллеры и процессоры, например stm8s207rbt6, stm8l151c8t6, stm8af5288t, stm32f103cbt6, stm32f407vet6, stm32f756zg, stm32w108cbu64tr, stm32h743vit6(перспективный). Конроллеры других производителей: ESP8266, и другие Или платформы Raspberry Pi, Orange Pi.

RoboMind

Контроллер представляет собой некий "Мозг", который может управлять другими модулями RP, или заниматься переадресацией пакетов. Причем может делать это как автономно, так и в связке с компьютером или Web-интерфейсом. Разные реализации могут иметь разные интерфейсы, как то: USB, UART, COM, RS-485, I2C, SPI, CAN, HDMI, Bluetooth, ZigBee, Ethernet, Wi-Fi. И естественно, выходы шины XRouting, причем возможно несколько "портов", каждый из которых образует свою независимую шину.

Также к некоторым модулям можно подключать дополнительно SD карту, или даже USB-OTG запоминающее устройство (да тот же HDD через переходник)

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

В ПО для контроллера используется интересный подход, как "набор прошивок", которые пользователь может свободно выбирать, и загружать через встроенный BootLoader. Таким образом из данного мозга можно сделать широкий спектр устройств. Например, существует прошивки, которая позволяют сделать из данного модуля логический анализатор, контроллер ЧПУ, контроллер общего назначения, работающий по временным интервалам.

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

И все это счастье стоит порядка 5$ за штуку в младших моделях! Или же 7$ на базе ARM!!! Но верхний потолок может доходить до 400$ за промышленные реализации.

RoboMotor

Универсальный контроллер для управления "любыми" двигателями, Stepper, DC, AC, BLDC

RoboCoils

Модификация предыдущего модуля с еще более расширенным функционалом управления любыми электромагнитными устройствами.

RoboCNC

Платформа для построения станков с ЧПУ, на базе предыдущих модулей

RoboPower

Управление системами хранения и конвертации электроэнергии. содержат разные DC-DC и системы контроля параметром V, I, P. Можно использовать для заряда, разряда аккумуляторов или объединения нескольких разных источников и потребителей энергии.

RoboPwm

Модуль для управления силовой нагрузкой с применением PID-алгоритмов В модулях бывает до 8 портов для одновременного управления конечными устройствами (например, светодиодами, или нагревателями). С контролем параметров через V, I, P.

RoboLeds

Модификация предыдущего модуля для управления светодиодными линейками Могут содержать до 64 портов.

RoboSensors

Аналоговые модули высокого разрешения использующиеся для систем мониторинга или измерения параметров техпроцесса. Имеют до 4х аналоговых входов на модуль, иногда дифференциальных. Могут синхронизировать время измерения с другими модулями с высокой точностью. Также могут содержать обработчики DSP, топовые АЦП и ОУ от AD, чипы CPLD, FPGA от Altera серии MAX и Cyclone Как правило построены на чипах STM8S903, STM32F3, F4, для расширения вычислительных мошностей используют ресурсы RoboMind

RoboLogic

Модули логического взаимодействия и логического ввода. Аналог логических элементов. Построены на компараторах и могут быть использованы для ввода логической информации. К примеру, логические анализаторы или системы мониторинга реального времени с высокоскоростной обработкой информации. Некоторые модули содержат чипы CPLD, FPGA от Altera серии MAX и Cyclone Бывают как дешевыми и простыми, так и дорогими и сложными.

RoboControl

Простые и дешевые варианты предыдущих модулей, к примеру для кнопочного ввода или простых датчиков.

RoboVision

Модули для работы с визуальной информацией, камерами, матрицами или устройствами вывода изображения.

XRouting

Это -- протокол и сердце системы.

     (#xx | #1x)( #dstAddr ...,  #srcAddr..., #size, #pmo,#pm, #value,...,#pms, #pm, value..., #pme, #pme, (#crc) ? #03
     1x - XRT packet type

         11 Hi (Hi, when raise node)
         12 Dying (Something wrong, buy or error, Unscribe, Del)
         13 Acknowledge (Response, for anything, for example "see you as")
         14 Things (Get Description, Get anything, Add, Set)
         15 Lookup (All, Subscribe)
         16 Redirect (Info)
         17 Forward  (Note)
         18 Tunnel

     xx #SYNC
         #A0-#A9 - #Req
         #B0-#B9 - #Ack
         #C0-#C9 - Reserved
         #E0-#EF   #syncData1 #syncData2
         #F0-FF    #syncData (1Byte)

     #addr (#dstAddr, #srcAddr)
         First 1bits of address means this is end of address chain
         0 - packet chain
         1 - end packet
         Special bytes in packet chain may have sense -- delimeter, mark of the address type

   

     pm = packet marker ( 3bit - dataType + 5bit thing identifier )
          pm data types:

          00 - Raw Data, for a strings or something encoded, looking the next PM
          01 - Sized    something have fixed size, things identifier describe size
          10 - #pmo Complex start with another PM's
          11 - #pme Complex End

About

Hardware for Robototechnics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published