SlideShare una empresa de Scribd logo
1 de 35
Программирование Lego-роботов
    Решение задач. Часть II




                 Нижний Новгород, 2012
Содержание

• Движение вдоль линии, огибая препятствия
  • Цикл с выходом по условию
• Движение вдоль линии сложной траектории
  • Использование собственных блоков
Огибание препятствий

Задание
 При движении вдоль линии робот должен обнаружить
 препятствия на своем пути и обходить их, возвращась
 снова на линию
Огибание препятствий

Анализ задачи
  • Задачу можно разбить на несколько под-задач:
    • Ехать вдоль черной линии пока датчик расстояния не
      обнаружит препятствие, на такой дистанции, которая
      бы не мешала роботу вдальнейшем выполнять его
      объезд.
    • Выполнить объезд препятствия и вернуться на
      линию.

        Движение вдоль линии




                                Объезд препятствия и
                               возвращение на линию
Огибание препятствий

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




  • Как обнаружить препятствие во время движения и остановить
    движение робота, но не программы (ведь в последствии робот
    должен выполнить объезд препятствия)?

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

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




                        1      2   3   4   5

  • Двигаться вдоль линии пока не появиться препятствие
        Движение вдоль линии
Цикл с выходом по условию

В NXT-G существует способ задать условие выхода
для цикла

Условием выхода может быть:
                      •   Достижение определенного
                          количества повторений
                      •   Событие от датчика
                      •   Ограничение выполнения по
                          времени
                      •   Результат вычисления
                          внешнего логического условия
Огибание препятствий

Предыдущий алгоритм, который использовался
для движения вдоль линии, подразумевал
чередование операций ожидания
                     Ожидание появления
                     светлого участка поля




                                 Ожидание появления
                                 темного участка поля


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



                       Робот должен был
                    заметить препятствие во
                      время этого поворота

                                              В действительности, оно
                                              будет обнаружено только
                                                после этой операции
                                                     ожидания


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

                                  Если нахожусь на светлом, то выполнять
                                             поворот вправо

                            >50

             50%


                            <50
                                  Если нахожусь на темном, то выполнять
                                             поворот влево


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

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




  • Траектория огибания может состоять из нескольких действий или из
    одного плавного поворота.

  • Как убедиться, что робот вернулся на линию?

  • Как убедиться, что робот сможет продолжить движение по линии
    после огибания препятствия?
Огибание препятствий

Очевидно, что для обнаружения линии после
огибания препятствия, нужно использовать датчик
освещенности.
Огибание препятствий

Дальнейшие действия зависят от того, какую
границу линии робот использует для движения.
                             1. Датчик сейчас на темном,
    1          2                поворачивать одним
                                колесом до светлого.
                             2. Датчик – на светлом,
                                продолжать поворот до
                                темного.
                             3. Если робот должен
                                двигаться по правой
3             4                 границе –
                                останавливаемся, иначе
                                продолжаем поворот до
                                светлого.
                             4. Датчик - на левой границе.
Огибание препятствий

Из-за погрешностей, в одном и том же месте датчик
может показывать значения отличающиеся друг от
друга на 1-2% при нескольких последовательных
измерениях.
В итоге, при использовании одного и того же порога
срабатывания для определения «стало темно» и
«стало светло», робот может вести себя
непредсказуемо.

• Например, если в алгоритме из предыдущего слайда, на
  первом шаге датчик покажет 49%, а затем 51%, то робот
  будет считать, что он уже на шаге два, в то время как
  физически расположен все еще на левой границе линии.
Огибание препятствий

Для избегания ложных срабатываний, пороги
определения «стало светлее» и «стало темнее»
сдвигают на 4-10%.
                                   граница линии




          темная область                       светлая область

                           45%   50%        55%



• Двигаться, пока не станет меньше 45% (окажемся точно на темном)
• Двигаться, пока не станет больше 55% (окажемся точно на светлом)
Огибание препятствий

Программа (финал)
  • Объедините две предыдущие программы в одну.

   Движение вдоль линии                           Движение вдоль линии




                           Объезд препятствия и
                          возвращение на линию




  • Предусмотрите возможность реагирования на несколько
    (до четырех) препятствий.
Сложная траектория

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


СТАРТ




ФИНИШ
Сложная траектория

Анализ задачи
  • Для решения задачи робот должен уметь определять
    перекрестки и, в зависимости от плана передвижения,
    должен:
        a) Проезжать перекрестки мимо
        b) Выполнять правый поворот на перекрестке
        c) Выполнять левый поворот на перекрестке
  • Конструкция робота будет содержать как минимум два
    датчика освещенности:
        •   Датчик для движения вдоль линии
        •   Датчик для обнаружения перекрестков
