Програма для їзди по чорній лінії ev3. Рух по лінії з двома датчиками освітленості

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

Існує безліч підходів для вирішення завдання проходження по лінії. Вибір одного з них залежить від конкретної конструкції робота, від кількості сенсорів, їх розташування щодо коліс і один одного.

У нашому прикладі буде розібрано три приклади робота на основі основної навчальної моделі Robot Educator.

Для початку, збираємо базову модель навчального робота Robot Educator, для цього можна використовувати інструкцію в програмному забезпеченні MINDSTORMS EV3.

Так само, для прикладів нам знадобляться, датчики світла-кольору EV3. Ці датчики світла, як ніякі інші, найкращим чином підходять для нашої задачі, при роботі з ними, нам не доведеться боятиметься про інтенсивності навколишнього світу. Для цього датчика, в програмах ми будемо використовувати режим відбитого світла, при якому оцінюється кількість відбитого світла червоного підсвічування датчика. Межі показань датчика 0 - 100 одиниць, для «відсутності відображення» і «повного відображення» відповідно.

Для прикладу ми розберемо 3 приклади програм для руху по чорній траєкторії зображеної на рівному, світлому тлі:

· Один датчик, з П регулятором.

· Один датчик, з ПK регулятором.

· Два датчика.

Приклад 1. Один датчик, з П регулятором.

конструкція

Датчик світла встановлюється на балку, зручно розташовану на моделі.


алгоритм

Дія алгоритму засноване на тому, що в залежності від ступеня перекриття, пучка підсвічування датчика чорної лінією, що повертаються датчиком свідчення градиентно варіюються. Робот зберігає положення датчика світла на кордоні чорної лінії. Перетворюючи вхідні дані від датчика світла, система управління формує значення швидкості повороту робота.


Так як на реальній траєкторії датчик формує значення в усьому своєму робочому діапазоні (0-100), то значенням до якого прагнути робот, вибрано 50. У цьому випадку значення передаються функції повороту формуються в діапазоні -50 - 50, але цих значень недостатньо для крутого повороту траєкторії. З цього слід розширити діапазон в півтора рази до -75 - 75.

У підсумку, в програмі, функція калькулятора є простим пропорційним регулятором. Функція якого ( (A-50) * 1.5 ) В робочому діапазоні датчика світла формує значення повороту відповідно до графіка:

Приклад роботи алгоритму

Приклад 2. Один датчик, з ПK регулятором.

Цей приклад складений на тій же конструкції.

Ви напевно помітили, що в попередньому випадку робот надмірно розгойдувався, що не давало йому досить розігнатися. Зараз ми постараємося трохи поліпшити цю ситуацію.

До нашого пропорційного регулятору ми додаємо ще й простий кубічний регулятор, який додасть вигин в функції регулятора. Це дозволить зменшити розгойдування робота поруч потрібної кордоном траєкторії, а так само здійснювати більш сильні ривки при сильному видаленні від неї

На цьому уроці ми продовжимо вивчати використання датчика кольору. Матеріал, викладений нижче, дуже важливий для подальшого вивчення курсу робототехніки. Після того, як ми навчимося використовувати всі датчики конструктора Lego mindstorms EV3, при вирішенні безлічі практичних завдань, будемо спиратися на знання, отримані на цьому занятті.

6.1. Датчик кольору - режим "Яскравість відбитого світла"

Отже, ми приступаємо до вивчення наступного режиму роботи датчика кольору, який називається "Яскравість відбитого світла". В цьому режимі датчик кольору направляє потік червоного світла на сусідній предмет або поверхню і вимірює кількість відбитого світла. Більш темні предмети будуть поглинати світловий потік, тому датчик буде показувати менше значення, в порівнянні з більш світлими поверхнями. Діапазон значень датчика вимірюється від 0 (Дуже темний) до 100 (Дуже яскравий). Даний режим роботи датчика кольору використовується в безлічі завдань з робототехніки, наприклад, для організації руху робота по заданому маршруту уздовж чорної лінії, нанесеної на біле покриття. При використанні цього режиму рекомендується розташовувати датчик таким чином, щоб відстань від нього до досліджуваної поверхні становило приблизно 1 см (Рис. 1).

Мал. 1

