Поворотный механизм лего ев3

Обновлено: 06.05.2024

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

turnusingsensorconnectjpg

Пошаговые действия

  1. Постройте своего робота.
  2. Создайте свою программу.
  3. Далее установите робота в позицию 2 на поле 2 и запустите программу.
  4. Запишите результаты.
  5. Продолжите изучать использование гироскопического датчика для управления движениями робота.

Прежде чем вы начнете выполнять эту миссию, советуем изучить следующие разделы пособий самоучителя:
• Остановиться под углом
• Цикл

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

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

Соединение с реальным миром

( 5 мин. )

Поворот с использованием колеса является не очень точным. Если вы попытаетесь повернуть своего робота на пыльной или скользкой поверхности, он может не достичь правильного угла. Гироскопический датчик поможет вам выполнить гораздо более точные движения.

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

turnusingsensor-connect

Создание модели

( 20 мин. )

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

gyro-bi

ВАЖНОЕ ЗАМЕЧАНИЕ.
Гироскопический датчик и модуль EV3 должны быть неподвижны при подсоединении кабеля и во время запуска модуля EV3.

Создайте свою программу
Воссоздайте показанную программу и загрузите ее в своего робота.

turnusingsensor-1

Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [90]
Независимое управление моторами – Выкл

Устранение неполадок
Требуется корректировка угла – как правило, значение должно быть меньше 90 градусов.

Теория
При использовании гироскопического датчика значение оборотов, записанное в блоке датчика, соответствует повороту приводной платформы. Точность датчика составляет +/- 3 градуса. Мертвый ход мотора и задержка, вызванная прекращением действия вращающего момента, также могут повлиять на точность.
Такие факторы, как мощность батареи, размер колес, трение робота о поверхность, расстояние между двумя колесами, больше не влияют на точность поворота робота.

Совместное обсуждение

( 20 мин. )

Запустите программу и наблюдайте.
Установите робота в исходную позицию 2 на поле 2 и запустите программу.

turnusingsensor-connect

Записывайте свои выводы
• Опишите, что делал каждый из ваших программируемых блоков:
Мой робот поворачивался на месте до тех пор, пока гироскопический датчик не выдал значение 90 градусов, и остановился.
• Определите угол поворота робота:
Мой робот повернулся примерно на 90 градусов.
• Объясните различие между поворотом робота, сделанным с гироскопическим датчиком и без него.
Поворот под управлением гироскопического датчика связан с меньшим числом факторов неопределенности поведения робота.

Рефлексия и изменение
Измените свою программу таким образом, чтобы робот выполнил следующие повороты на месте:

  1. Выполнил поворот на месте по часовой стрелке на 45 градусов.
  2. Выполнил поворот на месте по часовой стрелке на 180 градусов.
  3. Выполнил поворот на месте по часовой стрелке на 360 градусов, а затем против часовой стрелки на 360 градусов.

На сколько повернулся робот по сравнению с тем, что требовала программа?
Он обычно поворачивался дальше из-за вращающего момента.

Задача
Поверните робота на 45 градусов по часовой стрелке.

turnusingsensor-2

Решение - Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [45]
Независимое управление моторами – Выкл
Устранение неполадок
Требуется корректировка угла – как правило, значение должно быть меньше 45 градусов.

Задача
Поверните робота на 180 градусов по часовой стрелке.

turnusingsensor-3

Решение - Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [180]
Независимое управление моторами – Выкл
Устранение неполадок
Требуется корректировка угла – как правило, значение должно быть меньше 180 градусов.

Задача
Поверните робота на месте по часовой стрелке на 360 градусов, а затем против часовой стрелки на 360 градусов.

turnusingsensor-4

Решение - Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [360]
Независимое управление моторами – Выкл
Ожидание – Секунды[2]
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[5] (Меньше чем или равно), Градусы [0]
Независимое управление моторами – Выкл

Совершенствование

( 15 мин. )

