# Блоки ТРИК

Специализированные блоки для ТРИК делятся на три категории:

1. [Действия](/trik/programming-visual/blocks.md#action-blocks) — блоки, выполняющие какое-либо действие на контроллере: включение моторов, проигрывание звука и т. д.
2. [Ожидания](/trik/programming-visual/blocks.md#waiting-blocks) — блоки, ждущие наступления какого-либо события: определённых показаний датчиков, нажатия на кнопку и т. д.
3. [Рисования](/trik/programming-visual/blocks.md#bloki-risovaniya) — блоки, используемые для вывода графики и текста на экран.

Блоки, доступные для всех платформ см. в статье

{% content-ref url="/pages/-M0P0XKqjxR8vRCElOaf" %}
[Общие блоки](/studio/programming-visual/blocks.md)
{% endcontent-ref %}

## Блоки действия <a href="#action-blocks" id="action-blocks"></a>

<table data-header-hidden><thead><tr><th width="219.33333333333331">Вид</th><th align="center">Название</th><th>Описание</th></tr></thead><tbody><tr><td>Вид</td><td align="center">Название</td><td>Описание</td></tr><tr><td><img src="/files/-M57QXJiHc6qgZIyiPRg" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#send-message-to-thread">Отправить сообщение в задачу</a></td><td>Отправляет данное сообщение в параллельную задачу с заданным идентификатором.</td></tr><tr><td><img src="/files/-M57QaGyasyjni8VQga5" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#get-button-code">Получить код кнопки</a></td><td>Сохраняет в указанную переменную код нажатой на роботе кнопки.</td></tr><tr><td><img src="/files/-M57QiEPSYu9I7BBNcH9" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#play-sound">Играть звук</a></td><td>Проигрывает на контроллере звук с заданной частотой и длительностью.</td></tr><tr><td><img src="/files/-M57QmLtcyz0CBzpXa6G" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#igrat-zvukovoi-fail">Играть звуковой файл</a></td><td>Проиграть на контроллере заданный звуковой файл.</td></tr><tr><td><img src="/files/-M57Qp9uJVF-ZFFq7fAi" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#motors-forward">Моторы вперёд</a></td><td>Включить моторы по заданным портам с заданной мощностью.</td></tr><tr><td><img src="/files/-M57QrQI76KSJfeBGIAn" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#motors-backward">Моторы назад</a></td><td>Включить моторы в режиме реверса по заданным портам с заданной мощностью.</td></tr><tr><td><img src="/files/-M57Qt8z1UfpFqGfCMXH" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#stop-motors">Моторы стоп</a></td><td>Выключить моторы по заданным портам.</td></tr><tr><td><img src="/files/-M57Qvi0g3VL0tbuXBsu" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#clear-encoder">Сбросить показания энкодера</a></td><td>Сбросить показания количества оборотов моторов по указанным портам.</td></tr><tr><td><img src="/files/-M57R2jBMdeeLyhM02ne" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#uglovoi-servomotor">Угловой сервомотор</a></td><td>Установить валы угловых сервомоторов на указанных портах в указанное положение</td></tr><tr><td><img src="/files/-M57R81udW81QciRNj1T" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#say">Сказать</a></td><td>Произнести с помощью динамика фразу, переданную в качестве аргумента блока.</td></tr><tr><td><img src="/files/-M57RAxT3_G5--akNH4A" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#led">Светодиод</a></td><td>Установить указанный цвет светодиода на корпусе контроллера.</td></tr><tr><td><img src="/files/-M57RFMIzub5YqwpZOc4" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#system-call">Системный вызов</a></td><td>Блок имеет логический параметр «Код». Если он имеет значение «Истина», содержимое параметра «Команда» генерируется напрямую в текст программы при генерации этого блока. Если «Ложь», генерируется вызов консольной команды операционной системы.</td></tr><tr><td><img src="/files/-M57RS3Q4ZTwd9ASoTXU" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#initialize-videocamera">Включить видеокамеру</a></td><td>Включить видеокамеру на контроллере в одном из трёх режимов.</td></tr><tr><td><img src="/files/-M57eSYv5fme97XrUIUp" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#vyklyuchit-videokameru">Выключить видеокамеру</a></td><td>Выключить видеокамеру.</td></tr><tr><td><img src="/files/-M57SZsbVuv2dRcL2Ukr" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#detect-videocamera">Детектировать по камере</a></td><td>Фиксирует изображение в центре кадра и инициализирует им датчик линии или датчик объекта.</td></tr><tr><td><img src="/files/-M57Sesq_8LGWobTco5h" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#line-detector-into-variable">Датчик линии в переменную</a></td><td>Помещает текущее показание датчика линии в указанную переменную.</td></tr><tr><td><img src="/files/-M57RVnFDrRCX7XLLdwn" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#camera-on">Запустить видеотрансляцию</a></td><td>Запускает видеотрансляцию на роботе.</td></tr><tr><td><img src="/files/-M57earRZPK8SU4o2FNV" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#otklyuchit-videotranslyaciyu">Отключить видеотрансляцию</a></td><td>Останавливает видеотрансляцию с камеры робота.</td></tr><tr><td><img src="/files/-M57RxAFVN35PyCwb4q4" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#send-message">Послать сообщение</a></td><td>Отправляет данное сообщение роботу с данным бортовым номером.</td></tr><tr><td><img src="/files/-M57S2sZfMFu2W5utr4T" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#write-to-file">Записать в файл</a></td><td>Записывает значение данного выражения в заданный файл на роботе.</td></tr><tr><td><img src="/files/-M57S7jgyTLmUKbLQ7XT" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#remove-file">Удалить файл</a></td><td>Удаляет заданный файл на роботе.</td></tr><tr><td><img src="/files/-M57eeLDEnLLI1jbmK2D" alt="" data-size="original"> </td><td align="center"><a href="/pages/-M032rQkmzbGrjWrrn3_#kalibrovka-giroskopa">Калибровка гироскопа</a></td><td>Устанавливает гироскоп в 0 в текущей позиции.</td></tr><tr><td><img src="/files/5x4102B0nZcB2db9gwdQ" alt="" data-size="original"></td><td align="center"><a href="#join-network">Join network</a></td><td>Устанавливает соединение между роботами и объединяет их в одну сеть.</td></tr></tbody></table>

### Отправить сообщение в задачу <a href="#send-message-to-thread" id="send-message-to-thread"></a>

<img src="/files/-M583uRjOrCpHJIplt5t" alt="Отправить сообщение в задачу" width="375">

Отправляет данное сообщение в параллельную задачу с заданным идентификатором (идентификатор должен быть указан при создании задачи в блоке [«Параллельные задачи»](/studio/programming-visual/blocks.md#fork)).\
\
В качестве сообщения может быть любое выражение.

### Получить код кнопки <a href="#get-button-code" id="get-button-code"></a>

![Получить код кнопки](/files/-M584J92w9wcfy3VMYoh)

Сохраняет в указанную переменную код нажатой на роботе кнопки.\
\
Свойство «Ожидание» позволяет дождаться или не дожидаться, когда кнопка действительно будет нажата. Если нажатия кнопки блок не дожидается и кнопка не нажата, переменной присваивается значение «-1».

### Играть звук <a href="#play-sound" id="play-sound"></a>

![Играть звук](/files/-M584M1owLj95nZKiFAA)

Проигрывает на контроллере звук с заданной частотой и длительностью.

### Играть звуковой файл

![Играть звуковой файл](/files/-M584PA6gcjuLPNc_G_V)

Проиграть на контроллере заданный звуковой файл.\
\
Файл должен быть заранее загружен на контроллер. Путь до файла указывается относительно папки `trik` на контроллере. Загрузить файл на контроллер можно, например, с помощью программы [WinSCP](/studio/utilities/winscp.md).

### Моторы вперёд <a href="#motors-forward" id="motors-forward"></a>

![Моторы вперед](/files/-M584RejWRVmyNIbxoDS)

Включить моторы по заданным портам с заданной мощностью.\
\
Порты задаются строками M1, M2, M3 и M4, разделенными запятыми. Мощность задается в процентах числом от -100 до 100. Если задано отрицательное значение, мотор включается в режиме реверса.

### Моторы назад <a href="#motors-backward" id="motors-backward"></a>

![Моторы назад](/files/-M584UOkF5zwceg-r76w)

Включить моторы в режиме реверса по заданным портам с заданной мощностью.\
\
Параметры аналогичны параметрами блока [«Моторы вперёд»](/trik/programming-visual/blocks.md#motors-forward).

### Моторы стоп <a href="#stop-motors" id="stop-motors"></a>

![Моторы стоп](/files/-M584XE2UGPmLKBlpRfe)

Выключить моторы по заданным портам.\
\
Порты задаются строками M1, M2, M3 и M4, разделенными запятыми.

### Сбросить показания энкодера <a href="#clear-encoder" id="clear-encoder"></a>

<img src="/files/-M584bbH4xIwGd2Fpt-o" alt="Сбросить показания энкодера" width="563">

Сбросить показания количества оборотов моторов по указанным портам.\
\
Порты задаются строками E1, E2, E3 и E4, разделенными запятыми.

### Угловой сервомотор

![Угловой сервомотор](/files/-M584i5kCPyqbScWz19X)

Установить валы угловых сервомоторов на указанных портах в указанное положение (в градусах, от -90 до 90).\
\
Порты задаются строками, разделенными запятыми.

### Сказать <a href="#say" id="say"></a>

![Сказать](/files/-M584kOl1brqm1u53t25)

Произнести с помощью динамика фразу, переданную в качестве аргумента блока.

### Светодиод <a href="#led" id="led"></a>

![Светодиод](/files/-M584nGic6Z3JYwk5tGl)

Установить указанный цвет светодиода на корпусе контроллера.

### Системный вызов <a href="#system-call" id="system-call"></a>

![Системный вызов](/files/-M584rWH7bcpygz_zl8J)

Блок имеет логический параметр «Код». Если он имеет значение «Истина», содержимое параметра «Команда» генерируется напрямую в текст программы при генерации этого блока. Если «Ложь», генерируется вызов консольной команды операционной системы.

### Включить видеокамеру <a href="#initialize-videocamera" id="initialize-videocamera"></a>

![Включить видеокамеру](/files/-M5851KeCR18SnT0QHny)

Включить видеокамеру на контроллере в одном из трёх режимов:

1. **Сенсор линии** — детектирует цветную линию в центре кадра и в дальнейшем возвращает отклонение центра линии от центра кадра, как число в интервале от -100 (влево) до 100 (вправо).
2. **Сенсор объекта** — детектирует контрастный объект в центре кадра и в дальнейшем возвращает координаты его центра и диаметр в пикселях.
3. **Сенсор цвета** — возвращает доминирующий цвет в центре кадра в виде его координат в цветовой шкале RGB.

### Детектировать по камере <a href="#detect-videocamera" id="detect-videocamera"></a>

![Детектировать по камере](/files/-M56TT9WVmZRRK2KRFSD)

Фиксирует изображение в центре кадра и инициализирует им датчик линии или датчик объекта. Камера должна быть включена в соответствующем режиме блоком [«Включить видеокамеру»](/trik/programming-visual/blocks.md#initialize-videocamera).

### Датчик линии в переменную <a href="#line-detector-into-variable" id="line-detector-into-variable"></a>

![Датчик линии в переменную](/files/-M585cs06Wd8qwxeuZvW)

Помещает текущее показание датчика линии в указанную переменную.\
\
Камера должна быть включена в режиме датчика линии блоком [«Включить видеокамеру»](/trik/programming-visual/blocks.md#initialize-videocamera) и инициализирована блоком [«Детектировать по камере»](/trik/programming-visual/blocks.md#detect-videocamera).

### Запустить видеотрансляцию <a href="#camera-on" id="camera-on"></a>

![Запустить видеотрансляцию](/files/-M585gD84zEiNNaqb_Wz)

Запускает видеотрансляцию на роботе.\
\
Видео может быть просмотрено на пульте управления ТРИК или в браузере по адресу вида:\
`{ip-адрес робота}:8080/?action=stream/`.

### Послать сообщение <a href="#send-message" id="send-message"></a>

![Послать сообщение](/files/-M585_bUADBux_LqLMIk)

Отправляет данное сообщение роботу с данным бортовым номером.\
\
Робот должен быть в той же сети, что и робот, отправляющий сообщение, и зарегистрирован как ведущий или ведомый с помощью меню `Настройки → Сообщения` на роботе. Если роботов с данным бортовым номером в сети несколько, сообщение получат все они.

### Записать в файл <a href="#write-to-file" id="write-to-file"></a>

![Записать в файл](/files/-M585Xzsv8xftnx445LL)

Записывает значение данного выражения в заданный файл на роботе.\
\
Путь до файла может быть абсолютным или относительно папки с `trik-studio.exe`.\
\
Файл можно получить с контроллера, например, с помощью программы [WinSCP](/studio/utilities/winscp.md) для Windows или scp для Linux.

### Удалить файл <a href="#remove-file" id="remove-file"></a>

![Удалить файл](/files/-M585VCANzrPGpAHeq7O)

Удаляет заданный файл на роботе.\
\
Путь до файла может быть абсолютным или относительно папки с `trik-studio.exe`.

### Выключить видеокамеру

![Выключить видеокамеру](/files/-M585R708SOuIH77Yor8)

Выключает видеокамеру.

### Отключить видеотрансляцию

![Отключить видеотрансляцию](/files/-M585Ne4AyFOPT5ZBdT1)

Останавливает видеотрансляцию с камеры робота.

### Калибровка гироскопа

<img src="/files/-M585JdJVY7Fqut3m6b8" alt="Калибровка гироскопа" width="188">

Устанавливает гироскоп в 0 в текущей позиции.

### Join network

<figure><img src="/files/BjsgU5SYtQhJ1zxMkgq9" alt="" width="157"><figcaption><p>Join network</p></figcaption></figure>

Устанавливает соединение между роботами и объединяет их в одну сеть.\
Имеет 3 свойства: **Address**, **Порт** и **Бортномер**.\
В свойстве **Address** указывается ip-адрес робота или экземпляра TRIK Studio, к которой он подключается.\
В свойстве **Порт** указываем номер порта, начиная с -1. Следующий экземпляр TRIK Studio будет иметь номер 0, следующий 1 и так далее.\
В свойстве **Бортномер** указывается бортномер вашего робота или TRIK Studio, начиная с 1. Если у нескольких роботов будет одинаковый бортномер, то они будут объединены в группу.

## Блоки ожидания <a href="#waiting-blocks" id="waiting-blocks"></a>

| Вид                                                                 |                                                Название                                               | Описание                                                                                                                                              |
| ------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="/files/-M57ypVi6IEo1RijFtkO" alt="" data-size="original"> | [Получить сообщение из другой задачи](/trik/programming-visual/blocks.md#receive-message-from-thread) | Ждать получения сообщения из другой параллельной задачи.                                                                                              |
| ![](/files/-MHFotHDB2zv6DZZh-ty)                                    |                 [Пользовательский ввод](/trik/programming-visual/blocks.md#userinput)                 | Ждать ввода значения от пользователя.                                                                                                                 |
| <img src="/files/-M57zKmUw9MPthrXRzuK" alt="" data-size="original"> |                [Ждать гиродатчик](/trik/programming-visual/blocks.md#zhdat-girodatchik)               | Ждать, пока значение, возвращаемое гиродатчиком на указанном порту, не будет сравнимо с указанным в значении параметра «градусы».                     |
| <img src="/files/-M57zO8T739p60_XRLhD" alt="" data-size="original"> |            [Ждать датчик касания](/trik/programming-visual/blocks.md#wait-for-touch-sensor)           | Ждать срабатывания датчика касания на указанном порту.                                                                                                |
| <img src="/files/-M57zS2SvVfh9Rfjox1U" alt="" data-size="original"> |                    [Ждать свет](/trik/programming-visual/blocks.md#wait-for-light)                    | Ждать, пока значение, возвращаемое сенсором света на указанном порту, не будет сравнимо с указанным значением в параметре «Проценты».                 |
| <img src="/files/-M57zbAEV2VNZIm3dNmT" alt="" data-size="original"> |     [Ждать УЗ датчик расстояния](/trik/programming-visual/blocks.md#wait-for-ultrasonic-distance)     | Ждать, пока расстояние, возвращаемое ультразвуковым сенсором расстояния, не будет сравнимо со значением, указанным в параметре «Расстояние».          |
| <img src="/files/-M57zi--uScH_i_9EzPI" alt="" data-size="original"> |      [Ждать ИК датчик расстояния](/trik/programming-visual/blocks.md#wait-for-infrared-distance)      | Ждать, пока расстояние, возвращаемое инфракрасным сенсором расстояния, не будет сравнимо с указанным в значении параметра «Расстояние».               |
| <img src="/files/-M57zl2xDEXflqasoKBr" alt="" data-size="original"> |                  [Ждать энкодер](/trik/programming-visual/blocks.md#wait-for-encoder)                 | Ждать, пока показания счетчика количества оборотов на заданном порту не станут больше или меньше указанного в значении параметра «Предел оборотов».   |
| <img src="/files/-M57zo5QhGbG1jYYl-bW" alt="" data-size="original"> |               [Ждать нажатия кнопки](/trik/programming-visual/blocks.md#wait-for-button)              | Ждать, пока не будет нажата указанная кнопка на корпусе робота.                                                                                       |
| <img src="/files/-M57zvnNNubsZZCgmTUu" alt="" data-size="original"> |               [Получить сообщение](/trik/programming-visual/blocks.md#wait-for-message)               | Ждать получения сообщения через систему почтовых ящиков. Когда сообщение будет получено, оно будет помещено в указанную в параметре блока переменную. |
| <img src="/files/-M57zzClLKdwrmgj9ATp" alt="" data-size="original"> |          [Ждать кнопки на пульте](/trik/programming-visual/blocks.md#wait-for-gamepad-button)         | Ждать нажатия на кнопку на пульте, подключённом к роботу.                                                                                             |
| <img src="/files/-M58-6B1MYOp6WYtyfhO" alt="" data-size="original"> |            [Ждать нажатия на пульт](/trik/programming-visual/blocks.md#wait-for-pad-press)            | Ждать нажатия на одну из двух активных областей пульта, подключённого к роботу.                                                                       |
| <img src="/files/-M58-9LnSPpJnIP9plqI" alt="" data-size="original"> |          [Ждать "руля" на пульте](/trik/programming-visual/blocks.md#wait-for-gamepad-wheel)          | Ждать нужного наклона пульта, подключённого к роботу.                                                                                                 |
| <img src="/files/-M58-C66OVf_TIch0RDx" alt="" data-size="original"> |       [Ждать отключения пульта](/trik/programming-visual/blocks.md#wait-for-gamepad-disconnect)       | Ждать, пока пульт не отключится от робота. Если пульт не подключен, программа продолжит выполнение.                                                   |
| <img src="/files/-M58-E9XVfErkA5ANFEw" alt="" data-size="original"> |        [Ждать подключения пульта](/trik/programming-visual/blocks.md#wait-for-gamepad-connect)        | Ждать, пока к роботу не подключится пульт. Если пульт уже подключен, программа продолжит выполнение.                                                  |

### Получить сообщение из другой задачи <a href="#receive-message-from-thread" id="receive-message-from-thread"></a>

![Получить сообщение из другой задачи](/files/-M587b6vLBc_UZlx81sw)

Ждать получения сообщения из другой параллельной задачи.\
\
Когда сообщение будет получено, оно будет присвоено указанной в блоке переменной.\
\
Свойство «Дождаться сообщения» позволяет указать, что делать, если очередь сообщений пуста: дождаться прихода нового сообщения или продолжить работу, присвоив переменной пустую строку.\
\
Сообщение автоматически приводится к типу, соответствующему типу переменной-приёмника. Пример: если вы посылаете число в виде строки, то оно будет принято как число.

### Пользовательский ввод <a href="#userinput" id="userinput"></a>

![Пользовательский ввод](/files/-MHFoZWxXEMPetF10goi)

Ждать ввода значения от пользователя. После ввода значение будет присвоено указанной в блоке переменной.

#### Свойства

Блок «Пользовательский ввод» имеет 3 свойства:

| Свойство         | Описание                          |
| ---------------- | --------------------------------- |
| **Переменная**   | Имя переменной.                   |
| **По умолчанию** | Значение переменной по умолчанию. |
| **Текст**        | Описание поля ввода.              |

**Пример**

| **Программа**                                                | Исполнение программы                                         |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| <p></p><p><img src="/files/-MHFu3BiOxwlNUiB9itw" alt=""></p> | <p></p><p><img src="/files/-MHFu8R6EJhWeXYr84xh" alt=""></p> |

### Ждать гиродатчик

![Ждать гиродатчик](/files/-M587eGNbbB8tI78mu04)

Ждать, пока значение, возвращаемое гиродатчиком на указанном порту, не будет сравнимо с указанным в значении параметра «градусы».

### Ждать датчик касания <a href="#wait-for-touch-sensor" id="wait-for-touch-sensor"></a>

![Ждать датчик касания](/files/-M587gpayfJef9HH-JnS)

Ждать срабатывания датчика касания на указанном порту.

### Ждать свет <a href="#wait-for-light" id="wait-for-light"></a>

![Ждать свет](/files/-M587Yu5kT5w4dpSGisS)

Ждать, пока значение, возвращаемое сенсором света на указанном порту, не будет сравнимо с указанным значением в параметре «Проценты».\
\
Параметры:\
«Проценты» — значение для сравнения со значением, возвращаемым датчиком света.\
«Порт» — порт, к которому подключен сенсор света.\
«Считанное значение» — операция, которая будет использоваться для сравнения со значением параметра «Проценты».

### Ждать УЗ датчик расстояния <a href="#wait-for-ultrasonic-distance" id="wait-for-ultrasonic-distance"></a>

![Ждать УЗ датчик расстояния](/files/-M587WCP5OjHG86wu2Zm)

Ждать, пока расстояние, возвращаемое ультразвуковым сенсором расстояния, не будет сравнимо со значением, указанным в параметре «Расстояние» (расстояние задается в сантиметрах, от 0 до 300).\
\
Параметры:\
«Расстояние» — значение для сравнения со значением, возвращаемым датчиком расстояния.\
«Порт» — порт, к которому подключен датчик расстояния.\
«Считанное значение» — операция, которая будет использоваться для сравнения со значением параметра «Расстояние».

### Ждать ИК датчик расстояния <a href="#wait-for-infrared-distance" id="wait-for-infrared-distance"></a>

![Ждать ИК датчик расстояния](/files/-M587SIFUrsraht9Qbky)

Ждать, пока расстояние, возвращаемое инфракрасным сенсором расстояния, не будет сравнимо с указанным в значении параметра «Расстояние».\
\
По умолчанию на портах A1 и A2 расстояние задается в сантиметрах (от 0 до 100), к остальным подключение не рекомендуется, так как чистое значение с датчика будет обработано с ожиданием другого подключенного датчика.\
\
Еще один параметр — номер порта, к которому подключен датчик расстояния. Также параметром указывается операция, которая будет использоваться для сравнения с введенным расстоянием.

### Ждать энкодер <a href="#wait-for-encoder" id="wait-for-encoder"></a>

![Ждать энкодер](/files/-M587LCzIrUOaTVg9C4b)

Ждать, пока показания счетчика количества оборотов на заданном порту не станут больше или меньше указанного в значении параметра «Предел оборотов».

### Ждать нажатия кнопки <a href="#wait-for-button" id="wait-for-button"></a>

![Ждать нажатия кнопки](/files/-M587I3TRtlzluXsZfN0)

Ждать, пока не будет нажата указанная кнопка на корпусе робота.

### Получить сообщение <a href="#wait-for-message" id="wait-for-message"></a>

![Получить сообщение](/files/-M587FFDQKmimUVl55Ya)

Ждать получения сообщения через систему почтовых ящиков. Когда сообщение будет получено, оно будет помещено в указанную в параметре блока переменную.\
\
Свойство «Дождаться сообщения» позволяет указать, что делать, если очередь сообщений пуста: дождаться прихода нового сообщения или продолжить работу, положив в переменную пустую строку.\
\
Сообщение автоматически приводится к типу, соответствующему типу переменной-приёмника, то есть, например, можно послать число в виде строки и принять его как число.

### Ждать кнопки на пульте <a href="#wait-for-gamepad-button" id="wait-for-gamepad-button"></a>

![Ждать кнопки на пульте](/files/-M587CGEYyvb_XtS-GUF)

Ждать нажатия на кнопку на пульте, подключённом к роботу. Кнопки имеют номера от 1 до 5.

### Ждать нажатия на пульт <a href="#wait-for-pad-press" id="wait-for-pad-press"></a>

![Ждать нажатия на пульт](/files/-M5878byJ41xEC0fqSm4)

Ждать нажатия на одну из двух активных областей пульта, подключённого к роботу. Координаты нажатия можно получить с помощью сенсорных переменных [«gamepadPad»](/trik/programming-visual/sensory-variables.md#gamepadpad).

### Ждать «руля» на пульте <a href="#wait-for-gamepad-wheel" id="wait-for-gamepad-wheel"></a>

![Ждать «руля» на пульте](/files/-M5876OEn8PE8pe3GwiE)

Ждать нужного наклона пульта, подключённого к роботу.\
\
Наклон регистрируется только если на пульте включён режим «руля», угол наклона кодируется числами от -100 (максимально влево) до 100 (максимально вправо).\
\
Также параметром указывается операция, которая будет использоваться для сравнения со значением параметра «Угол».

### Ждать отключения пульта <a href="#wait-for-gamepad-disconnect" id="wait-for-gamepad-disconnect"></a>

![Ждать отключения пульта](/files/-M5873VZcqz10PTfhDZr)

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

### Ждать подключения пульта <a href="#wait-for-gamepad-connect" id="wait-for-gamepad-connect"></a>

![Ждать подключения пульта](/files/-M58712VVt04Ex5ZahZt)

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

## Блоки рисования

| Вид                                                                 |                                    Название                                   | Описание                                                                                                                                                                                                         |
| ------------------------------------------------------------------- | :---------------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="/files/-M580iWSqeTAQwq3hWB3" alt="" data-size="original"> |         [Цвет кисти](/trik/programming-visual/blocks.md#painter-color)        | Указать цвет, которым будут рисоваться простые графические фигуры на экране робота.                                                                                                                              |
| <img src="/files/-M580kkbRdA4q-cb10MU" alt="" data-size="original"> |        [Ширина кисти](/trik/programming-visual/blocks.md#painter-width)       | Указать ширину линии, которой будут рисоваться простые графические фигуры на экране робота.                                                                                                                      |
| <img src="/files/-M580nHEEuZ2xfB8PA8Y" alt="" data-size="original"> |       [Нарисовать точку](/trik/programming-visual/blocks.md#draw-pixel)       | Нарисовать на экране точку в указанных координатах.                                                                                                                                                              |
| <img src="/files/-M580r3HM3j4oEEU2KcL" alt="" data-size="original"> |        [Нарисовать линию](/trik/programming-visual/blocks.md#draw-line)       | Нарисовать на экране отрезок. В качестве параметров блоку указываются концы отрезка.                                                                                                                             |
| <img src="/files/-M580pC_bqwcbeEbnung" alt="" data-size="original"> | [Нарисовать прямоугольник](/trik/programming-visual/blocks.md#draw-rectangle) | Нарисовать на экране прямоугольник. В качестве параметров указываются координаты левого верхнего угла, ширина и высота прямоугольника.                                                                           |
| <img src="/files/-M580tMbl4I0nHUrz9s9" alt="" data-size="original"> |      [Нарисовать эллипс](/trik/programming-visual/blocks.md#draw-ellipse)     | Нарисовать на экране эллипс, вписанный в заданный прямоугольник.                                                                                                                                                 |
| <img src="/files/-M580vdpu51HDgOGV-RD" alt="" data-size="original"> |         [Нарисовать дугу](/trik/programming-visual/blocks.md#draw-arc)        | Нарисовать на экране дугу, заданную координатами прямоугольника, в который она будет вписана, и углами (в градусах) её начала и конца на окружности. Если начало и конец совпадают, будет нарисована окружность. |
| <img src="/files/-M580yAPcSOa8aWR-nZA" alt="" data-size="original"> |              [Смайлик](/trik/programming-visual/blocks.md#smile)              | Нарисовать на экране смайлик.                                                                                                                                                                                    |
| <img src="/files/-M581-PnAitsHQgnhcDE" alt="" data-size="original"> |        [Грустный смайлик](/trik/programming-visual/blocks.md#sad-smile)       | Нарисовать на экране грустный смайлик.                                                                                                                                                                           |
| <img src="/files/-M5812dbsuVMqpcwmSPm" alt="" data-size="original"> |        [Цвет фона](/trik/programming-visual/blocks.md#background-color)       | Задаёт цвет фона экрана.                                                                                                                                                                                         |
| <img src="/files/-M5814kvOBCqnro2Pdw5" alt="" data-size="original"> |       [Напечатать текст](/trik/programming-visual/blocks.md#print-text)       | Печатает заданную строку в заданном месте на экране робота. Значение свойства «Текст» по умолчанию трактуется как строка в чистом виде, оно так и будет выведено на экран.                                       |
| <img src="/files/-M5818T918Net1_b0IuL" alt="" data-size="original"> |       [Очистить экран](/trik/programming-visual/blocks.md#clear-screen)       | Стереть всё, что нарисовано на экране.                                                                                                                                                                           |

### Цвет кисти <a href="#painter-color" id="painter-color"></a>

![Цвет кисти](/files/-M587toEF8-BoaHIzvny)

Указать цвет, которым будут рисоваться простые графические фигуры на экране робота.

### Ширина кисти <a href="#painter-width" id="painter-width"></a>

![Ширина кисти](/files/-M587va0sqyrwp6gAlfd)

Указать ширину линии, которой будут рисоваться простые графические фигуры на экране робота.

### Нарисовать точку <a href="#draw-pixel" id="draw-pixel"></a>

![Нарисовать точку](/files/-M587xh14MetvhWCPlAW)

Нарисовать на экране точку в указанных координатах.

### Нарисовать линию <a href="#draw-line" id="draw-line"></a>

![Нарисовать линию](/files/-M587zY89sIny2uEiT9H)

Нарисовать на экране отрезок. В качестве параметров блоку указываются концы отрезка.

### Нарисовать прямоугольник <a href="#draw-rectangle" id="draw-rectangle"></a>

![Нарисовать прямоугольник](/files/-M5880LQSXqGtFcxaM63)

Нарисовать на экране прямоугольник. В качестве параметров указываются координаты левого верхнего угла, ширина и высота прямоугольника.

### Нарисовать эллипс <a href="#draw-ellipse" id="draw-ellipse"></a>

![Нарисовать эллипс](/files/-M5882RNQ_qc7GRcY0aQ)

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

### Нарисовать дугу <a href="#draw-arc" id="draw-arc"></a>

![Нарисовать дугу](/files/-M58860UAVYhHUnttrW6)

Нарисовать на экране дугу, заданную координатами прямоугольника, в который она будет вписана, и углами (в градусах) её начала и конца на окружности. Если начало и конец совпадают, будет нарисована окружность.

### Смайлик <a href="#smile" id="smile"></a>

![Смайлик](/files/-M5888W2NZjgbWIXO_Ra)

Нарисовать на экране смайлик.

### Грустный смайлик <a href="#sad-smile" id="sad-smile"></a>

![Грустный смайлик](/files/-M588AfNbHIM1rJapqM6)

Нарисовать на экране грустный смайлик.

### Цвет фона <a href="#background-color" id="background-color"></a>

![Цвет фона](/files/-M588GN40A8ngsrNEaso)

Задаёт цвет фона экрана.

### Напечатать текст <a href="#print-text" id="print-text"></a>

![Напечатать текст](/files/-M588IPKZ_dNh7NmOk9-)

Печатает заданную строку в заданном месте на экране робота.

#### Свойства

| Свойство          | Значение                                                                                              |
| ----------------- | ----------------------------------------------------------------------------------------------------- |
| Вычислять         | <p>Истина — вывод на экран значения переменной или выражения.</p><p>Ложь — вывод на экран текста.</p> |
| Текст             | Текст / имя переменной (выражение) для вывода на экран.                                               |
| Обновить картинку | <p>Истина — обновить экран.<br>Ложь — не обновлять экран.</p>                                         |
| X, Y              | Координаты начала текста.                                                                             |
| Размер            | Размер шрифта в пикселях (необязательный параметр, по-умолчанию шрифт размером 20 пикселей).          |

#### Как вывести текст на экран?

Для вывода текста:

1. В свойстве «Текст» напишите нужный текст.
2. Уберите галочку в свойстве «Вычислять».

#### Как вывести значение переменной на экран?

Для вывода значения переменной:

1. В свойстве «Текст» напишите имя переменной.
2. Поставьте галочку в свойстве «Вычислять».

### Очистить экран <a href="#clear-screen" id="clear-screen"></a>

![Очистить экран](/files/-M588KBGD8M1LWAwR_li)

Стереть всё, что нарисовано на экране.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.trikset.com/trik/programming-visual/blocks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