Перейдемо до практичних занять: датчик кольору вже встановлений на нашому роботі і спрямований вниз до поверхні покриття, по якому буде пересуватися наш робот. Відстань між датчиком і підлогою відповідає рекомендованому. Датчик кольору вже підключений до порту "2" модуля EV3. Давайте завантажимо середу програмування, підключимо робота до середовища і для проведення замірів скористаємося полем з кольоровими смугами, виготовленим нами для виконання завдань Розділу 5.4 Уроку №5. Встановимо робота, таким чином, щоб датчик кольору розташувався над білою поверхнею. "Сторінку апаратних засобів" середовища програмування перемкнемо в режим "Перегляд портів" (Рис. 2 поз. 1). У цьому режимі ми можемо спостерігати всі виконані нами підключення. на Мал. 2 відображено підключення до портів "B" і "C" двох великих моторів, а до порту "2" - датчика кольору.

Мал. 2

Для вибору варіанта відображення показників датчиків необхідно натиснути на зображення датчика і вибрати потрібний режим (Рис. 3)

Мал. 3

на Мал. 2 поз. 2 ми бачимо, що значення показання датчика кольору над білою поверхнею одно 84 . У вашому випадку може вийти інше значення, адже воно залежить від матеріалу поверхні і освітлення всередині приміщення: частина освітлення, відбиваючись від поверхні, потрапляє на датчик і впливає на його показання. Встановивши робота таким чином, щоб датчик кольору розташувався над чорною смугою, зафіксуємо його показання (Рис. 4). Спробуйте виміряти самостійно значення відбитого світла над рештою кольоровими смугами. Які значення у вас вийшли? Напишіть відповідь в коментарі до цього уроку.

Мал. 4

Давайте тепер повирішуємо практичні завдання.

Завдання №11: необхідно написати програму руху робота, зупиняється при досягненні чорної лінії.

Рішення:

Проведений експеримент показав нам, що при перетині чорної лінії, значення датчика кольору в режимі "Яскравість відбитого світла" дорівнює 6 . Значить, для виконання завдання №11 наш робот повинен рухатися прямолінійно, поки шукане значення датчика кольору не стане менше 7 . Скористаємося вже знайомим нам програмним блоком "Очікування" Помаранчевої палітри. Виберемо необхідний умові завдання режим роботи програмного блоку "Очікування" (Рис. 5).

Мал. 5

Необхідно також налаштувати параметри програмного блоку "Очікування". параметр "Тип порівняння" (Рис. 6 поз. 1) може набувати таких значень: "Так само"=0, "Не дорівнює"=1, "Більше"=2, "Більше чи рівно"=3, "Менше"=4, "Менше або дорівнює"\u003d 5. У нашому випадку встановимо "Тип порівняння" в значення "Менше". параметр "Порогове значення" встановимо рівним 7 (Рис.6 поз. 2).

Мал. 6

Як тільки встановиться значення датчика кольору менше 7 , Що трапиться, коли датчик кольору виявиться розташованим над чорною лінією, нам необхідно буде вимкнути мотори, зупинивши робота. завдання вирішена (Рис. 7).

Мал. 7

Для продовження занять нам знадобиться виготовити нове поле, що представляє собою чорну окружність діаметром приблизно 1 метр, нанесену на біле поле. Товщина лінії окружності дорівнює 2 - 2,5 см. Для основи поля можна взяти один аркуш паперу розміром A0 (841x1189 мм), склеїти разом два аркуші паперу розміром A1 (594x841 мм). На цьому полі розмітити лінію окружності і зафарбувати її чорною тушшю. Можете також завантажити макет поля, виконаний у форматі Adobe Illustrator, а потім замовити його друк на банерній тканині в друкарні. Розмір макета дорівнює 1250x1250 мм. (Переглянути скачаний нижче макет можна, відкривши його в програмі Adobe Acrobat Reader)

Дане поле стане в нагоді нам для вирішення декількох класичних задач курсу робототехніки.

Завдання №12: необхідно написати програму для робота, що пересувається всередині кола, окантованого чорної окружністю за таким правилом:

  • робот рухається вперед прямолінійно;
  • досягнувши чорної лінії, робот зупиняється;
  • робот від'їжджає назад на два оберти моторів;
  • робот повертає вправо на 90 градусів;
  • рух робота повторюється.

Знання, отримані на попередніх уроках, допоможуть вам самостійно створити програму, вирішальну Завдання №12.

Рішення завдання №12

  1. Почати прямолінійний рух вперед (Рис. 8 поз. 1);
  2. Очікувати перетину чорної лінії датчиком кольору (Рис. 8 поз. 2);
  3. Рухатися назад на 2 обороту (Рис. 8 поз. 3);
  4. Повернути праворуч на 90 градусів (Рис. 8 поз. 4); значення кута повороту розраховано для робота, зібраного за інструкцією small-robot-45544 (Рис. 8 поз. 5);
  5. Повторювати команди 1 - 4 в нескінченному циклі (Рис. 8 поз. 6).

Мал. 8

До роботи датчика кольору в режимі "Яскравість відбитого світла" ми ще неодноразово повернемося, коли будемо розглядати алгоритми руху вздовж чорної лінії. А поки розберемо третій режим роботи датчика кольору.

6.2. Датчик кольору - режим "Яскравість зовнішнього освітлення"

Режим роботи датчика кольору "Яскравість зовнішнього освітлення" дуже схожий на режим "Яскравість відбитого світла", Тільки в цьому випадку датчик не випромінює освітлення, а вимірює природне світлове освітлення навколишнього середовища. Візуально даний режим роботи датчика можна визначити по слабо світиться синього світлодіода. Показання датчика змінюються від 0 (Відсутність світла) до 100 (Найяскравіший світло). При вирішенні практичних завдань, що вимагають вимірювання зовнішнього освітлення, рекомендується розташовувати датчик, так, щоб датчик залишався максимально відкритим і не загороджують один деталями і конструкціями.

Давайте закріпимо датчик кольору на нашому роботі так само, як ми кріпили датчик дотику в Уроці №4 (Рис. 9). Підключимо датчик кольору кабелем до порту "2" модуля EV3. Перейдемо до вирішення практичних завдань.

Мал. 9

Завдання №13: необхідно написати програму, яка змінює швидкість руху нашого робота в залежності від інтенсивності зовнішнього освітлення.

Щоб вирішити це завдання, нам треба дізнатися, як отримувати поточне значення датчика. А допоможе нам в цьому Жовта палітра програмних блоків, яка називається "Датчики".

6.3. Жовта палітра - "Датчики"

Жовта палітра середовища програмування Lego mindstorms EV3 містить програмні блоки, що дозволяють отримувати поточні показники датчиків для подальшої обробки в програмі. На відміну, наприклад, від програмного блоку "Очікування" Помаранчевої палітри, програмні блоки Жовтої палітри відразу ж передають управління до наступних за ними програмним блокам.

Кількість програмних блоків Жовтої палітри відрізняється в домашній і освітньої версії середовища програмування. У домашній версії середовища програмування відсутні програмні блоки для датчиків, що не входять в домашню версію конструктора. Але, при необхідності, їх можна самостійно підключити.

Освітня версія середовища програмування містить програмні блоки для всіх датчиків, які можна використовувати з конструктором Lego mindstorms EV3.

Повернемося ж до вирішення завдання №13 і подивимося, як можна отримувати і обробляти показання датчика кольору. Як ми вже знаємо: діапазон значень датчика кольору в режимі "Яскравість зовнішнього освітлення" знаходиться в межах від 0 до 100 . Такий же діапазон у параметра, що регулює потужність моторів. Спробуємо показанням датчика кольору регулювати потужність моторів в програмному блоці "Рульове управління".

Рішення:


Мал. 10

Давайте завантажимо вийшла програму в робота і запустимо її на виконання. Робот поїхав повільно? Включимо світлодіодний ліхтарик і спробуємо підносити його до датчика кольору на різній відстані. Що відбувається з роботом? Закриємо датчик кольору долонею - що трапилося в цьому випадку? Напишіть відповіді на ці питання в коментарі до уроку.

Завдання - Bonus

Завантажте в робота і запустіть на виконання завдання, зображену на малюнку нижче. Повторіть експерименти зі світлодіодним ліхтариком. Поділіться враженнями в коментарях до уроку.

Для того, щоб змусити робота рухатися плавно по чорній лінії, потрібно змусити його самому вважати швидкість руху.

Людина бачить чорну лінію і її чітку межу. Датчик освітленості працює трохи інакше.