Переход к исследованию
Создайте новую программу, используя цикл, чтобы заставить робота ехать по периметру квадрата.

Когда вы будете готовы, испытайте свою программу в исходной позиции 4 на учебном поле 1.

turnusingsensor-continue

turnusingsensor-5

Решение - Сводка программы
Старт
Цикл – Счетчик[4]
Рулевое управление – Градусы[682], Мощность[30]
Ожидание – Время [1с]
Независимое управление моторами – Вкл, Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Изменить угол – Направление[0] (Увеличение), Градусы[85]
Независимое управление моторами – Выкл
Ожидание – Время [1с]

Устранение неполадок
Требуется корректировка угла – как правило, значение должно быть меньше 90 градусов.

Объясните, для чего может использоваться цикл:
Я могу использовать циклическую структуру для повторения действий.

Дополнительно

  1. Создайте новую программу, которая заставляет робота двигаться по периметру треугольника. Когда вы будете готовы, испытайте свою программу в исходной позиции 4 на поле 1.
  2. Запрограммируйте робота на движение по траекториям другой формы.

happy-mini-space

Теперь вы умеете использовать гироскопический датчик для выполнения поворотов. Отлично!

На данном уроке мы познакомимся с понятием линейного алгоритма, разберемся, как программировать движение робота Ev3.Линейный алгоритм это набор последовательных команд, которые выполняются только один раз. Команды следуют одна за другой в строго заданном порядке.
Например, рассмотрим алгоритм движения робота по квадрату.
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Перед тем как реализовывать линейные алгоритмы движения познакомился, как программировать простейшие команды движения робота EV3.
Движение вперёд робота ev3.

1 действие. Движение вперёд робота ev3. Моторы робоат ev3 подключаются к портам с буквами: A B C D Все повороты делаются на мощностях меньше 50.
Сбрасываем датчик моторов в ev3.

датчик вращения мотора ev3

2 действие. Ставим цикл и в него ставим моторы на режиме «включить».

управление мотором ev3

3 действие. Выставляем мощность мотора на 100.

мощность мотора ev3

4 действие. Заходим в цикл, выставляем вращение мотора «градусы».

поворот моторами ev3

5 действие. Полный оборот колеса 360 градусов.
6 действие. Остановка моторов в режиме «выключить».

остановка моторов

Повороты робота EV3.Программа для поворота робота ev3

1 действие. Чтобы робот вращался на месте как трактор используется реверсивный поворот , когда один мотор двигается в одну сторону, а другой в противоположную. Чтобы мотор начал вращаться назад , необходимо выставить мощность -100.

поворот ev3

Поворот робота ev3 в другую сторону

поворот в другую сторону ev3

1. действие. Чтобы поворачивать в другую сторону , необходимо поменять мощности моторов . Теперь мотор с портом A будет с отрицательной мощностью.

выбор порта мотора ev3

3 действие. Меняем порт мотора в конце цикла.

изменение мощности мотора

Движение робота EV3 назад

Чтобы обеспечить движение робота ev3 назад, устанавливаем отрицательную мощность обоих моторов .

В новых EV3 наборах ситуация значительно упростилась с появлением в стандартной поставке датчика-гироскопа. Один из режимов, в которых он работает, - режим замера угла, на сколько изменилось положение датчика.

Например, самая простая программа для выполнения роботом поворота на 90 градусов вокруг своей оси будет выглядеть следующим образом:

  • Включить моторы на выполнение вращения вокруг своей оси и перейти к следующему блоку
  • Ждать пока на датчике-гироскопа не станет больше 90 градусов
  • Остановить моторы

Причем положение датчика-гироскопа на роботе не важно. Ровно также как и не важно, выполняет робот поворот вокруг своей оси или едет по дуге. Датчик всегда позволит отследить повернулся робот относительно прежней позиции на заданный градус или нет.



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

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

