RaceCar
ROB-36197Постановка задачи
Любая разработка начинается с технического задания, в нашем случае в качестве ТЗ выступает регламент соревнований Межрегионального робототехнического фестиваля "Кубок ROBOTIC"". В нем нас интересуют требования к габаритам (не более 25х25х25 см) и весу робота (не более 1 кг), а также форма трассы и ее ширина 1,5 см. Максимально допустимое время выполнения заезда 2 минуты. Дополнительно робот должен в соответствии с регламентом соревнований кнопку запуска или пульт, позволяющий выполнить запуск/остановку дистанционно. В данном случае мы будем использовать кнопку запуска.
Задача ясна, нужен робот способный обнаружить линию и проехать по ней от старта до финиша за минимальный отрезок времени.
Разберем движение робота Ev3 вдоль черной линии.
Напишем программу для движения робота по черной линии для Lego Ev3.
Для того, чтобы робот Ev3 двигался постоянно вдоль черной линии в программе используется бесконечный цикл в нем происходит считывание данных с датчиков цвета, освещенности, анализ данных датчиков и соответствующие маневры робота. В нашем роботе левый датчик цвета подключен к порту 3, правый датчик подсоединен к порту 1. Левый мотор подключен к порту В, правый мотор к порту А.
На рисунке показан блок считывания данных с датчика освещенности.
Если значение меньше 5 (знак сравнения 4), то значит датчиком мы заехали на черную линию.
Если значение больше 5 (знак сравнения 2), то заехали на белое поле
Алгоритм движения по черной линии для робота с двумя датчиками следующий.
Если робот заехал левым датчиком на черную линию, то робот сворачивает (съезжает с линии) налево. Если робот заехал правым датчиком на черную линию, то поворачивает направо. Если обоими датчиками видит белое поле, то робот едет вперёд. Если обоими датчиками он видит чёрную линию, то это перекрёсток, он едет вперёд и съезжает с перекрестка.
Чтобы обрабатывать одновременно данные с нескольких датчиков, необходимо использовать логические операции. Для того чтобы выполнялись оба условия, используется логическая операция И.
Напишем программу для движения вдоль черной линии для робота Ev3.
У нашего робота левый датчик освещенности подключен к порту 3, правый датчик освещенности подключен к порту 1.
1 действие. Считываем данные с датчиков освещенности заходим в яркость, отраженного света записываем их в логический блок и (Красный блок)
2 действие. Соединяем логический блок с переключателем, который выставлен в логическое значение.
3 действие. В условие ставим поворот налево.
4 Действие. Повторяем считывание датчиков освещенности и логический блок
Значение датчика освещенности 1 становится меньше 5, а датчика с портом 3 больше 5. В этом случае чёрную линию видит правый датчик. Поворот делается направо, поэтому правый мотор (порт А) вращается назад, мощность со знаком минус, а левый мотор (порт B) вращается вперед. Осуществляется поворот направо. В цикле движения выставите не очень большое время порядка 0,1 секунды, чтобы робот реагировал быстрее на изменение траектории.
5 действие. Если оба датчика освещенности фиксируют белое поле, то робот движется вперед. Опять считываем данные с обоих датчиков. Ставим в считывании датчиков знак больше, мощность обоих моторов положительная.
6 действие. Если оба датчика освещенности фиксируют чёрную линию, то движемся вперёд. Считывание датчиков, для обоих датчиков ставим меньше 5, для обоих моторов выставляем движение вперед
Для изменения скорости движения по черной линии необходимо поменять мощность моторов при движении вперед. Если траектория будет слишком крута и робот будет слетать с черной линии, необходимо уменьшить мощность при движении вперед и увеличить мощность при поворотах.
Файлы
Добавлен 10.12.2024