> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/vbcores/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/vbcores/sistema-vbcores/tekhnologii-po.md).

# Технологии ПО

Сделал сам - поделись с другими  - Open Source

Использование одинакового микроконтроллерного модуля во всех узлах робота и в разных проектах роботов  - невероятно ускорят процесс разработки ПО роботов.

Проект "Братья Вольт" и Лаборатория робототехники Института механики МГУ поддерживают концепцию открытого программного обеспечения. По этому различные  примеры ПО разработанные нами для экосистемы VBCores мы публикуем в нашем репозитории  Github.com/VBCores. &#x20;

Для нашего ПО мы как правило используем [MIT License](https://choosealicense.com/licenses/mit/). ПО которое является форками сохраняет лицензию автора.  &#x20;

Мы постарались сделать примеры для наиболее часто используемых технологий при создании роботов:

<figure><img src="https://3551773033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBjLyfPc4FcQUfXFi5fQr%2Fuploads%2FD9475JtORsODcO9Lsr5G%2Fsoftlogo.png?alt=media&amp;token=aeefac44-979e-4626-bb18-cbdbeb6af83c" alt="" width="375"><figcaption></figcaption></figure>

### Разработка ПО для микроконтроллерного модуля

Для раскрытия всех возможностей микроконтроллерного модуля, мы рекомендуем использовать нативные среды программирования.  Если вы уже знакомы с электроникой и программированием микроконтроллеров STM32  -  нам остается только оставить ссылку на [страницу](/vbcores/vbcores-hardware/vbcore-vb32g4.md) со схематикой модуля и пожелать удачи в работе с ним из любимой IDE.&#x20;

Модуль VBCore полностью совместим с отладочной платой STM NUCLEO-G447RE - любой разработанный для нее код можно просто перенести на модуль. Можно использовать все программные библиотеки и примеры, доступные в пакете MCU STM32Cube.&#x20;

Если вы знакомы с миром микроконтроллеров только благодаря Arduino - не беда, для многих задач этого может быть достаточно.  Модуль поддерживает работу через библиотеку  [STM32duino](https://github.com/stm32duino).&#x20;

Мы подготовили большой раздел с описанием[ как настроить  Arduino IDE](/vbcores/nastroika-po/arduino-ide.md), проработали несколько примеров и библиотек.

### Работа с шинами CAN и CAN FD

В рамках концепции VBCores предполагается, что все внутренние блоки робота связываются между собой по коммуникационной  шине CAN.  Модули поддерживают   работу в режиме CAN и CAN FD - обязательно почитайте различия этих стандартов <https://en.wikipedia.org/wiki/CAN_FD>. Обратите внимание сто устройства поддерживающие CAN FD  могут работать в режиме CAN, а вот обратное не верно.\
\
Мы подготовили описание настройки и примеры работы для CAN и CAN FD  для микроконтроллеров и для микрокомпьютера Raspberry PI с использованием нашего [CAN-FD шилда](/vbcores/vbcores-hardware/can-fd-raspberry-pi.md).

Так же мы сделали примеры и библиотеки для  работы со стандартом Cyphal (<https://opencyphal.org/>) — это открытый лёгкий протокол для бортовой сети подвижных объектов.&#x20;

Некоторую историю создания и использования этого протокола можно почитать тут (до 2022 года проект назывался UAVCAN): \
<https://habr.com/ru/articles/512570/>\
<https://habr.com/ru/companies/innopolis/articles/513192/>\
<https://en.wikipedia.org/wiki/Cyphal>

### Работа с ROS

Важным фреймворком для создания современных роботов является Robot Operating System.  Как перейти от уровня микроконтроллеров на уровень ROS описано в разделе [Работа с ROS](#rabota-s-ros)

### Работа с научным ПО

Часто для разработчиков, особенно ученных и студентов возникает необходимость в обмене данными с такими программными пакетами как Matlab или Labview.  Пример такой интеграции реализованной через TCP сервер вы найдете в разделе Работа с научным ПО.
