Мы используем файлы cookie

и системы аналитики для улучшения работы сайта

  • БЛОГ
  • УЧЕБНИКИ
    • Электронные версии УМК по робототехнике
    • ОСНОВЫ РОБОТОТЕХНИКИ 5-6 КЛАСС
  • КВЕСТЫ
  • ПРОЕКТЫ
    • Подпроект 1
    • Подпроект 2
    • Подпроект 3
  • ЗАНЯТИЯ
  • НАПИСАТЬ АДМИНУ
  • ТУРНИРЫ
    • Junior Skills
    • Шагающие роботы
    • WRO-2016
    • Танковый биатлон
    • Кубок Губернатора
  • РАСПИСАНИЕ
  • Главная
    /
  • Решаем задачи
    /
  • /

 Задача 23. Азимут (EV3)

В программировании автономного движения роботов часто возникает задача выбора направления движения. При помощи датчика Compass фирмы HiTechnic робот может двигаться в заданном направлении или просто выдерживать направление по азимуту. Этот прием используют в автономном футболе роботов, когда нападающие выбирают для удара ворота противника, а вратари возвращаются на свои ворота. Компас позволяет роботу достаточно точно ориентироваться в пространстве.

Единственный существенный минут использования этого сенсора состоит в том, что на компас сильно влияют магнитные поля: от поля Земли до поля, генерируемого моторами и контроллером самого робота. Поэтому расположению датчика на роботе стоит уделить особое внимание, и вывести его как минимум на 8-12 сантиметров от всех предполагаемых источников излучения.

Предложенная здесь программа позволяет роботу запомнить азимут при запуске программы и в дальнейшем выдерживать это направление. Отклоненный от "состояния равновесия", то есть от заданного азимута робот будет стремиться вернуться в изначальное положение.

В самом начале производится инициализация датчика, поскольку на это нужно некоторое время. Затем датчик можно будет использовать. Первая команда сохраняет в переменную базовое значение скорости. После некоторой задержки значение с датчика-компаса записывается в переменную. Рассмотрим этот фрагмент программы крупнее:

Затем программа разделяется на две параллельные задачи. В основной ветке производится управление моторами (независимо друг от друга). Каждый мотор корректируется на основании данных компаса:

Мотору придается базовая скорость, которая была в переменной speed изначально, но при этом знак (+/-), а значит, направление вращения мотора, высчитывается по компасу.

Таким образом, получается регулятор: мотору В присваивается мощность a+b*c, а мотору С - мощность a-b*c.

 

Вторая задача изменяет значение переменной alpha, используемой в расчетах в основной ветке. Она увеличивает значение alpha на 50. Это значение подобрано опытным путем.

 

    • БЛОГ
    • УЧЕБНИКИ
    • КВЕСТЫ
    • ПРОЕКТЫ
    • ЗАНЯТИЯ
    • НАПИСАТЬ АДМИНУ
    • ТУРНИРЫ
    • РАСПИСАНИЕ
    ×Убрать копирайт

    Сайт создан на 1C-UMI

    Работает на UMI.CMS

    Политика конфиденциальности

    Поделиться с друзьями: