На этом уроке мы напишем программу для движения робота ev3 по черной линии с одним датчиком. Движение по черной линии используется на различных соревнованиях, таких как шортрек, евролинии, траектория и других. Мы познакомимся с различными алгоритмами движения по черной линии
Алгоритм движения робота вдоль черной линии с одним датчиком.
В конструкции робота впереди по центру устанавливается датчик освещенности. Робот будет двигаться следующим образом. Если он датчиком заезжает на черную линию, то сворачивает с нее одним мотором, если он датчиком не видит линию, то он сворачивает другим мотором на линию. Робот будет двигаться зигзагами вдоль черной линии
Программа для робота ev3 движение по черной линии с одним датчиком
Программа будет осуществляться бесконечно ,пока мы не выключим робота. Для этого используем бесконечный цикл. В бесконечный цикл, ставим переключатель, в переключателе выбираем датчик цвета, режим сравнение, яркость отраженного цвета.
МК «Движение по линии с одним датчиком цвета LEGO Mindstorms EV3. Автокалибровка. Создание блока».
Когда запускаем движение робота по черной линии, выставляем датчик цвета на линию. Чтобы регулировать скорость движения, меняем мощность моторов. Более надежное движение робота по черной линии реализуется с помощью двух датчиков цвета. Подробнее об алгоритме движения робота по черной линии с двумя датчиками Другие схемы роботов lego ev3
Хотите видеть на нашем сайте больше статей? Кликните Поделиться в социальных сетях! Спасибо!
- Трансформеры » Кино обои HD
Обратите внимание полезная информация.
ProRobot.RU — лучший информационный сайт по робототехнике. У нас есть информация про роботов: инструкции как собрать самому из лего или подручных средств. Мы находимся в России, но поможем Вам научиться создавать их своими руками. Понравилась информация — делитесь в социальных сетях с Вашими русскоговорящими друзьями в Беларусии или Казахстане или любой стране Мира!
Источник: www.prorobot.ru
Движение по черной линии Ev3
На данном уроке мы разберем движение робота Ev3 вдоль черной линии.
Напишем программу для движения робота по черной линии для Lego Ev3. Познакомимся с логическими операциями Ev3.
Для того, чтобы робот Ev3 двигался постоянно вдоль черной линии в программе используется бесконечный цикл в нем происходит считывание данных с датчиков цвета, освещенности, анализ данных датчиков и соответсвующие маневры робота. В нашем роботе левый датчик цвета подключен к порту 3, правый датчик подсоединен к порту 1. Левый мотор подключен к порту В, правый мотор к порту А.
На рисунке показан блок считывания данных с датчика освещенности.
Если значение меньше 5 (знак сравнения 4) , то значит датчиком мы заехали на черную линию.
Если значение больше 5 (знак сравнения 2), то заехали на белое поле
Алгоритм движения по черной линии для робота с двумя датчиками следующий.
Если робот заехал левым датчиком на черную линию, то робот сворачивает (съезжает с линии) налево. Если робот заехал правым датчиком на черную линию, то поворачивает направо. Если обоими датчиками видит белое поле, то робот едет вперёд. Если обоими датчиками он видит чёрную линию, то это перекрёсток, он едет вперёд и съезжает с перекрестка.
Чтобы обрабатывать одновременно данные с нескольких датчиков, необходимо использовать логические операции. Для того чтобы выполнялись оба условия, используется логическая операция И.
Напишем программу для движения вдоль черной линии для робота Ev3.
У нашего робота левый датчик освещенности подключен к порту 3, правый датчик освещенности подключен к порту 1.
1 действие. Считываем данные с датчиков освещенности заходим в яркость, отраженного света Записываем их в логический блок И ( Красный блок)
2 действие. Соединяем логический блок с переключателем, который выставлен в логическое значение.
3 действие. В условие ставим поворот налево. Смотри урок 1 Повороты Ev3
4 Действие. Повторяем считывание датчиков освещенности и логический блок
Значение датчика освещенности 1 становится меньше 5, а датчика с портом 3 больше 5. В этом случае чёрную линию видит правый датчик. Поворот делается направо, поэтому правый мотор (порт А) вращается назад , мощность со знаком минус, а левый мотор (порт B) вращается вперед. Осуществляется поворот направо. В цикле движения выставите не очень большое время порядка 0,1 секунды, чтобы робот реагировал быстрее на изменение траектории.
5 действие. Если оба датчика освещенности фиксируют белое поле, то робот движется вперед. Опять считываем данные с обоих датчиков. Ставим в считывании датчиков знак больше, мощность обоих моторов положительная.
6 действие. . Если оба датчика освещенности фиксируют чёрную линию, то движемся вперёд. Считывание датчиков, для обоих датчиков ставим меньше 5, для обоих моторов выставляем движение вперед
Для изменения скорости движения по черной линии необходимо поменять мощность моторов при движении вперед. Если траектория будет слишком крута и робот будет слетать с черной линии, необходимо уменьшить мощность при движении вперед и увеличить мощность при поворотах.
Вернуться к содержанию Перейти к уроку Движение по линии до перекрестка
Источник: itrobo.ru
Алгоритмы движения робота по линии
Одним из часто встречающихся видов соревнований является соревнование “Движение робота вдоль черной линии”. В последнее время активно развивается робототехника, открывается множество кружков. Как следствие проводится множество соревнований и конкурсов по робототехнике различного уровня. Это направление называется соревновательная робототехника.
Это соревнование проводится в разных номинациях и категориях. Есть движение по широкой линии (5 см), по узкой линии (1,5 см), включают в движение по линии участки с прерывистой линией. Часто еще используется объезд роботом препятствий (например объезд кирпича) или преодоление препятствий (например, качающийся мост). После преодоления препятствий робот должен вернуться на линию и успешно финишировать.
Так как сейчас есть много типов робототехнических конструкторов, то соревнования также разделяют по категориям. Т.е. движение по линии Lego EV3, отдельно движение по линии Arduino и т.д. Побеждает робот, преодолевший дистанцию за минимальное время не потеряв трассу.
Алгоритмы движения робота
Есть несколько основных алгоритмов движения робота вдоль черной линии с использованием различных типов регуляторов:
- Релейный регулятор
- Пропорциональный регулятор
- Пропорциональный дифференциальный регулятор
- Кубический регулятор
- Пропорциональный интегральный регулятор
- Пропорциональный интегральный дифференциальный регулятор
Можно использовать эти алгоритмы с применением одного, двух, трех и даже четырех датчиков цвета. Количество применяемых датчиков зависит от сложности соревнований и каждый раз подбирается индивидуально..
Зрение робота EV3
Робот EV3 не обладает зрением и может воспринимать информацию о линии при помощи датчика цвета EV3.
Робот и человек по разному видят черную линию. У человека границы черного и белого четко различимы. Робот же видит размытую картину границы черного и белого. Для того, чтобы более точно определить линию, датчик робота должен быть расположен на границе черной линии и белого поля посередине.
При этом высота расположения датчика над линией должна быть около 1 см. Но это рекомендуемая высота. На соревнованиях встречаются различные варианты расположения датчика и подбираются они участниками индивидуально.
Калибровка датчика цвета
Для того, чтобы применить указанные алгоритмы нужно откалибровать датчик цвета на реальном поле. Есть два способа калибровки:
- ручной способ — все вычисления проводятся самостоятельно
- автоматическая калибровка — вычисления производятся при помощи блоков операций с данными
Датчик работает в режиме отраженного света. Суть метода состоит в том, что мы находим пороговое значение белого и черного цвета.
На практике нужно измерить значение белого цвета, затем черного цвета, суммировать их и разделить на два. Т.е. если обозначить пороговое значение буквой C, значение белого цвета буквой A и значение черного цвета буквой B, то формула будет выглядеть следующим образом:
С = ( A + B ) / 2
Измерить значение белого и черного цвета можно просто поочередно расположив датчик над белой и черной линией и записать значения.
Ручной режим калибровки датчика цвета EV3
В ручном режиме делается это просто, при помощи меню, расположенном на экране блока Lego EV3. Для этого нужно на экране блока EV3 зайти в третью вкладку и открыть первое приложение из пяти. Это приложение называется представление порта.
Здесь можно быстро посмотреть к какому порту присоединены датчики или сервомоторы. При помощи кнопок управления микроконтроллером EV3 нужно перейти к любому из занятых портов, и тогда можно посмотреть текущие показания, которые в данный момент получены с сенсоров или сервомоторов.
Чтобы посмотреть или изменить текущие настройки для установленных сервомоторов и сенсоров нужно нажать центральную кнопку. Нажатие кнопки «Назад» возвращает нас в основное окно приложений.
Для примера установлю датчик цвета в порт под номером 3 и сниму показания на белом поле.
На экране блока EV3 отобразилось показание в 43 условных единицы. Таким же образом определяем показания датчика на черной линии. Например показания будут 3 условных единицы. Подставляем эти значения в формулу.
С = ( A + B ) / 2 = (43 + 3) / 2 = 46 / 2 = 23
В результате получаем пороговое значение 23 условных единицы.
Автоматическая калибровка датчика цвета
Таким же точно образом измеряем пороговое значение (его еще называют значение серого) при автоматической калибровке, но на этот раз значение записывается в переменную. Назовем переменную, например, porog. В среде программирования Lego EV3 пишем программу для калибровки.
В первой части программы нужно расположить датчик над белым фоном. Датчик касания расположен в 1 порту. В программе используется блок ожидания действия с датчиком касания. В данном случае установлен параметр “щелчок” — цифра 2 в нижней части блока ожидания. Т.е. нужно нажать и отпустить кнопку датчика.
После этого датчик цвета в режиме отраженного света измеряет значение белого цвета и значение записывается в переменную A.
Во второй части программы нужно расположить датчик над черной линией и также нажать на кнопку датчика касания. Значения черного цвета записываются в переменную B.
В третьей части программы мы считываем значения датчиков из переменной A и B и передаем их значения в блок математики, который находится в режиме “Дополнения”. В этом блоке происходит вычисление по формуле С = ( A + B ) / 2 ирезультат вычисления записывается в переменную С.
Теперь значение переменной С можно использовать в качестве порогового значения серого для дальнейшего использования в алгоритмах движения по линии.
Движение по тонкой линии Arduino
Фрагмент соревнований по робототехнике «Движение по тонкой линии». Также это соревнование называют «Тонкий Триал». Этот очень быстрый робот в номинации роботов Arduino является победителем региональных соревнований.
По условиям соревнований робот Arduino должен совершить объезд кирпича и преодолеть качающийся мост. После преодоления препятствий робот должен вернуться на линию и финишировать не сойдя с трассы. Тонкий триал есть и в категории Lego EV3 роботов.
Источник: legoteacher.ru