X-PDF

Разговоры о важном

Поделиться статьей

Урок  -Кегельринг

Посвятим разбору соревновательнойдисциплины под названием Кегельринг.

  1Правила соревнования. Подготовка поля для проведения соревнований. 

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

Итак: для проведения соревнования нампонадобится поле, жестяные банки обклеенные по периметру самоклеящейся бумагой(нам понадобятся 2 — 4 банки белого цвета и столько же — черного).

2Конструирование робота для конкретного вида соревнования.

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

Наступает важный этап моделированияробота — перед нами стоят две взаимосвязанных задачи:

1.    Разработкаключевого алгоритма поведения нашего робота;

2.    Разработкамеханической конструкции робота, позволяющей реализовать требуемое поведение.

Рассмотрим следующую поведенческуюмодель:

1.    Робот,находясь в центре поля, начинает вращаться по часовой стрелке, пока не заметиткеглю.Робот

2.    Двигаясьв направлении кегли, робот выталкивает её за пределы окружности.Робот

3.    Заметивчерную границу поля, робот возвращается назад, в место старта.Робот

Следовательно,наш робот должен:

1.   уметь вращаться на месте вокруг своей оси;

2.   уметь двигаться прямолинейно;

3.   уметь обнаруживать предмет, удаленный на некоторое расстояние;

4.   уметь обнаруживать границу поля.

Данныетребования диктуют нам условия конструкции робота:

1.   для реализации первых двух условий применим уже известную намподвижную платформу, использующую два больших мотора и вращающуюся опору(робот-тележка);

2.   для обнаружения кегли воспользуемся одним из имеющихся в наличиидатчиков: инфракрасным или ультразвуковым;

3.   границу поля нам поможет обнаружить датчик цвета.

 

 

 

 

Lego mindstorms EV3 Home

small

Lego mindstorms EV3 Education

small

Вы можете воспользоваться предложеннойинструкцией или собрать собственного робота, отвечающего определенным намитребованиям к его конструкции. В процессе сборки конструкции не забудьтеподключить моторы и датчики к модулю EV3: левый мотор  — к порту B,правый мотор — к порту C,ультразвуковой или инфракрасный датчик — к порту 2,датчик цвета — к порту 3.

Послесборки робота приступим к созданию программы.

3Создание программы для соревнования Кегельринг.

Подробно пропишем последовательностьдействий нашего робота для обнаружения одной кегли на поле:

1.   вращаться вокруг своей оси по часовой стрелке, пока впереди расположенныйдатчик не обнаружит кеглю;

2.   остановиться напротив кегли;

3.   двигаться вперед, пока датчик цвета не обнаружит черную границуполя;

4.   остановиться;

5.   двигаться назад в центр поля.

Приступим к реализации и отладке п.1, 2 — научим нашего робота обнаруживать кеглю иостанавливаться точно напротив. Сначала нам необходимо выбрать пороговоезначение для обнаружения кегли напротив нашего робота. Для этого загрузим средупрограммирования, создадим новый проект — lessons-2,новую программу в проекте назовем lesson-11.Подключим робота к среде программирования, затем установим его точно в центрполя, поставим напротив робота кеглю.

На Страницеаппаратных средств, находящейся в правом нижнемуглу среды программирования, выберем вкладку Представлениепорта (Рис. 1, 2 поз. 1) иснимем показание датчика, определяющего расстояние до кегли, установивсоответствующий режим отображения показаний.

В нашем случае ультразвуковой датчик врежиме Расстояние в сантиметрах показываетзначение — 25,9 (Рис.1 поз. 2).

Страница

Рис. 1

Инфракрасный датчик в режиме Приближение показываетзначение — 48 (Рис.2 поз. 2)

Страница

Рис. 2

Какопределить показания датчика, используя дисплей модуля EV3

Теперьмы можем запрограммировать нахождение роботом кегли:

Ультразвуковойдатчик

