РУБРИК · портал

← Ко всем документам

Техническое описание РУБРИКа

Страница для энтузиастов. Здесь описано, из чего состоит робот РУБРИКа, кто что считает и как к нему подключиться напрямую. Подробности — по ссылкам внизу.

Из чего состоит робот

Цепочка из трёх устройств:

ноутбук            телефон робота             модуль робота
приложение   ↔     приложение робота    ↔     STM32, моторы,
ученика      BT    (Python, Chaquopy)   USB   датчики
                                        CDC
УстройствоЧто делаетСвязь со следующим
Ноутбук с приложением ученикаРедактор блоков и Python, уроки, проверка программыBluetooth (RFCOMM SPP) или сеть класса (TCP)
Телефон робота (Android) с приложением роботаВыполняет программу ученика на PythonUSB CDC-ACM, 115200 8N1, протокол модуля
Модуль робота (контроллер STM32)Приводит моторы, считает одометрию, отвечает на опросы—

Источники: протокол 01 (заголовок: Bluetooth RFCOMM SPP или TCP по сети класса); протокол 05.

Кто что считает

Коротко: смысл программы считает телефон, уроки и проверку — приложение ученика на ноутбуке, поворот на угол — модуль. Подробный разбор — на странице «Кто что считает» (/docs/who-computes-what).

Что известно из протокола модуля (протокол 05):

Разъёмы модуля

РазъёмыКоличествоОбозначениеИсточник
Моторы4A, B, C, D (буквы напечатаны на модуле)протокол 05 §2, rubrick.py (_PORT_LETTERS)
Датчики41–4 (S1–S4)количество — docs/product/TZ_product.md §2.1; обозначения S1–S4 — протокол 07 §1 (не опубликован)

Порядок букв моторов в кадре #M обратный: поле 1 — разъём D, поле 2 — C, поле 3 — B, поле 4 — A. Это проверено на живом модуле 27.09.2026 (протокол 05 §2). В программе ученика разъём мотора называют буквой или номером 1–4: 1 — D, 2 — C, 3 — B, 4 — A (rubrick.py, _PORT_LETTERS).

Датчики: в протоколе модуля (05) команд для датчиков нет; датчики EV3 придут с обновлением прошивки (ТЗ §2.4). Протокол датчиков (07) опубликуем после выхода прошивки.

Совместимость моторов

В техническом задании (TZ_product.md §2.3) для первой версии заявлены два мотора: LEGO EV3 большой и LEGO EV3 малый. Моторы других производителей и собственные моторы РУБРИКа в первой версии не заявлены.

Чего документы не содержат: результата проверки на живом модуле для каждого типа EV3-мотора. Протокол 05 подтверждает наличие моторов на разъёмах (#GP;), но не называет их тип. Пока такой проверки в документах нет, считайте совместимость заявленной, а не подтверждённой.

Модуль

Прошивка модуля сейчас — тестовая сборка.

Программа на Python

Программа ученика — настоящий Python. Она выполняется на телефоне робота, а не на ноутбуке. Для робота есть библиотека rubrick (класс Robot, класс Motor). Все команды, параметры и примеры — в справочнике команд Python (/docs/python).

Приложение ученика отправляет исходный текст программы на телефон по Bluetooth или по сети класса и получает обратно вывод и телеметрию (протокол 01).

Виртуальный робот

Виртуальный робот — имитация робота на ноутбуке. Программа выполняется на нём без железа, по тому же протоколу модуля. Движение моделируется без динамики: вал крутится с постоянной скоростью, пропорциональной проценту мощности, нет инерции, разгона и нагрузки. Виртуальный робот проверяет логику программы, а не предсказывает физику. Источник: mvp/android-bridge/app/src/main/python/virtual_board.py (описание модуля).

Прямое управление модулем

Можно подключить модуль к своему компьютеру по USB и слать ему команды без телефона. Протокол — в документе «Протокол модуля». Прочтите предупреждение в его начале до первой команды движения.

Ссылки