Лего EV3. движение на черна линия

Ето как човек вижда линията:

Ето как го вижда роботът:


Ще използваме тази функция, когато проектираме и програмираме робот за състезателната категория „Траектория“.

Има много начини да научите робота да вижда линия и да се движи по нея. Има сложни програми и много прости.

Искам да говоря за начин на програмиране, който дори децата от 2-3 клас ще усвоят. На тази възраст им е много по-лесно да сглобяват конструкции по инструкции, а програмирането на робот е трудна задача за тях. Но този метод ще позволи на детето да програмира робота по всеки маршрут на пистата за 15-30 минути (като се вземе предвид поетапната проверка и настройка на някои характеристики на траекторията).

Този метод беше тестван на общински и регионални състезания по роботика в област Сургут и Ханти-Мансийски автономен окръг-Югра и донесе на нашето училище първи места. Там се убедих, че тази тема е много актуална за много отбори.

Е, нека започваме.

Когато се подготвяте за този вид състезание, програмирането е само част от решението на проблема. Трябва да започнете с проектиране на робот за конкретна писта. В следващата статия ще ви покажа как да го направите. Е, тъй като движението по линията е много често, ще започна с програмирането.

Помислете за версията на робота с два сензора за светлина, тъй като е по-разбираема за учениците от началното училище.

Светлинните сензори са свързани към портове 2 и 3. Двигатели към портове B и C.
Сензорите са поставени в краищата на линията (опитайте да експериментирате с поставянето на сензорите на различни разстояния един от друг и на различни височини).
Важен момент. За най-добрата работа на такава схема е желателно да изберете двойка сензори според параметрите. В противен случай ще е необходимо да се въведе блок за коригиране на стойностите на сензорите.
Монтаж на сензори на шасито според класическата схема (триъгълник), приблизително както на фигурата.

Програмата ще се състои от малък брой блокове:


1. Два блока светлинен сензор;
2. Четири блока "Математика";
3. Два блока двигатели.

Роботът се управлява от два двигателя. Мощността на всеки е 100 единици. За нашата схема ще вземем средната стойност на мощността на двигателя, равна на 50. Тоест средната скорост при движение по права линия ще бъде равна на 50 единици. При отклонение от праволинейното движение мощността на двигателите ще се увеличи или намали пропорционално, в зависимост от ъгъла на отклонение.

Сега нека да разберем как да свържем всички блокове, да настроим програмата и какво ще се случи в нея.
Нека изложим два светлинни сензора и да им присвоим портове 2 и 3.
Взимаме блок от математика и избираме "Изваждане".
Нека свържем светлинните сензори от изходите "Интензитет" с гуми към математическия блок към входовете "A" и "B".
Ако сензорите на роботите са монтирани симетрично от центъра на релсовата линия, тогава стойностите на двата сензора ще бъдат равни. След изваждане получаваме стойността - 0.
Следващият блок от математика ще бъде използван като коефициент и в него трябва да зададете "Умножи".
За да изчислите коефициента, трябва да измерите нивото на "бяло" и "черно" с помощта на единицата NXT.
Да предположим: бяло -70, черно -50.
След това изчисляваме: 70-50=20 (разлика между бяло и черно), 50/20=2,5 (задаваме средната стойност на мощността при движение по права линия в блоковете математика на 50. Тази стойност плюс добавената мощност при регулиране на движението трябва да бъде равна на 100)
Опитайте да зададете стойността на 2,5 на входа "A" и след това я вземете по-точно.
Свържете изхода "Result" на предишния математически блок "Subtraction" към входа "B" на математическия блок "Multiplication".
Следва двойка - блок по математика (събиране) и мотор B.
Настройка на математически блок:
Вход "A" е настроен на 50 (половината мощност на двигателя).
Изходът на блока "Резултат" е свързан чрез шина към входа "Захранване" на мотор B.
След парата е математическият блок (Изваждане) и моторът C.
Настройка на математически блок:
Вход "A" е настроен на 50.
Вход "В" е свързан чрез шина с изход "Резултат" на блока математика "Умножение".
Изходът на блока "Резултат" е свързан чрез шина към входа "Захранване" на двигателя C.

В резултат на всички тези действия ще получите следната програма:

Тъй като всичко това ще работи в цикъл, добавяме "Цикъл", избираме и прехвърляме всичко в "Цикъл".

Сега нека се опитаме да разберем как ще работи програмата и как да я конфигурираме.


Докато роботът се движи по права линия, стойностите на сензорите са еднакви, което означава, че изходът на блока "Изваждане" ще има стойност 0. Изходът на блока "Умножение" също дава стойността 0. Тази стойност се подава успоредно на двойката за управление на двигателя. Тъй като стойността 50 е зададена в тези блокове, добавянето или изваждането на 0 не влияе на мощността на двигателите. И двата двигателя работят с една и съща мощност от 50 и роботът се търкаля по права линия.

Да предположим, че пистата прави завой или роботът се отклонява от права линия. Какво ще се случи?

Фигурата показва, че осветеността на сензора, свързан към порт 2 (наричани по-долу сензори 2 и 3), се увеличава, тъй като се премества в бяло поле, а осветяването на сензор 3 намалява. Да предположим, че стойностите на тези сензори стават: сензор 2 - 55 единици и сензор 3 - 45 единици.
Блокът "Изваждане" ще определи разликата между стойностите на двата сензора (10) и ще я подаде към блока за корекция (умножение с коефициент (10 * 2,5 = 25)) и след това към контролните блокове
двигатели.
В математическия блок (Добавяне) на мотор B се управлява до средната стойност на скоростта 50
25 ще бъде добавено и стойността на мощността от 75 ще бъде приложена към мотор B.
В математическия блок (Изваждане) на управляващия двигател C, 25 ще бъде извадено от средната стойност на скоростта от 50 и стойността на мощността от 25 ще бъде приложена към мотор C.
Така отклонението от права линия ще бъде коригирано.

Ако пистата завие рязко настрани и сензор 2 е на бяло, а сензор 3 е на черно. Стойностите на осветеност на тези сензори стават: сензор 2 - 70 единици и сензор 3 - 50 единици.
Блокът "Изваждане" ще определи разликата между стойностите на двата сензора (20) и ще я подаде към корекционния блок (20 * 2,5 = 50) и след това към блоковете за управление на двигателя.
Сега в блока по математика (Добавяне), управляващ мотор B, стойността на мощността 50 +50 =100 ще бъде приложена към мотор B.
В математическия блок (Изваждане) на управлението на двигател C, стойност на мощността от 50 - 50 = 0 ще бъде приложена към мотор C.
И роботът ще направи остър завой.

На бели и черни полета роботът трябва да се движи по права линия. Ако това не се случи, опитайте да съпоставите сензори със същите стойности.

Сега нека създадем нов блок и да го използваме, за да преместим робота по всяка писта.
Изберете цикъла, след което в менюто "Редактиране" изберете командата "Създаване на моя блок".

В диалоговия прозорец "Конструктор на блокове" дайте име на нашия блок, например "Отиди", изберете икона за блока и щракнете върху "ГОТОВО".

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

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

Човек вижда черна линия и нейната ясна граница. Светлинният сензор работи малко по-различно.

Именно това свойство на сензора за светлина - невъзможността да се разграничи ясно границата между бяло и черно - ще използваме, за да изчислим скоростта на движение.

Първо, нека представим понятието „Идеална точка на траекторията“.

Показанията на сензора за светлина варират от 20 до 80, най-често на бяло, показанията са около 65, на черно около 40.

Идеалната точка е условна точка приблизително в средата на бели и черни цветове, след което роботът ще се движи по черната линия.

Тук местоположението на точката е основно - между бяло и черно. Няма да може да се зададе точно на бяло или черно по математически причини, защо - ще стане ясно по-късно.

Емпирично изчислихме, че идеалната точка може да се изчисли по следната формула:

Роботът трябва да се движи стриктно по идеалната точка. Ако се появи отклонение в която и да е посока, роботът трябва да се върне в тази точка.

Да композираме математическо описание на проблема.

Първоначални данни.

Перфектна точка.

Текущите показания на светлинния сензор.

Резултат.

Мощност на двигателя B.

Мощност на въртене на двигателя C.

Решение.

Нека разгледаме две ситуации. Първо: роботът се отклони от черната линия към бялата.

В този случай роботът трябва да увеличи мощността на въртене на мотор B и да намали мощността на мотор C.

В ситуация, в която роботът влиза в черната линия, е точно обратното.

Колкото повече роботът се отклонява от идеалната точка, толкова по-бързо трябва да се върне към нея.

Но създаването на такъв регулатор е доста трудна задача и не винаги се изисква в неговата цялост.

