Міжнародні змагання роботів – Правила – Приклади роботів – Робот для траєкторії на основі LEGO EV3. Старт у науці Робот для руху по лінії ev3 інструкція

Текст роботи розміщено без зображень та формул.
Повна версіяроботи доступна у вкладці "Файли роботи" у форматі PDF

Конструктор Lego Mindstorms EV3

Підготовчий етап

Створення та калібрування програми

Висновок

Література

1. Введення.

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

За Останніми рокамиуспіхи у робототехніці та автоматизованих системах змінили особисту та ділову сфери нашого життя. Роботи широко використовуються у транспорті, у дослідженнях Землі та космосу, у хірургії, у військовій промисловості, під час проведення лабораторних досліджень, у сфері безпеки, у масовому виробництві промислових товарів та товарів народного споживання. Багато пристроїв, що приймають рішення на основі отриманих від сенсорів даних, теж можна вважати роботами - такі, наприклад, ліфти, без яких вже немислиме наше життя.

Конструктор Mindstorms EV3 запрошує нас увійти у захоплюючий світ роботів, поринути у складне середовище інформаційних технологій.

Мета: Навчиться програмувати рух робота по прямій лінії.

    Познайомиться з конструктором Mindstorms EV3 та його середовищем програмування.

    Написати програми руху робота по прямій на 30 см, 1 м 30 см та 2 м 17 см.

    Конструктор Mindstorms EV3.

Деталі конструктора – 601 шт., серводвигун – 3 шт., датчик кольору, сенсорний датчик руху, інфрачервоний датчик та датчик торкання. Мікропроцесорний блок EV3 є мозком конструктора LEGO Mindstorms.

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

Змусити робота виконувати дію можна за допомогою комп'ютерної програми EV3. Програма складається із різних блоків управління. Ми працюватимемо з блоком руху.

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

    Підготовчий етап.

    Створення технічного поля.

На поле роботи робота нанесемо розмітку, за допомогою ізоленти та лінійки створимо три лінії завдовжки 30 см – зелена лінія, 1 м 15 см – червона та 2 м 17 см – чорна лінії.

    Необхідні розрахунки:

Діаметр колеса робота – 5 см 7 мм = 5,7 см.

Один оберт колеса робота дорівнює довжині кола з діаметром 5,7 см. Довжину кола знаходимо за формулою

Де r – радіус колеса, d – діаметр, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Тобто. за один оберт колеса робот проїжджає 17,9 см.

Розрахуємо кількість оборотів необхідних, щоб проїхати:

N = 30: 17,9 = 1,68.

    1 м 30 см = 130 см

N = 130: 17,9 = 7,26.

    2 м 17 см = 217 см.

N = 217: 17,9 = 12,12.

    Створення та калібрування програми.

Створюватимемо програму за наступним алгоритмом:

Алгоритм:

    Вибрати блок руху у програмі Mindstorms EV3.

    Включити обидва двигуни в заданому напрямку.

    Чекати на зміну показання датчика повороту одного з моторів до заданого значення.

    Вимкнути мотори.

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

    Поле встановлено на учнівські парти, тож можливий невеликий прогин поверхні.

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

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

5. Висновок.

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

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

Працювати із конструктором дуже цікаво. Дізнаючись більше про його можливості, можна вирішувати будь-які технічні завдання. А в майбутньому можливо створювати свої цікаві моделі робота Lego Mindstorms EV3.

Література

    Копосов Д. Г. «Перший крок у робототехніку для 5-6 класів». - М: Біном. Лабораторія знань, 2012 – 286 с.

    Філіппов С. А. «Робототехніка для дітей та батьків» - «Наука» 2010р.

    Інтернет ресурси

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. Lego. com/education/

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

Загальна теорія та конкретні приклади створення програми описані на сайті wroboto.ru

Опишу, як ми це реалізуємо в середовищі EV3, оскільки є відмінності.

Перше, що потрібно знати роботу – значення “ідеальної точки”, розташованої на межі чорного та білого.

Розташування червоної точки на малюнку якраз відповідає цій позиції.