Иными словами, если робот уже повернулся относительно позиции, в которой инициализировался датчик, на 45 градусов, то в блоке ожидания нужно уже будет сравнивать показания датчика со 135 градусами.

Это неудобство можно избежать, если использовать режим ожидания изменения в блоке, вместо режима сравнения:



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

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



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

Звезда активна
Звезда активна
Звезда активна
Звезда активна
Звезда не активна

Введение:

Завершающий урок цикла "Первые шаги" посвятим изучению гироскопического датчика. Данный датчик, как и ультразвуковой, присутствует только в образовательной версии набора Lego mindstorms EV3. Тем не менее, пользователям домашней версии конструктора советуем тоже обратить внимание на данный урок. Возможно, что прочитав о назначении и использовании этого датчика, вы пожелаете его приобрести в дополнение к своему набору.

10.1. Изучаем гироскопический датчик

Гироскопический датчик (Рис. 1) предназначен для измерения угла вращения робота или скорости вращения. Сверху на корпусе датчика нанесены две стрелки, обозначающие плоскость, в которой работает датчик. Поэтому важно правильно установить датчик на робота. Также для более точного измерения крепление гироскопического датчика должно исключать его подвижность относительно корпуса робота. Даже во время прямолинейного движения робота гироскопический датчик может накапливать погрешность измерения угла и скорости вращения, поэтому непосредственно перед измерением следует осуществить сброс в 0 текущего показания датчика. Вращение робота против часовой стрелки формирует отрицательные значения измерений, а вращение по часовой стрелке - положительные.

Гироскопический датчик

Рис. 1

Рассмотрим программный блок "Гироскопический датчик" (Рис. 2) Желтой палитры. Этот программный блок имеет три режима работы: "Измерение", "Сравнение" и "Сброс". В режиме "Измерение" можно измерить "Угол", "Скорость" или одновременно "Угол и скорость".

Программный блок

Рис. 2

Давайте закрепим гироскопический датчик на нашем роботе (Рис. 3), подсоединим его кабелем к порту 4 модуля EV3 и рассмотрим примеры использования.

Крепление гироскопического датчика на роботе

Рис. 3

Задача №22: написать программу движения робота по квадрату с длиной стороны квадрата, равной длине окружности колеса робота.