Затова решихме да се ограничим до P-регулатор, който адекватно реагира на отклонения от черната линия.

На езика на математиката това би било написано така:

където Hb и Hc са общите мощности на двигателите B и C, съответно,

Hbase - определена базова мощност на двигателите, която определя скоростта на робота. Избира се експериментално, в зависимост от дизайна на робота и остротата на завоите.

Itech - текущите показания на светлинния сензор.

Id - изчислена идеална точка.

k е коефициентът на пропорционалност, избран експериментално.

В третата част ще разгледаме как да програмираме това в средата на NXT-G.

Алгоритми за управление на мобилен LEGO робот. Проследяване на линия с два светлинни сензора

Учител по допълнително образование

Казакова Любов Александровна


Движение на линията

  • Два светлинни сензора
  • Пропорционален контролер (P контролер)

Алгоритъм за движение по черната линия без пропорционален контролер

  • И двата двигателя се въртят с еднаква мощност
  • Ако десният светлинен сензор удари черната линия, тогава мощността на левия мотор (например B) намалява или спира
  • Ако левият сензор за светлина удари черната линия, тогава мощността на другия от двигателите (например C) намалява (връща се към линията), намалява или спира
  • Ако и двата сензора са на бяло или черно, тогава има праволинейно движение

Движението се организира чрез промяна на мощността на един от двигателите


Пример за програма за движение по черната линия без P-контролер

Движението се организира чрез промяна на ъгъла на въртене


  • Пропорционалният контролер (P-controller) ви позволява да регулирате поведението на робота, в зависимост от това колко поведението му се различава от желаното.
  • Колкото повече роботът се отклонява от целта, толкова повече сила е необходима, за да се върне към нея.

  • P-контролерът се използва за поддържане на робота в определено състояние:
  • Задръжте позицията на манипулатора Движете се по линия (светлинен сензор) Движете се по стена (датчик за разстояние)
  • Задържане на позицията на манипулатора
  • Движение на линията (светлинен сензор)
  • Движение по стена (датчик за разстояние)

Проследяване на линия с един сензор

  • Целта е да се движи по границата "бяло-черно"
  • Човек може да различи границата на бяло и черно. Роботът не може.
  • Целта за робота е на сивия цвят

Прелези

При използване на два светлинни сензора е възможно да се организира трафик по по-трудни маршрути



Алгоритъм за шофиране по магистрала с кръстовища

  • И двата сензора на бяло - роботът се движи по права линия (и двата двигателя се въртят с еднаква мощност)
  • Ако десният светлинен сензор удари черната линия, а левият - бялата линия, тогава той завива надясно
  • Ако левият сензор за светлина удари черната линия, а десният удари бялата линия, тогава той завива наляво
  • Ако и двата сензора са черни, тогава се получава праволинейно движение. Можете да преброите кръстовища или да извършите някакво действие


Принципът на действие на P-регулатора

Позиция на сензорите

O=O1-O2


Алгоритъм за движение по черната линия с пропорционален контролер

SW \u003d K * (C-T)

  • C - целеви стойности (вземете показания от светлинния сензор на бяло и черно, изчислете средната стойност)
  • T - текущата стойност - получена от сензора
  • K е коефициентът на чувствителност. Колкото повече, толкова по-висока е чувствителността.



За да видите презентация със снимки, дизайн и слайдове, изтеглете неговия файл и го отворете в PowerPointна вашия компютър.
Текстово съдържание на слайдовете на презентацията:
„Алгоритъм за движение по черна линия с един цветен сензор“ Кръг по „Роботика“ Учител преди Езидов Ахмед Елиевич В MBU DO „Shelkovskaya CTT“ За изучаване на алгоритъма за движение по черна линия, робот Lego Mindstorms EV3 с един цветен сензор ще се използва Цветен сензор Цветен сензор различава 7 цвята и може да открие липсата на цвят. Както и в NXT, той може да работи като сензор за светлина.Line S Robot Competition Field Предложената "S" образна писта ще ви позволи да проведете още един интересен тест на създадените роботи за скорост и реакция. Нека разгледаме най-простия алгоритъм за движение по черна линия на сензор за един цвят на EV3. Този алгоритъм е най-бавният, но най-стабилният. Роботът няма да се движи стриктно по черната линия, а по нейната граница, завивайки наляво и надясно и постепенно се движи напред Алгоритъмът е много прост: ако сензорът вижда черно, тогава роботът се върти в едната посока, ако вижда бяло - в другата. Проследяване на линия в режим на отразена светлина с два сензора Понякога цветният сензор може да не е в състояние да различи много добре между черно и бяло. Решението на този проблем е да се използва сензорът не в режим на откриване на цветове, а в режим на откриване на яркостта на отразената светлина. В този режим, знаейки стойностите на сензора на тъмна и светла повърхност, можем независимо да кажем какво ще се счита за бяло и какво ще бъде черно. Сега нека определим стойностите на яркостта на бялата и черната повърхност. За да направите това, в менюто на EV3 Brick намираме раздела "Brick Applications" Сега сте в прозореца за изглед на порта и можете да видите показанията на всички сензори в момента. нашите сензори трябва да светят в червено, което означава, че са в режим на откриване на отразена светлина. Ако светят в синьо, в прозореца за изглед на порта на желания порт натиснете централния бутон и изберете режим COL-REFLECT Сега ще поставим робота така, че и двата сензора да са разположени над бялата повърхност. Разглеждаме числата в портове 1 и 4. В нашия случай стойностите са съответно 66 и 71. Това ще бъдат белите стойности на сензорите. Сега нека поставим робота така, че сензорите да са разположени над черната повърхност. Отново, нека да разгледаме стойностите на портове 1 и 4. Имаме съответно 5 и 6. Това са значенията на черното. След това ще променим предишната програма. А именно, променяме настройките на превключвателите. Стига да имат инсталиран Color Sensor -> Measurement -> Color. Трябва да зададем Сензор за цвят -> Сравнение -> Интензитет на отразената светлина. Сега трябва да зададем "тип за сравнение" и "прагова стойност". Стойността на прага е стойността на някои "сиви", стойностите под които ще считаме за черно, а повече - за бяло. За първо приближение е удобно да се използва средната стойност между бялото и черното на всеки сензор. По този начин праговата стойност на първия сензор (порт #1) ще бъде (66+5)/2=35,5. Закръглете до 35. Прагова стойност на втория сензор (порт #4): (71+6)/2 = 38,5. Нека закръглим до 38. Сега задаваме тези стойности съответно във всеки превключвател. Това е всичко, блоковете с движения остават на местата си непроменени, защото ако поставим знака " в "тип за сравнение"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Текстът на творбата е поставен без изображения и формули.
Пълната версия на работата е налична в раздела „Данни файлове“ в PDF формат

Lego Mindstorms EV3

Подготвителен етап

Създаване и калибриране на програма

Заключение

литература

1. Въведение.

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

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

Конструкторът Mindstorms EV3 ни кани да влезем в очарователния свят на роботите, да се потопим в сложната среда на информационните технологии.

Цел: Да се ​​научите как да програмирате робот да се движи по права линия.

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

    Напишете програми за движение на робота по права линия за 30 cm, 1 m 30 cm и 2 m 17 cm.

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

Дизайнерски части - 601 броя, серво мотор - 3 броя, сензор за цвят, сензор за движение, инфрачервен сензор и сензор за докосване. Микропроцесорният блок EV3 е мозъкът на LEGO Mindstorms.

Голям сервомотор е отговорен за движението на робота, който се свързва с EV3 Brick и кара робота да се движи: да се движи напред и назад, да се обърне и да кара по дадена траектория. Този сервомотор има вграден сензор за въртене, който ви позволява много точно да контролирате движението на робота и неговата скорост.

Можете да накарате робот да извърши действие с помощта на софтуера EV3. Програмата се състои от различни блокове за управление. Ще работим с блока за движение.

Блокът за движение управлява двигателите на робота, включва го, изключва го, кара го да работи в съответствие със задачите. Можете да програмирате движението на определен брой обороти или градуси.

    Подготвителен етап.

    Създаване на техническо поле.

Ще маркираме работното поле на робота, използвайки електрическа лента и линийка, ще създадем три линии с дължина 30 см - зелена линия, 1 m 15 cm - червена и 2 m 17 cm - черни линии.

    Необходими изчисления:

Диаметър на колелото на робота - 5 см 7 мм = 5,7 см.

Един оборот на колелото на робота е равен на обиколката на кръг с диаметър 5,7 см. Обиколката се намира по формулата

Където r е радиусът на колелото, d е диаметърът, π = 3,14

л = 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. лего. com/образование/

Зареждане...Зареждане...