Ідеальний варіант розрахунку – виміряти значення чорного та білого та взяти середнє арифметичне.

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

Отже, можна змусити це робити робота.

У ході експериментів ми з'ясували, що вимірювати і чорне, і біле необов'язково. Можна виміряти лише біле. А значення ідеальної точки розраховується як значення білого, ділене на 1,2 (1,15), залежно від ширини чорної лінії та швидкості руху робота.

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

Розрахунок "ідеальної точки"

Наступний параметр, що бере участь у русі – коефіцієнт повороту. Чим він більший, тим різкіше робот реагує зміну освітленості. Але надто велике значення призведе до "виляння" робота. Значення підбирається експериментально індивідуально кожної конструкції робота.

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

Для зручності ці параметри теж можна записати в змінні.

Коефіцієнт повороту та базова потужність

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

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

У вигляді формул це виглядає так:

Де Isens – значення показань датчика освітлення.

Нарешті, реалізація у EV3. Найзручніше оформити у вигляді окремого блоку.

Реалізація алгоритму

Саме такий алгоритм було реалізовано у роботі для середньої категорії WRO 2015

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

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

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

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

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

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

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

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

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

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

Вихідні дані.

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

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

Результат.

Потужність обертання двигуна Ст.

Потужність обертання двигуна С.

Рішення.

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

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

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

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

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

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

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

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

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

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

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

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

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

15.01.2012, 18:51

Досі в статтях про алгоритми, що використовуються під час руху вздовж лінії, розглядався такий спосіб, коли датчик освітленості ніби стежив за лівою або правою її межею: трохи робот з'їде на білу частину поля - регулятор повертав робота на кордон, почне датчик переміщатися вглиб чорної лінії – регулятор виправляв його назад.
Незважаючи на те, що картинка вище наведена для релейного регулятора, загальний принцип руху пропорційного (П-регулятора) буде таким же. Як говорилося, середня швидкість такого переміщення не дуже висока і було зроблено кілька спроб збільшити її за рахунок незначного ускладнення алгоритму: в одному випадку використовувалося "м'яке" гальмування, в іншому, крім поворотів, вводилося рух уперед.
Для того, щоб дозволити роботу на деяких ділянках рухатися вперед, у діапазоні значень, що видаються датчиком освітленості, виділялася вузька ділянка, яку умовно можна було назвати "датчик знаходиться на межі лінії".
Цей підхід має невеликий недолік- якщо робот "стежить" за лівою межею лінії, то на правих поворотах він як би не відразу визначає викривлення траєкторії і, як наслідок, витрачає більше часу на пошук лінії та поворот. Причому, можна з упевненістю сказати, що чим крутіший поворот, тим довше за часом відбувається цей пошук.
На наступному малюнку видно, що якби датчик перебував не з лівого боку від кордону, а з правого, то він уже виявив викривлення траєкторії і почав здійснювати маневри по повороту.

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

Насправді можна виділити ще один допустимий стан - на складних трасах це буде перетин перехрестя або якогось потовщення на шляху.
Інші положення датчиків розглядатися не будуть, тому що є похідними від наведених вище, або це такі положення робота, коли він зійшов з лінії і вже не зможе повернути себе на неї використовуючи інформацію з датчиків. У результаті всі перелічені положення можна звести до наступної класифікації:
  • лівий датчик, як і правий - над світлою поверхнею
  • лівий датчик над світлою поверхнею, правий датчик над темною
  • лівий датчик над темною поверхнею, правий датчик над світлою
  • обидва датчики знаходяться над темною поверхнею
Якщо в певний момент часу програма на роботі виявляє одне з цих положень, вона повинна буде зреагувати відповідним чином:
    Якщо обидва датчики над білою поверхнею, то це нормальна ситуація, в якій лінія знаходиться між датчиками, тому робот повинен їхати прямо. правою частиноюякщо лівий датчик опинився над темною поверхнею, а правий ще над світлою, то для вирівнювання роботу потрібно повертати ліворуч. Якщо обидва датчики над темною поверхнею, то в загальному випадку , Робот знову продовжує рухатися прямо.