Решение:

  1. Перед началом движения сбросим датчик в 0, используя программный блок "Гироскопический датчик" Желтой палитры;
  2. Мы уже знаем: чтобы проехать прямолинейно требуемое расстояние - необходимо, воспользовавшись программным блоком "Независимое управление моторами", включить оба мотора на 1 оборот.
  3. Для поворота робота на 90 градусов в этот раз воспользуемся гироскопическим датчиком:
    1. используя программный блок "Независимое управление моторами", заставим робота вращаться вправо вокруг своей оси;
    2. используя программный блок "Ожидание" в режиме "Гироскопический датчик", будем ждать, пока значение угла поворота не достигнет 90 градусов;
    3. Выключим моторы;

    Попробуйте решить Задачу №22 самостоятельно, не подглядывая в решение.

    Решение Задачи №22 (Нажмите для увеличения)

    Рис. 4

    "Первые шаги" - послесловие

    Десятый урок завершает курс "Первые шаги". На протяжении всех уроков вы познакомились с конструктором Lego mindstorms EV3, со средой программирования, научились использовать моторы и датчики. Если вы успешно одолели курс "Первые шаги", то впереди вас ждет знакомство с решением популярных задач робототехники в рамках курса "Практика". Удачи!

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

    Мы не могли разобраться с гироскопическим датчиком но в этом сайте всё легко и понятно!Огромное спасибо вам

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

    Внимание!
    Возрастная категория посетителей сайта - (10+).
    Все комментарии перед публикацией проходят модерацию.

    Звезда активна
    Звезда активна
    Звезда активна
    Звезда активна
    Звезда не активна

    Введение:

    Наше третье занятие мы посвятим изучению вычислительных возможностей модуля EV3 и разберем примеры практических решений задач на вычисление траектории движения. Снова запускаем среду программирования Lego mindstorms EV3, загружаем наш проект lessons.ev3 и добавляем в проект новую программу - lesson-3-4. Добавлять новую программу в проект мы научились с вами на предыдущем уроке.

    3.1. Красная палитра – операции с данными

    Программные блоки, необходимые для выполнения различных операций над числовыми, логическими или текстовыми данными, сосредоточены в красной палитре среды программирования Lego mindstorms EV3. Красная палитра содержит 10 программных блоков. В отличие от зеленой палитры - с программными блоками красной палитры мы будем знакомиться постепенно, по мере продвижения по курсу программирования и возникновения необходимости в новых программных конструкциях.

    Красная палитра - операции с данными

    Рис.1

    3.2. Числовые значения. Блок "Константа", блок "Переменная"

    Среда программирования Lego mindstorms EV3 позволяет нам обрабатывать в своих программах пять различных типов данных:"Текст", "Числовое значение", "Логическое значение", "Числовой массив", "Логический массив". В сегодняшнем уроке мы научимся оперировать с числовыми данными. Тип данных "Числовое значение" позволяет нам выполнять различные математические операции над числами. Числа в программе могут быть как положительными, так и отрицательными, быть целыми значениями или содержать десятичную дробь. Примеры: -15; 3,145; 8; -247,34.

    Перед тем, как начать обрабатывать различные типы данных в наших программах, нам надо научиться их создавать и хранить. Для этих целей среда программирования Lego mindstorms EV3 предоставляет два вида программных блоков: "Переменная" и "Константа". Эти блоки позволяют создать в памяти робота специальные ячейки, позволяющие записывать, извлекать и редактировать различные типы данных. Программный блок "Константа" (Рис. 2) позволяет создавать ячейку памяти для хранения одного из пяти типов данных (Рис. 2 поз. 1). Требуемое значение записывается в ячейку на этапе создания программы (Рис. 2 поз. 2) и остается неизменным во время выполнения всей программы. Для получения значения, записанного в блок "Константа" используется "Вывод" (Рис. 2 поз. 3). Подробнее с извлечением данных из программных блоков мы познакомимся ниже при решении практической задачи Урока №3.

    Программный блок Константа

    Рис. 2

    В отличие от программного блока "Константа" - в блоке "Переменная" присутствуют два режима "Считывание" и "Записать" (Рис. 3 поз. 1). Перед первым использованием необходимо задать имя переменной, выбрав параметр блока "Добавить переменную" (Рис. 3 поз. 2). Имя переменной может содержать только заглавные и строчные буквы латинского алфавита, цифры, а также символы _ и -. Задать значение переменной можно, записав или передав число в параметр "Значение" (Рис. 3 поз. 3).

    Программный блок Переменная

    Рис. 3

    3.3. Блок математика, блок округление

    Для выполнения математических вычислений служит программный блок "Математика". Он позволяет выполнить выбранную математическую операцию (Рис. 4 поз. 1) над двумя числами, заданными параметрами "a" и "b". В режимах "Абсолютная величина" и "Квадратный корень" для вычисления доступен только один параметр "a".

    Программный блок Математика

    Рис. 4

    Отдельно следует остановиться на режиме "Дополнения". В этом режиме количество параметров для расчета увеличивается до четырех: "a", "b", "c" и "d". В параметр "Уравнение" (Рис. 5 поз. 1) можно вписать любую произвольную формулу, производящую вычисления с этими параметрами.

    Программный блок Математика. Режим Дополнения.

    Рис. 5

    Иногда возникает необходимость произвести округление результата вычисления. Например: при отладке программы, можно выводить на экран модуля EV3 округленные промежуточные расчеты, чтобы легче было визуально контролировать ход выполнения программы. Для этого предназначен программный блок "Округление" (Рис. 6). Режимы "До ближайшего", "Округлить к большему" и "Округлить к меньшему" производят округление до целого значения. В режиме "Отбросить дробную часть" можно задать количество остающихся знаков дробной части после запятой.

    Программный блок Округление

    Рис. 6

    3.4. Примеры выполнения вычислений в программе

    Настало время применить полученные знания на практике.

    Задача №4: необходимо написать программу прямолинейного движения для проезда роботом расстояния в 1 метр.

    Решение:

    За один полный оборот мотора робот проезжает расстояние, равное длине окружности колеса. Это расстояние можно найти, умножив число Пи (=3,14159) на диаметр колеса. Диаметр колеса из образовательного набора Lego mindstorms EV3 равен 56 мм, а - из домашнего набора Lego mindstorms EV3 равен 43,2 мм. Если переведем расстояние в 1 метр в миллиметры (1000 мм) и разделим на расстояние, которое робот проходит за один оборот мотора, то узнаем: сколько оборотов мотора необходимо для проезда всего заданного расстояния.

    Расстояние, равное одному обороту колеса

    Рис. 7

    Приступим к созданию программы:

    1. Используя программный блок "Константа", заведем в программу постоянное число Пи, равное примерно 3,14159.
    2. Используя программный блок "Переменная", создадим в программе переменную D и занесем в нее значение диаметра колеса в зависимости от используемого конструктора (если вы использовали другие колеса, то самостоятельно измерьте диаметр и внесите значение в программный блок).
    3. Используя программный блок "Математика", умножим значение блока "Константа" на значение переменной D. Для передачи значения из переменной D в программный блок "Математика" используем второй программный блок "Переменная" в режиме "Считывание"! (Для передачи значений между программными блоками используются шины данных. Чтобы установить шину данных, необходимо "потянуть" выходной параметр одного программного блока и "присоединить" его к входному параметру другого программного блока)
    4. Используя программный блок "Математика", разделим значение пути (1000 мм) на значение, полученное в шаге 3.
    5. Полученное в шаге 4 значение. округлив до двух знаков после запятой, выведем на экран модуля EV3.
    6. Полученное в шаге 4 значение подадим в параметр "Обороты" блока "Рулевое управление".

    Загрузим полученную программу в нашего робота. Поставим робота на ровную свободную площадку и запустим программу. Измерив расстояние, пройденное роботом, убедимся в правильности нашей программы!

    Полное решение задачи №4.

    Задача №5: необходимо написать программу, рассчитывающую значение параметра "Градусы" для разворота нашего робота (Урок №2, Задача №1)

    Данная задача имеет сходство с предыдущей - нам только требуется найти расстояние, которое должны проехать колеса нашего робота. Для того, чтобы наш робот развернулся на 180 градусов - необходимо, чтобы правое и левое колеса, проехав определенный путь по окружности, поменялись местами. Как видим из Рис. 8 - каждое колесо при этом проедет ровно половину окружности с диаметром, равным расстоянию между центрами колес (красная линия на Рис. 8). Подходящей линейкой померяем расстояние между центрами колес. Для робота, собранного по инструкции small-robot-45544, это расстояние равно 120 мм. Следовательно, умножив это значение на число Пи (3,14159) и разделив на 2, мы найдем расстояние, которое должно проехать каждое из колес нашего робота. Как найти соответствующее этому расстоянию число оборотов мотора - мы разобрали в Задаче 4 данного урока. Для того, чтобы перевести полученное число оборотов в градусы - вспомним соотношение: 1 оборот мотора = 360 градусов. Следовательно, если мы, воспользовавшись программным блоком "Математика", умножим полученное значение оборотов на 360 и подадим результат в параметр "Градусы" программного блока "Независимое управление моторами" (Урок №2 Рис.7 поз. 2), то решим требуемую задачу.

    Схема разворота робота

    Рис. 8

    Попробуйте написать программу для решения задачи №5 самостоятельно, не подглядывая в решение!

    Читайте также: