Презентация на тему "Обнаружение и подсчет перекрестков" (LegoMindstorms EV3).
Повторение материала по теме: "Движение на заданное расстояние"
Дается описание алгоритма пропорционального управления с двумя датчиками освещенности с пропорциональным регулятором.
Дается алгоритм составления программы обнаружения и подсчета перекрестков.
Просмотр содержимого документа
«Презентация на тему "Обнаружение и подсчет перекрестков" (LegoMindstorms EV3)»
Обнаружение и подсчет перекрестков
ПДО Скрыпник Е.В.
Тема: Агоритмы прохождение препятствий
Движение на заданное асстояние
- На время
- На градусы
- На обороты
Если нужно проехать 1 метр, что нужно измерить?
- Время?
- Диаметр колеса?
- d=68,8 мм = 6,88 см
- Вычислим
- За 1 оборот расстояние робот проедет L=3,14*6,88=21,6см
- Сколько оборотов он сделает на расстоянии 100 см?
- Ответ: 100см : 21,6 см = 4,62962962962963 = 4,63 оборота
- Как найти градусы?
- Нужно количество оборотов умножить на 360 (столько градусов в окружности), получится 1666,7 и это намного точнее оборотов!
- Сколько оборотов требуется на расстояние 92см?
Ответ: 92см: 21,6см = 4,25 оборота
- Сколько оборотов нужно, чтобы проехать 75см?
75см : 21,6 см = 3,47
- Учитываем погрешность : чем выше скорость, тем больше тормозной путь (инерция движения)
Основной алгоритм движения – пропорциональный алгоритм управления с двумя датчиками
Вариант базовой программы движения:
Кр=1,5 ,
подбор по ситуации, изменяем Кр на +-0,01(от 1,49 до 0,91…)
Пример программы движения по черной линии с пропорциональным регулятором
Используем переменную Кр=0,91 и блок математики.
Формула: (а-b)*c= , где с=Кр, а результат подается на рулевое управление моторами
Задача 1: обнаружить перекресток и остановиться на нём
Алгоритм решения задачи
Данные эксперимента
- Кр=0,91 – коэффициент пропорционального движения, может принимать значение от 1,1 до 0,9, определяем подбором для текущей освещенности, +- 0,01
- Рассчитаем среднее значение освещенности (например, освещенность на белом поле S1=89, освещенность на черном поле S2=10 Ser=(68+10):2 =78:2= 39
Если показания датчиков сильно отличаются, лучше подобрать другой датчик
Пример программы обнаружения перекрестка:
Вводим переменную Ser=40 (режим записи)
2 блока сравнения показаний датчиков с Ser
Блок логики выполнения условия
Цикл выполняется, пока не выполнится условие (значения обоих датчиков = Ser)
Зачем нужны переменные?
- При калибровке датчиков легче изменить значение одной переменной, чем всю программу
- Для уменьшения программы создаем подпрограмму ( Мой блок Cross) с входными параметрами:
- Left – текущее значение левого датчика
- Right - текущее значение правого датчика
- Ser – знач.перем.
выходной параметр:
- Result – результат функции И
Создание и настройка параметров блока Cross
- 3 входных числовых параметра: Left, Right, Ser
- 1 выходной логический параметр Result
Подпрограмма Cross
Программа обнаружения перекрестка и остановки на нём
Задача 2: Подсчет перекрестков. Остановиться после перекрестка 4
- Создаем числовую переменную для подсчета перекрестков V1, начальное значение = 0;
- Создаем числовую переменную N для хранения количества требуемых перекрестков = 4;
- Вносим изменения в программу обнаружения перекрестков:
- Анализируем результат работы цикла: если Истина, то включаем звуковой сигнал и проезжаем 0,2 оборота, чтобы съехать с линии, к значению переменной V1=V1+1; Сравниваем значение V1 и N, если Истина, то завершение цикла
- Анализируем результат работы цикла: если Истина, то включаем звуковой сигнал и проезжаем 0,2 оборота, чтобы съехать с линии, к значению переменной V1=V1+1;
- Сравниваем значение V1 и N, если Истина, то завершение цикла
Дополнения к программе:
Задача: Роботу необходимо повернуть вокруг левого колеса на 45
- Расстояние между центрами колес R=15 см,
- Для поворота на Х=45 роботу необходимо проехать расстояние P:
- Подставим значения, вычислим, получим P=117,6мм
- При диаметре 56мм за один оборот робот проезжает 175,84мм,
- Тогда количество оборотов правого колеса при повороте:
Вычислим количество оборотов правого колеса
- Программа поворота робота на 45 при мощности 50 может быть реализована следующим образом:
- Тогда количество оборотов N правого колеса при повороте:
Обратите внимание:
- Для преодоления инерции движения после блока движения моторов ставим блок торможения, несмотря на то, что блок движения имеет параметр «Тормозить в конце»
Поворот робота вокруг центра на угол 180
- Допустим, расстояние между колесами робота 120 мм, диаметр колес 56мм
- Введем данные в блок математика, где
- a – расстояние между колесам ,
- b – диаметр колес,
- c – угол поворота ,
- Результат вводим на блок Рулевое Управление на параметр ГРАДУС