Сложная траектория

Программа (тренировка)
  • Напишите программу, в соовтетствии с которой робот
    считал пересеченные темные линии и остановился бы
    на третьей линии.



                        1    2    3    4    5
  • Используйте блоки ожидания для решения задач
  • Последовательность из каких блоков используется для
    пересечения линии? Будет ли достаточно только блоков
    «движение» и «ждать пока не станет темно»?
Сложная траектория

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



                         1    2    3    4    5
  • Для движения до перекрестка используйте такой же подход, что и из
    предыдущего задания «двигаться до возникновения препятствия»
  • Должен ли робот продолжать двигаться вдоль линии для того, чтобы
    проехать перекресток?
Использование собственных блоков

• Очевидно, что движение вдоль линии в цикле
  «движение до перекрестка» будет тем же самым,
  что и в цикле «проезд перекрестка»




• В NXT-G есть возможность объединять часть
  программы в индивидуальный блок с тем, чтобы:
  •   Использовать его в программе каждый раз, вместо группы
      блоков, которые в него входят.
  •   Экономить место в программе, как при ее графическом
      представлении, так и после компиляции.
Использование собственных блоков

• Создание собственного блока
  •   Выделите группу блоков в программе




  •   Выберите пункт меню «Make A New My Block»
Использование собственных блоков

• Создание собственного блока (продолжение)
  •   Задайте название нового блока (русские названия не
      поддерживаются)
Использование собственных блоков

• Создание собственного блока (продолжение)
  •   Составьте изображение для нового блока
Использование собственных блоков

• Создание собственного блока (продолжение)
  •   Новый блок подставляется вместо выбранного участка в
      программе
Использование собственных блоков

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



• Финальный вид двух циклов.
Использование собственных блоков

• Двойной щелчок по блоку в программе, приведет
  к переходу в содержимое блока.
• Если, например, изменить содержимое блока
  (увеличить скорость, усложнить алгоритм), то
  измениться поведение и в первом и во втором
  цикле.

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

• Каждый цикл имеет свое предназначение: «ехать
  до перекрестка», «проехать перекресток».
• Для удобства, можно для каждого из них
  составить отдельный блок.




•   Вся программа движения до конкретного перекрестка
    будет представлять чередование этих двух блоков.
•   Или даже эта пара блоков может быть объединена в один
    блок, что еще более сократит программу.
Сложная траектория

Программа (продолжение)
  • Напишите программу, выполняющую поворот налево,
    после первого перекрестка.




  • Какой датчик будет использоваться для определения достаточно ли
    робот уже повернулся или нет?
  • С какой стороны от линии должен оказаться датчик после
    выполнения поворота?
Сложная траектория

Можно сравнить два способа поворота:
С помощью датчика поворота
      двигателя - енкодера         С помощью датчиков
  (по градусам или оборотам)          освещенности
+ Просто программировать       + При правильном
- Низкая уверенность, что      программировании, после
после поворота робот будет     поворота, датчик всегда
расположен правильно           будет находиться с нужной
относительно линии             стороны линии.
                               - Более сложная реализация
Сложная траектория

Нужно, чтобы датчик, отвечающий за движение
вдоль линии, оказался с нужной стороны от нее
после поворота. Поэтому навигация с
использованием именно этого датчика наиболее
надежена во время выполнения поворота.
                            В данном примере,
                            прежде чем начать
                            непосредственно поворот,
                            нужно убедиться, что
                            датчик точно расположен
                            на светлой части поля,
                            через предварительный
                            поворот «до светлого».
Сложная траектория

Какой поворот выбрать: одним или двумя
моторами, сколько переходов «светлое-темное» и
в какой последовательности надо сделать, зависит
от того, как расположены датчики относительно
линии и друг друга.
Сложная траектория

Программа (продолжение)
  • Напишите программу, выполняющую поворот направо,
    после первого перекрестка.




  • Изменится ли количество блоков ожидания «до светлого»/«до
    черного» или их количество при этом повороте, если его сравнивать
    с левым?
Сложная траектория

Программа (финал)
  • На основе созданных программ поворота создайте
    собственные блоки.
  • Из полученных блоков «Движение до перекрестка»,
    «Проезд перекрестка», «Левый поворот» и «Правый
    поворот» составьте программу для решения задачи.

                    СТАРТ



                    ФИНИШ


                  После выполнения задания, самостоятельно
                  измените маршрут и составьте новую программу
                  из этих 4 блоков.
Решение задач