1.    Длятого, чтобы заставить робота вращаться вокруг своей оси, воспользуемсяпрограммным блоком Независимое управлениемоторами Зеленойпалитры, Режим работы блока установим Включить,значение мощности для порта B установимравным 30, значение мощности для порта C установимравным —30 (Рис.5 поз.1),

2.    Дляпоиска кегли используем программный блок Ожидание Оранжевойпалитры в режиме Ультразвуковойдатчик — Сравнение — Расстояние в сантиметрах. Длягарантированного нахождения увеличим пороговое значение срабатывания датчикадо 35 (Рис.5 поз. 2)

Представленная информация была полезной?
ДА
63.03%
НЕТ
36.97%
Проголосовало: 2083

3.    Послетого, как робот окажется напротив кегли, используя программный блок Независимоеуправление моторами Зеленойпалитры выключим моторы (Рис.5 поз. 3).

 Поиск

Рис. 5

Инфракрасныйдатчик

1.    Длятого, чтобы заставить робота вращаться вокруг своей оси, воспользуемсяпрограммным блоком Независимое управлениемоторами Зеленойпалитры, Режим работы блока установим Включить,значение мощности для порта B установимравным 30, значение мощности для порта C установимравным —30 (Рис.6 поз.1),

2.    Дляпоиска кегли воспользуемся программным блоком Ожидание Оранжевойпалитры в режиме Инфракрасныйдатчик — Сравнение — Приближение. Длягарантированного нахождения увеличим пороговое значение срабатывания датчикадо 55 (Рис.6 поз. 2)

3.    Послетого, как робот окажется напротив кегли, используя программный блок Независимоеуправление моторами Зеленойпалитры выключим моторы (Рис.6 поз. 3).

Поиск

Рис. 6

Загрузим получившуюся программу в роботаи запустим её на выполнение. Раз за разом, выполняя программу, мы можемзаметить, что наш робот останавливается не совсем точно напротив банки. Связаноэто с тем, что датчик может обнаруживать предмет не только строго напротивсебя, а и на некотором отклонении от направления взгляда датчика. В этом случаеможно, либо после остановки робота немного довернуть его на необходимый угол,используя дополнительный блок Независимоеуправление моторами, либо постепенно увеличиватьскорость вращения, подбирая параметр мощность (Рис.5, 6 поз. 1), пока робот не станет останавливаться точно напротивкегли. Например, нам потребовалось увеличить мощность до 50 единицдля робота, собранного из образовательной версии набора, и до 40 единицдля робота, собранного из домашней версии набора.

Переходим к реализации п.3, 4 нашей последовательности действий.

Двигаться вперед и останавливаться припересечении черной линии мы уже научились, когда разбирали ранее.Установим робота таким образом, чтобы датчик цвета находился точно над чернойграницей поля и измерим его значение в режиме Яркостьотраженного света любым удобным вамспособом, рассмотренным выше. В нашем случае получилось значение, равное 7.В качестве порогового значения примем число 10

Добавимк нашей программе обнаружения кегли, следующие программные блоки:

1.    Длятого, чтобы заставить робота двигаться прямолинейно, воспользуемся программнымблоком Рулевое управление Зеленойпалитры. Режим работы блока установим Включить,параметр Рулевое управление = 0,параметр Мощность = 50(Рис.7 поз. 1)

2.    Дляпоиска датчиком цвета черной границы воспользуемся программным блоком ОжиданиеОранжевой палитры в режиме Датчикцвета — Сравнение — Яркость отраженного сигнала,параметр Тип сравнения = 4,параметр Пороговое значение = 10(Рис.7 поз. 2)

3.   После того, как робот пересечет черную линию, используяпрограммный блок Рулевоеуправление Зеленой палитры выключиммоторы (Рис. 7 поз. 3).

Движение

Рис. 7

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

 

Lego mindstorms EV3 Home

small

Lego mindstorms EV3 Education

