Skip to content

Редактор ​

Редактор — это область, где вы пишете код для управления роботом с помощью блоков или скриптового кода.
Ниже описано, как программировать в блочном и скриптовом (Python) программировании и на что обращать внимание.

Редактор блочного кода ​

Категории блоков ​

block-category

Это область, где блоки, доступные в RobomationLAB, разделены на категории.
По нажатию на категорию вы увидите палитру блоков, относящихся к ней.

Стандартно доступны следующие категории блоков.

  • Логика
  • Циклы
  • Математика
  • Текст
  • Список
  • Цвет
  • Аудио
  • Управление
  • Переменные
  • Функции
  • Другое

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


⚙️ Примечание

block-category-remove

Категорию, добавленную в программу, которой вы больше не пользуетесь, можно убрать из категорий блоков через щелчок правой кнопкой мыши → Удалить.


Палитра блоков ​

block-flyout

Это область, где собраны все блоки данной категории.
Блоки из палитры вы переносите в область программирования перетаскиванием.

block-flyout-help

⚙️ Примечание
Если вы хотите узнать, как пользоваться каким-либо блоком, через щелчок правой кнопкой мыши → Справка откроется описание работы с этим блоком.


Область программирования ​

workspace

Это область, где вы собираете блоки, взятые из палитры блоков.

Собранные блоки в реальном времени переводятся в код Python,
а после запуска кода программа разбирает его и двигает роботом и управляет им.


Основная структура блоков ​

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

block-structure

Редактор блочного кода разбирает и выполняет код, находящийся внутри блоков функций функция setup и функция loop.
Поэтому код нужно писать, вставляя блоки внутрь блоков функций функция setup и функция loop.

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

функция loop
Внутри блока функции loop вы описываете действия, повторяющиеся всё время работы кода.
Описанные действия повторяются каждые 10 мс.

⚙️ Примечание
(не считая собственных функций, созданных в категории Функции)
Блоки, находящиеся вне блоков функций функция setup и функция loop, никак не влияют на выполнение кода.


Как пользоваться блоками ​

Добавление блока

block-add-1block-add-2block-add-3

Блок добавляется перетаскиванием из палитры блоков и отпусканием в редакторе.

Копирование и вставка блоков

Блок в редакторе копируется и вставляется двумя способами.

  1. Выделив блок, нажмите Ctrl+C, чтобы скопировать его.
    Нажатие Ctrl+V вставляет в редактор последний скопированный блок.

  2. Выделив блок, нажмите в меню Правка кнопку «Копировать Ctrl+C», чтобы скопировать блок.
    Нажатие в меню Правка кнопки «Вставить Ctrl+V» вставляет в редактор последний скопированный блок.


Удаление блока

Блок в редакторе удаляется тремя способами.

  1. Выделив блок, нажмите клавишу Backspace, чтобы удалить его.

  2. Блок также удаляется перетаскиванием в редакторе и отпусканием на категории блоков.

block-delete-1block-delete-2block-delete-3
  1. Блок также удаляется перетаскиванием в редакторе и отпусканием на корзине.
    Удалённый блок вы найдёте в корзине.
block-trash

Выделение нескольких блоков сразу

Несколько блоков в редакторе выделяются сразу двумя способами.

  1. Удерживая клавишу Shift, протяните по рабочей области или щёлкайте по блокам по одному,
    и вы выделите несколько блоков сразу.

  2. Кнопкой выделения в правом нижнем углу рабочей области вы включите и выключите режим «выделение нескольких блоков».
    Залитая цветом кнопка означает, что режим включён.
    Незалитая кнопка означает, что режим выключен.

block-mode-onblock-mode-off

Пока режим «выделение нескольких блоков» включён, можно только выделять блоки.
Чтобы переместить или изменить несколько выделенных блоков сразу, после выделения нужно выключить этот режим.


Дополнительные возможности

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


Редактор Python ​

Палитра кода ​

python-codes

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

В основных функциях (Код) доступны следующие категории кода.

  • Логика (logic)
  • Циклы (loops)
  • Математика (math)
  • Текст (text)
  • Список (lists)
  • Цвет (color)
  • Аудио (audio)
  • Управление (control)

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


⚙️ Примечание
О том, как программировать в редакторе Python с помощью палитры кода, читайте в части Как пользоваться палитрой кода.


Редактор кода ​

python-editor

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

После выбора редактора Python в настройках редактора вы можете писать код на Python.


Основная структура кода ​

Программируя в редакторе кода, нужно придерживаться приведённой ниже основной структуры.

python
from robomation import *

# (если используете робота, объявите его как экземпляр, пример)
hamster_s = HamsterS(0)

# поместите сюда код настройки, выполняемый один раз:
def setup():
    pass

# поместите сюда управляющий код, выполняемый циклически:
def loop():
    pass

Редактор кода разбирает и выполняет код, находящийся внутри функций setup и loop.
Поэтому код нужно писать внутри функций setup и loop.
Кроме того, чтобы управлять роботом, в самом верху кода нужно разместить from robomation import * и объявить используемого робота как экземпляр.

setup

Внутри функции setup вы описываете действия, выполняемые в начале, при запуске кода.
Функцией Utils.wait можно добиться, чтобы действия выполнялись по порядку во времени.

loop
Внутри функции loop вы описываете действия, повторяющиеся всё время работы кода.
Описанные действия повторяются каждые 10 мс.


Как пользоваться палитрой кода ​

Ниже на простых примерах описано, как пользоваться палитрой кода при программировании.

Поиск кода ​

Палитра кода содержит множество функций и фрагментов кода, нужных при программировании робота.

codes-find-1

Среди пунктов категории Код вы найдёте такие, рядом с которыми стоит значок arrow-right.

После одного щелчка по пункту Логика значок меняется на arrow-down, а вложенные пункты раскрываются и становятся видны.
Пункт с вложенными пунктами мы называем «категорией».

Если рядом с пунктом нет значка arrow-right — как у тернарной операции в категории Логика — это значит, что вложенных пунктов в нём нет.
Пункт без вложенных пунктов мы называем «кодом».

codes-find-2

Повторный щелчок по раскрытой категории меняет значок обратно на arrow-right и скрывает вложенные пункты.

Идя так по категориям, вы найдёте в палитре кода нужный фрагмент кода.


Вставка кода в редактор ​

Код в редактор вставляется так.

codes-insert-1

Значок circle-empty слева от названия пункта означает пункт без параметров кода на выбор.
Это чаще всего пункты категорий, то есть те, у которых есть вложенные пункты.

Значок circle-fill слева от названия пункта означает пункт, в котором можно выбрать параметры кода.
Это чаще всего пункты кода, то есть те, у которых нет вложенных пунктов.

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

codes-insert-menu

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

  • Вставить код: вставляет выбранный код в место курсора в редакторе.
  • Справка: открывает описание работы с этим кодом.
  • Отмена: закрывает меню.

Для кода, предназначенного для робота или модуля расширения, выбор пункта Вставить код вставляет вызов метода на экземпляре этого робота.
( например, set_wheel_speed робота HamsterS → hamster_s.set_wheel_speed('both', 50) )


⚙️ Примечание

codes-remove-robot

Категорию кода, добавленную в программу вместе с роботом или модулем расширения, которой вы больше не пользуетесь,
можно убрать из палитры кода через щелчок правой кнопкой мыши → Удалить.