• Ваши вопросы?

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Ev3 руководство пользователя
Ev3 руководство пользователяEv3 руководство пользователя
Ev3 руководство пользователя
 
Wro2015 elementary v1.02
Wro2015 elementary v1.02Wro2015 elementary v1.02
Wro2015 elementary v1.02
 
09.robosumo
09.robosumo09.robosumo
09.robosumo
 
labirint
labirintlabirint
labirint
 
Countdown timer
Countdown timerCountdown timer
Countdown timer
 
Robolab
RobolabRobolab
Robolab
 
Wro2015 high school_v1.02
Wro2015 high school_v1.02Wro2015 high school_v1.02
Wro2015 high school_v1.02
 

Destacado

Кружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звукиКружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звукиAlexander Kolotov
 
Кружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый роботКружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый роботAlexander Kolotov
 
Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение Alexander Kolotov
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IAlexander Kolotov
 
Promo presentation for robotics cources
Promo presentation for robotics courcesPromo presentation for robotics cources
Promo presentation for robotics courcesAlexander Kolotov
 
Анализ задания WRO 2015 "Поиск сокровищ"
Анализ задания WRO 2015 "Поиск сокровищ"Анализ задания WRO 2015 "Поиск сокровищ"
Анализ задания WRO 2015 "Поиск сокровищ"AlexVoron
 
Таблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастовТаблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастовAlexander Kolotov
 
тропинка по лесу к голубому озеру
тропинка по лесу к голубому озерутропинка по лесу к голубому озеру
тропинка по лесу к голубому озеруAlexander Kolotov
 
Опросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехникеОпросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехникеAlexander Kolotov
 
Tutorial sencillo kompozer
Tutorial sencillo kompozerTutorial sencillo kompozer
Tutorial sencillo kompozerAngel Camargo
 
шесть кадров
шесть кадровшесть кадров
шесть кадровpermskijkrai
 
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборке
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборкеДорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборке
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборкеfgos-igra
 
Manual oso de anteojos
Manual oso de anteojosManual oso de anteojos
Manual oso de anteojosJos Cruz
 

Destacado (17)

Кружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звукиКружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звуки
 
Кружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый роботКружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый робот
 
Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть I
 
Promo presentation for robotics cources
Promo presentation for robotics courcesPromo presentation for robotics cources
Promo presentation for robotics cources
 
Анализ задания WRO 2015 "Поиск сокровищ"
Анализ задания WRO 2015 "Поиск сокровищ"Анализ задания WRO 2015 "Поиск сокровищ"
Анализ задания WRO 2015 "Поиск сокровищ"
 
Таблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастовТаблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастов
 
тропинка по лесу к голубому озеру
тропинка по лесу к голубому озерутропинка по лесу к голубому озеру
тропинка по лесу к голубому озеру
 
Опросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехникеОпросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехнике
 
Tutorial sencillo kompozer
Tutorial sencillo kompozerTutorial sencillo kompozer
Tutorial sencillo kompozer
 
шесть кадров
шесть кадровшесть кадров
шесть кадров
 
Cuentosilustrados
CuentosilustradosCuentosilustrados
Cuentosilustrados
 
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборке
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборкеДорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборке
Дорожкина Н.Г. Модель батискафа из LEGO WeDo: инструкция по сборке
 
Manual oso de anteojos
Manual oso de anteojosManual oso de anteojos
Manual oso de anteojos
 
Wedo perro alegre
Wedo perro alegreWedo perro alegre
Wedo perro alegre
 
Cargador
CargadorCargador
Cargador
 
Instalacion wedo
Instalacion wedoInstalacion wedo
Instalacion wedo
 

Кружок по робототехнике. Занятие #8. Решение задач

  • 1. Программирование Lego-роботов Решение задач. Часть II Нижний Новгород, 2012
  • 2. Содержание • Движение вдоль линии, огибая препятствия • Цикл с выходом по условию • Движение вдоль линии сложной траектории • Использование собственных блоков
  • 3. Огибание препятствий Задание При движении вдоль линии робот должен обнаружить препятствия на своем пути и обходить их, возвращась снова на линию
  • 4. Огибание препятствий Анализ задачи • Задачу можно разбить на несколько под-задач: • Ехать вдоль черной линии пока датчик расстояния не обнаружит препятствие, на такой дистанции, которая бы не мешала роботу вдальнейшем выполнять его объезд. • Выполнить объезд препятствия и вернуться на линию. Движение вдоль линии Объезд препятствия и возвращение на линию
  • 5. Огибание препятствий Программа (начало) • Напишите программу, в соовтетствии с которой робот двигался бы вдоль черной линии до тех пор, пока перед ним не возникнет препятствие, после чего останавливается. • Как обнаружить препятствие во время движения и остановить движение робота, но не программы (ведь в последствии робот должен выполнить объезд препятствия)? • Какой алгоритм будет использоваться для движения вдоль линии?
  • 6. Цикл с выходом по условию Довольно часто, не нужно повторять действия в программе бесконечно. Так или иначе цикл должен быть завершен при наступлении какого- то события. • Остановиться при пересечении третьей линии 1 2 3 4 5 • Двигаться вдоль линии пока не появиться препятствие Движение вдоль линии
  • 7. Цикл с выходом по условию В NXT-G существует способ задать условие выхода для цикла Условием выхода может быть: • Достижение определенного количества повторений • Событие от датчика • Ограничение выполнения по времени • Результат вычисления внешнего логического условия
  • 8. Огибание препятствий Предыдущий алгоритм, который использовался для движения вдоль линии, подразумевал чередование операций ожидания Ожидание появления светлого участка поля Ожидание появления темного участка поля Может оказаться так, что условие выхода из цикла не сработает, поскольку программа будет находиться в одном из состояний ожидания. Т.е. робот может оказаться ближе заданной дистанции до препятствия.
  • 9. Огибание препятствий Робот должен был заметить препятствие во время этого поворота В действительности, оно будет обнаружено только после этой операции ожидания Алгоритм должен иметь возможность обнаружить препятствие в любой момент. Это легче всего сделать, если от блоков ожидания перейти к блокам ветвления.
  • 10. Огибание препятствий Если нахожусь на светлом, то выполнять поворот вправо >50 50% <50 Если нахожусь на темном, то выполнять поворот влево • Пока робот находиться на светлой части, в каждой итерации цикла выполняется верхняя часть ветвления. • Как только робот попадает в темную область, в каждой итерации цикла выполняются действия из нижней ветки. • Помимо этого, в каждой итерации цикла проверяется не случилось ли условие выхода из цикла.
  • 11. Огибание препятствий Программа (продолжение) • Напишите программу только для огибания препятствия, подразумевая, что робот уже стоит перед ним. После огибания препятствия робот должен вернуться на черную линию. • Траектория огибания может состоять из нескольких действий или из одного плавного поворота. • Как убедиться, что робот вернулся на линию? • Как убедиться, что робот сможет продолжить движение по линии после огибания препятствия?
  • 12. Огибание препятствий Очевидно, что для обнаружения линии после огибания препятствия, нужно использовать датчик освещенности.
  • 13. Огибание препятствий Дальнейшие действия зависят от того, какую границу линии робот использует для движения. 1. Датчик сейчас на темном, 1 2 поворачивать одним колесом до светлого. 2. Датчик – на светлом, продолжать поворот до темного. 3. Если робот должен двигаться по правой 3 4 границе – останавливаемся, иначе продолжаем поворот до светлого. 4. Датчик - на левой границе.
  • 14. Огибание препятствий Из-за погрешностей, в одном и том же месте датчик может показывать значения отличающиеся друг от друга на 1-2% при нескольких последовательных измерениях. В итоге, при использовании одного и того же порога срабатывания для определения «стало темно» и «стало светло», робот может вести себя непредсказуемо. • Например, если в алгоритме из предыдущего слайда, на первом шаге датчик покажет 49%, а затем 51%, то робот будет считать, что он уже на шаге два, в то время как физически расположен все еще на левой границе линии.
  • 15. Огибание препятствий Для избегания ложных срабатываний, пороги определения «стало светлее» и «стало темнее» сдвигают на 4-10%. граница линии темная область светлая область 45% 50% 55% • Двигаться, пока не станет меньше 45% (окажемся точно на темном) • Двигаться, пока не станет больше 55% (окажемся точно на светлом)
  • 16. Огибание препятствий Программа (финал) • Объедините две предыдущие программы в одну. Движение вдоль линии Движение вдоль линии Объезд препятствия и возвращение на линию • Предусмотрите возможность реагирования на несколько (до четырех) препятствий.
  • 17. Сложная траектория Задание На трассе, выполненной в виде черной линии с перекрестками, робот должен следовать заранее заданному маршруту. СТАРТ ФИНИШ
  • 18. Сложная траектория Анализ задачи • Для решения задачи робот должен уметь определять перекрестки и, в зависимости от плана передвижения, должен: a) Проезжать перекрестки мимо b) Выполнять правый поворот на перекрестке c) Выполнять левый поворот на перекрестке • Конструкция робота будет содержать как минимум два датчика освещенности: • Датчик для движения вдоль линии • Датчик для обнаружения перекрестков
  • 19. Сложная траектория Программа (тренировка) • Напишите программу, в соовтетствии с которой робот считал пересеченные темные линии и остановился бы на третьей линии. 1 2 3 4 5 • Используйте блоки ожидания для решения задач • Последовательность из каких блоков используется для пересечения линии? Будет ли достаточно только блоков «движение» и «ждать пока не станет темно»?
  • 20. Сложная траектория Программа (начало) • Напишите программу, после запуска которой робот двигался бы вдоль линии и остановился после третьего перекрестка. 1 2 3 4 5 • Для движения до перекрестка используйте такой же подход, что и из предыдущего задания «двигаться до возникновения препятствия» • Должен ли робот продолжать двигаться вдоль линии для того, чтобы проехать перекресток?
  • 21. Использование собственных блоков • Очевидно, что движение вдоль линии в цикле «движение до перекрестка» будет тем же самым, что и в цикле «проезд перекрестка» • В NXT-G есть возможность объединять часть программы в индивидуальный блок с тем, чтобы: • Использовать его в программе каждый раз, вместо группы блоков, которые в него входят. • Экономить место в программе, как при ее графическом представлении, так и после компиляции.
  • 22. Использование собственных блоков • Создание собственного блока • Выделите группу блоков в программе • Выберите пункт меню «Make A New My Block»
  • 23. Использование собственных блоков • Создание собственного блока (продолжение) • Задайте название нового блока (русские названия не поддерживаются)
  • 24. Использование собственных блоков • Создание собственного блока (продолжение) • Составьте изображение для нового блока
  • 25. Использование собственных блоков • Создание собственного блока (продолжение) • Новый блок подставляется вместо выбранного участка в программе
  • 26. Использование собственных блоков • Поскольку, содержимое следующего цикла аналогично содержимому нового блока, то оно может быть замещено. • Созданные блоки находятся в палитре инструментов «Custom» • Финальный вид двух циклов.
  • 27. Использование собственных блоков • Двойной щелчок по блоку в программе, приведет к переходу в содержимое блока. • Если, например, изменить содержимое блока (увеличить скорость, усложнить алгоритм), то измениться поведение и в первом и во втором цикле. После изменения собственного блока не забывайте сохранить его и загрузить осно вную программу (не содержимое блока) на блок заново – иначе изменения не подхватятся.
  • 28. Использование собственных блоков • Каждый цикл имеет свое предназначение: «ехать до перекрестка», «проехать перекресток». • Для удобства, можно для каждого из них составить отдельный блок. • Вся программа движения до конкретного перекрестка будет представлять чередование этих двух блоков. • Или даже эта пара блоков может быть объединена в один блок, что еще более сократит программу.
  • 29. Сложная траектория Программа (продолжение) • Напишите программу, выполняющую поворот налево, после первого перекрестка. • Какой датчик будет использоваться для определения достаточно ли робот уже повернулся или нет? • С какой стороны от линии должен оказаться датчик после выполнения поворота?
  • 30. Сложная траектория Можно сравнить два способа поворота: С помощью датчика поворота двигателя - енкодера С помощью датчиков (по градусам или оборотам) освещенности + Просто программировать + При правильном - Низкая уверенность, что программировании, после после поворота робот будет поворота, датчик всегда расположен правильно будет находиться с нужной относительно линии стороны линии. - Более сложная реализация
  • 31. Сложная траектория Нужно, чтобы датчик, отвечающий за движение вдоль линии, оказался с нужной стороны от нее после поворота. Поэтому навигация с использованием именно этого датчика наиболее надежена во время выполнения поворота. В данном примере, прежде чем начать непосредственно поворот, нужно убедиться, что датчик точно расположен на светлой части поля, через предварительный поворот «до светлого».
  • 32. Сложная траектория Какой поворот выбрать: одним или двумя моторами, сколько переходов «светлое-темное» и в какой последовательности надо сделать, зависит от того, как расположены датчики относительно линии и друг друга.
  • 33. Сложная траектория Программа (продолжение) • Напишите программу, выполняющую поворот направо, после первого перекрестка. • Изменится ли количество блоков ожидания «до светлого»/«до черного» или их количество при этом повороте, если его сравнивать с левым?
  • 34. Сложная траектория Программа (финал) • На основе созданных программ поворота создайте собственные блоки. • Из полученных блоков «Движение до перекрестка», «Проезд перекрестка», «Левый поворот» и «Правый поворот» составьте программу для решения задачи. СТАРТ ФИНИШ После выполнения задания, самостоятельно измените маршрут и составьте новую программу из этих 4 блоков.