Саме це властивість датчика освітленості - неможливість чітко розрізнити кордон білого і чорного - ми і будемо використовувати для розрахунку швидкості руху.

По-перше, введемо поняття "Ідеальна точка траєкторії".

Показання датчика освітленості коливаються в діапазоні від 20 до 80, частіше за все на білому кольорі показання рівні приблизно 65, на чорному близько 40.

Ідеальна точка - умовна точка приблизно посередині білого і чорного кольорів, слідуючи якій робот буде переміщатися уздовж чорної лінії.

Тут принципово розташування точки - між білим і чорним. Задати її точно на білому або чорному не вийде з математичних причин, чому - буде ясно пізніше.

Емпіричним шляхом ми вирахували, що ідеальну точку можна вирахувати за наступною формулою:

Робот повинен рухатися строго по ідеальній точці. Якщо трапляється відхилення в будь-яку сторону, робот повинен повернутися до цієї точки.

складемо математичний опис завдання.

Початкові дані.

Ідеальна точка.

Поточні показання датчика освітленості.

Результат.

Потужність обертання мотора В.

Потужність обертання мотора С.

Рішення.

Розглянемо дві ситуації. Перша: робот відхилився від чорної лінії в сторону білого.

У цьому випадку робот повинен збільшити потужність обертання мотора В і зменшити потужність мотора С.

У ситуації, коли робот заїжджає на чорну лінію, все навпаки.

Чим сильніше робот відхиляється від ідеальної точки, тим швидше йому треба до неї повернутися.

Але створення такого регулятора - завдання досить непросте, та й не завжди він потрібен в цілому вигляді.

Тому ми вирішили обмежитися тільки П-регулятором, адекватно реагує на відхилення від чорної лінії.

Мовою математики це буде записано так:

де Hb і Hc - підсумкові потужності моторів B і C відповідно,

Hбазовая - якась базова потужність моторів, що визначає швидкість руху робота. Підбирається експериментально, в залежності від конструкції робота і різкості поворотів.

Iтек - поточні показання датчика освітленості.

I ід - розрахована ідеальна точка.

k - коефіцієнт пропорційності, підбирається експериментально.

У третій частині розглянемо, як це запрограмувати в середовищі NXT-G.


Щоб подивитися презентацію з картинками, оформленням і слайдами, скачайте її файл і відкрийте в PowerPoint на своєму комп'ютері.
Текстовий вміст слайдів презентації:
"Алгоритм руху по чорній лінії з одним датчиком кольору" Гурток по «робототехніки» Педагог до езідами Ахмед ЕліевічПрі МБУ ДО «Шелковський ЦТТ» Для вивчення алгоритму руху по чорній лінії, буде використовуватися робот Lego Mindstorms EV3 з одним датчиком кольору Датчик цветаДатчік кольору розрізняє 7 кольорів і може визначити відсутність кольору. Як і в NXT, він може працювати як датчик освещенності.Поле для змагань роботів "Лінія S" Пропонований полігон з трасою в формі букви "S" дозволить вам провести ще одне цікаве тестування створених роботів на швидкість і реакцію. Розглянемо найпростіший алгоритм руху по чорній лінії на одному датчику кольору на EV3.Данний алгоритм є найповільнішим, але самим стабільним.Робот буде рухатися не строго по чорній лінії, а по її кордоні, підвертаючи то вліво, то вправо і поступово переходячи впередАлгорітм дуже простий : якщо датчик бачить чорний колір, то робот повертає в одну сторону, якщо білий - в іншу. Рух по лінії в режимі яскравості відбитого светас двома датчікаміІногда датчик кольору недостатньо ефективно може розрізнити чорний і білий кольори. Вирішення цієї проблеми полягає у використанні датчика не в режимі визначення кольору, а в режимі визначення яскравості відбитого світла. У цьому режимі ми, знаючи значення датчика на темній і світлій поверхні, самостійно можемо говорити, що буде вважатися білим, а що чорним. Тепер визначимо значення яскравості на білої та чорної поверхнях. Для цього в меню блоку EV3 знаходимо вкладку «Додатки модуля» Тепер ви перебуваєте у вікні перегляду портів і можете побачити свідчення всіх датчиків на поточний момент. наші датчики повинні підсвітити червоним, що означає, що вони працюють в режимі визначення яскравості відбитого світла. Якщо ж вони світять синім - у вікні перегляду портів на потрібному порте натискаємо центральну кнопку і вибираємо режим COL-REFLECT.Теперь поставимо робота так, щоб обидва датчика розташовувалися над білою поверхнею. Дивимося на цифри в портах 1 і 4.У нашому випадку, значення 66 і 71 відповідно. Це і будуть значення білого у датчиків. Тепер поставимо робота так, щоб датчики розташовувалися над чорною поверхнею. Знову подивимося значення портів 1 і 4. У нас 5 і 6 відповідно. Це - значення чорного. Далі, ми змінимо попередню програму. А саме - змінимо налаштування перемикачів. Поки у них встановлено Датчик кольору -\u003e Вимірювання -\u003e Колір. Нам же потрібно встановити Датчик кольору -\u003e Порівняння -\u003e Яскравість відбитого светаТеперь ми повинні встановити «тип порівняння» і «порогове значення». Граничне значення - це значення деякого «сірого», значення менше якого ми будемо вважати чорним, а більше - білим. Для першого наближення зручно використовувати середнє значення між білим і чорним кожного датчика. Таким чином, граничне значення першого датчика (порт №1) буде (66 + 5) /2\u003d35.5. Округлимо до 35.Пороговое значення другого датчика (порт №4): (71 + 6) / 2 \u003d 38.5. Округлимо до 38.Теперь виставляємо ці значення в кожному перемикачі соответственно.Вот і все, блоки з рухами залишаються на своїх місцях без змін, так як, якщо ми ставимо в «типі порівняння» знак «<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Так бачить лінію людина:

Так бачить її робот:


Ось цю особливість ми і будемо використовувати при конструюванні і програмуванні робота для категорії змагань «Траєкторія».

Є багато способів навчити робота бачити лінію і пересуватися по ній. Є складні програми і зовсім прості.

Я хочу розповісти про спосіб програмування, який освоять навіть діти 2-3 класів. У цьому віці їм набагато легше дається складання конструкцій за інструкціями, а програмування робота - для них складне завдання. Але цей спосіб дозволить дитині запрограмувати робота на будь-який маршрут траси за 15-30 хвилин (з урахуванням поетапної перевірки і підгонки деяких особливостей траєкторії).

Даний спосіб був перевірений на муніципальних і регіональних змаганнях з робототехніки в Сургутском районі і ХМАО-Югрі і приніс нашій школі перші місця. Там же я переконався, що ця тема дуже актуальна для багатьох команд.

Ну, приступимо.

При підготовці до цього виду змагань програмування є лише частиною вирішення поставленого завдання. Починати потрібно з конструювання робота для певної траси. У наступній статті я розповім, як це зробити. Ну, а так як рух по лінії зустрічається дуже часто, то почну саме з програмування.

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

Датчики освітленості підключені до 2 і 3 портів. Мотори до портів В і С.
Датчики виставлені по краях лінії (спробуйте поекспериментувати, розташовуючи датчики на різній відстані один від одного і на різній висоті).
Важливий момент. Для кращої роботи такої схеми пару датчиків бажано підібрати за параметрами. Інакше, у разі спроби блок коригування значень датчиків.
Установка датчиків на шасі за класичною схемою (трикутник), приблизно, як на малюнку.

Програма буде складатися з невеликої кількості блоків:


1. Два блоки датчика освітленості;
2. Чотири блоку «Математики»;
3. Двох блоків моторів.

Для управління роботом використовується два мотора. Потужність кожного 100 одиниць. Для нашої схеми ми візьмемо середнє значення потужності мотора рівним 50. Тобто, середня швидкість при русі по прямій, буде дорівнює 50 одиницям. При відхиленні від прямолінійного руху потужність моторів буде пропорційно збільшуватися або зменшуватися, залежно від кута відхилення.

Тепер розберемося, як з'єднати всі блоки, налаштувати програму і що буде в ній відбуватися.
Виставимо два датчика освітленості і призначимо їм порти 2 і 3.
Беремо блок математики і виберемо «Віднімання».
Підключимо датчики освітленості з виходів «Інтенсивність» шинами до блоку математики до входів «А» і «В».
Якщо датчики робота встановлені симетрично від центру лінії траси, то значення обох датчиків буде рівними. Після вирахування ми отримаємо значення - 0.
Наступний блок математики буде використаний в якості коефіцієнта і в ньому потрібно виставити «Множення».
Для обчислення коефіцієнта вам необхідно виміряти за допомогою блоку NXT рівень «білого» і «чорного».
Припустимо: білий -70, чорний -50.
Далі вважаємо: 70-50 \u003d 20 (різниця між білим і чорним), 50/20 \u003d 2,5 (середнє значення потужності при русі по прямій в блоках математики ми виставили в 50. Це значення плюс додана потужність при коригування руху повинна бути дорівнює 100)
Спробуйте виставити значення 2,5 по входу «А», а потім підберете більш точно.
До входу «В» блоку математики «Множення» підключіть вихід «Результат» попереднього блоку математики «Віднімання».
Далі йде пара - блок математики (Додавання) і мотор В.
Налаштування блоку математики:
По входу «А» виставлено значення 50 (половина потужності мотора).
Вихід блоку «Результат» з'єднаний шиною з входом «Потужність» мотора В.
Слідом пара - блок математики (Віднімання) і мотор С.
Налаштування блоку математики:
По входу «А» виставлено значення 50.
Вхід «В» з'єднаний шиною з виходом «Результат» блоку математики «Множення».
Вихід блоку «Результат» з'єднаний шиною з входом «Потужність» мотора С.

В результаті всіх цих дій ви отримаєте таку програму:

Так як це все буде працювати в циклі, то додаємо «Цикл», виділяємо і переносимо це все в «Цикл».

Тепер давайте спробуємо розібратися, як буде працювати програма і як її налаштувати.


Поки робот їде по прямій лінії значення датчиків збігаються, значить, на виході блоку «Віднімання» буде значення 0. Вихід блоку «Множення» дає теж значення 0. Це значення подається паралельно на пару управління моторами. Так як в цих блоках виставлено значення 50, то додаток або віднімання 0 не впливає на потужність моторів. Обидва мотори працюють з однаковою потужністю 50, і робот котить по прямій.

Припустимо, що траса робить поворот або робот відхиляється від прямої. Що буде відбуватися?

За малюнком видно, що освітленість датчика, підключеного до порту 2 (далі по тексту -Датчики 2 і 3) збільшується, так як він з'їжджає на біле поле, а освітленість датчика 3 зменшується. Припустимо, значення цих датчиків стають: датчик 2 - 55 одиниць, а датчик 3 - 45 одиниць.
Блок «віднімання» визначить різницю між значеннями двох датчиків (10) і подасть його в блок корекції (множення на коефіцієнт (10 * 2,5 \u003d 25)) і далі в блоки управління
моторами.
У блоці математики (Додавання) управління мотором В до значення середньої швидкості 50
додасться 25 і значення потужності 75 буде подано на мотор В.
У блоці математики (Віднімання) управління мотором З від значення середньої швидкості 50 відніме 25 і значення потужності 25 буде подано на мотор С.
Таким чином, буде скориговано відхилення від прямої лінії.

Якщо траса різко повертає в бік і датчик 2, виявляється на білому, а датчик 3 на чорному. Значення освітленості цих датчиків стають: датчик 2 - 70 одиниць, а датчик 3 - 50 одиниць.
Блок «віднімання» визначить різницю між значеннями двох датчиків (20) і подасть її в блок корекції (20 * 2,5 \u003d 50) і далі в блоки управління моторами.
Тепер в блоці математики (Додавання) управління мотором В значення потужності 50 +50 \u003d 100 буде подано на мотор В.
У блоці математики (Віднімання) управління мотором З значення потужності 50 - 50 \u003d 0 буде подано на мотор С.
І робот виконає крутий розворот.

На білому і чорних полях робот повинен їхати по прямій. Якщо це не відбувається, спробуйте підібрати датчики з однаковими значеннями.

Тепер створимо новий блок і будемо його використовувати для руху робота по будь-якій трасі.
Виділимо цикл, далі в меню «Правка» виберемо команду «Створити мій блок».

У діалоговому вікні «Конструктор блоків» дамо назву нашого блоку, наприклад, «Go», виберемо іконку для блоку і натиснемо «ГОТОВИЙ».

Тепер у нас є блок, який можна використовувати у випадках, коли нам знадобитися рух по лінії.