На схемі вище відразу ж показано, як саме в програмі повинна змінюватися поведінка моторів. Тепер, написання програми не повинно скласти великої праці. Це не має великого значеннятому нехай буде лівий. Необхідно визначити, над світлою або над темною поверхнею:
Ця дія ще не дозволяє сказати, в який бік роботу треба їхати. Але воно розділить стану, перераховані вище, на дві групи: (I, II) для верхньої гілки та (III, IV) для нижньої. У кожній із груп тепер по два стани, тому необхідно вибрати якийсь із них. Якщо уважно подивитися на перші два стани I та II, то вони відрізняються положенням правого датчика – в одному випадку він над світлою поверхнею, в іншому – над темною. Саме це і визначить вибір, яку дію зробити:
Тепер можна вставити блоки, що визначають поведінку моторів згідно з таблицями вище: верхня гілка вкладеної умови визначає комбінацію "обидва датчики на світлому", верхня - "лівий на світлому, правий на темному":
Нижня гілка основної умови відповідає за іншу групу станів ІІІ та ІV. Ці два стани також відрізняються один від одного рівнем освітленості, який уловлює правий датчик. Отже, він визначатиме вибір кожного з них:
Дві гілки, що виходять, наповнюються блоками руху. Верхня гілка відповідає за стан "лівий на темному, правий на світлому", а нижня - за "обидва датчики на темному".
Слід зазначити, що дана конструкція лише визначає, як включити мотори в залежності від показань сенсорів у певному місці поля, природно через мить програма повинна перевірити чи не змінилися показання, щоб відповідним чином підправити поведінку моторів, а через мить ще раз, ще й т.д. . Тому вона повинна бути поміщена в цикл, який забезпечуватиме таку перевірку, що повторюється:

Така досить проста програма забезпечуватиме досить високу швидкість пересування робота вздовж лінії без вильоту за її межі, якщо правильним чином налаштувати максимальну швидкість при русі в станах I і IV, а також задати оптимальний спосіб гальмування в станах II і III - чим крутіше повороти на трасі , Тим "жорсткіше" має бути гальмування - швидкість повинна скидатися швидше, і навпаки - при плавних поворотах цілком можна застосовувати гальмування через вимикання енергії або навіть взагалі через незначне скидання швидкості.

Щодо розміщення датчиків на роботі теж слід сказати кілька окремих слів. Очевидно, що за розташуванням цих двох датчиків щодо коліс будуть діяти ті ж рекомендації, що і для одного датчика, тільки за вершину трикутника при цьому береться середина відрізка що з'єднує два датчика. Сама ж відстань між датчиками теж повинна вибиратися з характеристик траси: чим ближче датчики будуть розташовані один до одного, тим частіше робот вирівнюватиметься (виконуватиме відносно повільні розвороти), але якщо рознести датчики досить широко, тобто ризик вильоту з траси, тому доведеться виконувати більш "жорсткі" повороти та зменшувати швидкість пересування на прямих ділянках.



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

Даний алгоритм є найповільнішим, але найстабільнішим.

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

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

Реалізація серед Lego Mindstorms EV3

В обох блоках руху вибираємо режим "увімкнути". Перемикач налаштовуємо на датчик кольору – вимір – колір. У нижній частині не забудьте змінити «ні кольору» на білий. Також необхідно правильно вказати всі порти.

Не забудьте додати циклу, без нього робот нікуди не поїде.

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

Рух із двома датчиками:

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


Алгоритм буде наступним:
Якщо обидва датчики бачать білий колір- рухаємося вперед;
Якщо один із датчиків бачить білий, а інший чорний – повертаємо у бік чорного;
Якщо обидва датчики бачать чорний колір – ми перехресті (наприклад, зупинимося).

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

Програма із коментарями:

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

http://studrobots.ru/

Ця ж програма для моделі NXT:

Вивчити програму руху. Запрограмувати робота. Переслати відео тестування моделі

Схожі статті

2023 р. videointercoms.ru. Майстер на усі руки - Побутова техніка. Висвітлення. Металобробка. Ножі Електрика.