small

 Теперь наш робот просто отличносправляется со своей работой! Осталось только научить его возвращаться в центр круга…

Страница аппаратных средств средыпрограммирования позволяет нам наблюдать не только текущие показания датчиков,но и накопленные показания датчика вращения мотора (Рис.8 поз. 1). Нажав, на значок мотора, мы можем установить предпочтительныйнам вывод информации о вращении мотора в Оборотах или Градусах (Рис.8 поз. 2).

Страница

Рис. 8

Программный блок Вращениемотора Желтой палитры позволяетполучать и обрабатывать это значение в программе. Режим Сброс программногоблока Вращение мотора устанавливаетнулевое значение датчика, и отсчет оборотов начинается сначала. (Рис.9)

Программный

Рис. 9

Воспользуемся этой возможностью: если мысбросим показание одного из датчиков моторов в 0 (вданном случае можно обнулить значение любого из моторов B и C,ведь робот поедет прямо, а значит оба колеса провернутся на одинаковоезначение), то после остановки робота над черной линией, можно будет получитьзначение датчика в Градусах или Оборотах и,подав его на вход соответствующего параметра блока Рулевоеуправление, заставить робота проехать точно такоеже расстояние. А для того, чтобы робот двигался назад, необходимо изменитьзначение параметра Мощность наотрицательное значение.

Внесемнеобходимые изменения в нашу программу:

1.    Передначалом движения вперед сбросимв 0 показания датчика вращения мотора,подключенного к порту B (Рис.10 поз. 1).

2.    Послеостановки на черной границе поля считаем расстояние,пройденное мотором B вградусах (Рис. 10 поз. 1).

3.    Полученноезначение подадим в параметр Градусы программногоблока Рулевое управление,значение параметра Мощность = -50 (Рис.10 поз. 1)!

Движение

Рис. 10

Загрузим получившуюся программу в роботаи убедимся, что робот нашел кеглю, вытолкал её за пределы поля и вернулся вцентр поля!

Для того, чтобы заставить нашего роботавыталкивать требуемое количество кеглей, все наши программные блоки поместимвнутрь программного блока Цикл Оранжевойпалитры. Режим программного блока Цикл установимв значение Подсчет,параметр Подсчет установим равнымколичеству кеглей (Рис. 11, 12 поз. 1) Дляудобства отображения на экране нам пришлось оформить программу в две строки -вы же вполне можете сложить её в одну строку. 

Программа

Рис. 11

Программа

Рис. 12

Программа готова!

4Соревнование Кегельринг с дополнительм условием

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

Какнаучить робота на расстоянии определять цвет кегли? Можно впереди, по ходудвижения робота расположить еще один датчик цвета и, приблизившись к кегле нарасстояние 1 — 2 см, определить её цвет, теряя при этом драгоценное время,отведенное на выполнение задания. Но, если вы внимательно изучили урок «Инфракрасный датчик», тоуже знаете, что на показания инфракрасного датчика в режиме Приближение влияеттакже цвет предмета. Проведем эксперимент: установим робота с инфракраснымдатчиком в центр поля, напротив поместим белую кеглюи зафиксируем показания датчика. В нашем случае это значение равно 49.Теперь напротив робота установим черную кеглю- показание датчика изменилось и теперь, не смотря на одинаковое расстояние,составляет 64.Следовательно, для успешного обнаружения белых кеглей и игнорирования черных,необходимо выбрать в качестве порогового — значение, находящееся между этимичислами. Число 55 полностьюудовлетворяет этому условию. Нам даже не придется переделывать основнойалгоритм программы! Попробуйте и убедитесь в этом сами!

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

Заключение:

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


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
63.03%
НЕТ
36.97%
Проголосовало: 2083

или напишите нам прямо сейчас:

Написать в MAXНаписать в TelegramНаписать в WhatsApp

или напишите нам прямо сейчас:

Написать в MAXНаписать в TelegramНаписать в WhatsApp
Заявка
на расчет