Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Программирование Lego-роботов
   «Слушаем» датчики. Часть III




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

•   Принятие решений
•   Ветвление программы в NXT-G
•   Особенности блока ветвления
•   Коснулись или нет?
• ...
Принятие решений

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

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


 ...
Принятие решений

• Также можно говорить о причинах и действиях,
  которые эти причины вызывают.

               Стало    ...
Ветвление программы в NXT-G

• В месте принятия решения происходит
  разветвление программы.
• В зависимости от решения, п...
Ветвление программы в NXT-G

         • Для того, чтобы обозначить место
           ветвления в программе, используется
  ...
Ветвление программы в NXT-G

• Для принятия решения, в какую ветку программы
  переключаться может быть использована
  инф...
Ветвление программы в NXT-G


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

• Каждый блок принятия решения может быть
  отображен в двух формах:
  В виде ветвления       ...
Особенности блока ветления

   В виде ветвления                   В виде блока с вкладками




                           ...
Коснулись или нет?

• Ветвление может происходить после оценки
  состояния датчика касания:




• «Если датчик касания заж...
Коснулись или нет?

• У датчика касания проверять можно состояния –
  зажат, отжат, нажат.
• Проверка на состояние «отжат»...
Коснулись или нет?

• Проверку на состояние «нажат» (зажат и сразу же
  отжат) можно интерпретировать как запрос на
  собы...
Коснулись или нет?

• Пример




1. Проехать какую-то трассу
2. Проверить привезла ли тележка достаточно груза.
   2.1. Ес...
Коснулись или нет?

• Задание 1.
  1. После включения блок должен проверить нажат ли
     датчик касания.
  2. В зависимос...
Коснулись или нет?

• Задание 2. Управляемая машинка
  1. Датчик касания закреплен на длинном проводе
  2. Если датчик наж...
Насколько светло?

• Ветвление может происходить после оценки
  состояния датчика освещенности (или датчика
  цвета в режи...
Насколько светло?

• Определение «светлее»/«темнее»
  выполняется путем сравнения с
  указанным значением.
• Если текущее ...
Насколько светло?

• Пример




1. Пока тележка двигается, проверять насколько светло вокруг
   1.1. Если светло, разверну...
Насколько светло?
• Задание 3. Азбука морзе
  1. Пока тележка едет по темной поверхности – издается
     звук, как только ...
Какой цвет?

• Ветвление может происходить после оценки
  состояния датчика цвета:




• «Если цвет синий, то выполнить бл...
Какой цвет?

• Определять на соответствие за
  раз можно и один цвет и
  несколько.
• Проверку можно проинвертировать – пр...
Какой цвет?

• Пример
  • Двигатель вращает
    робота вокруг своей оси
  • Если датчик увидел
    красный цвет – играется...
Какой цвет?

• Задание 4. Красный цвет – дороги нет
  1. Робот-тележка должен пересекать черные полоски –
     дорожки, пр...
Ближе или дальше?

• После сравнения текущего показания сенсора
  расстояния с заданным эталонным, программа
  также может...
Ближе или дальше?

• При изменении знака в условии с меньше на
  больше меняется (инвертируется) смысл условия:
          ...
Ближе или дальше?

• Пример




1. Ехать, пока в стене не найдется расстояние глубже 5 см.
2. Проверить достаточно ли мест...
Ближе или дальше?

• Задание 5a. Беспокойный любопытный робот
  1. Робот должен находиться все время на одном
     расстоя...
Ближе или дальше?

• Задание 5b. Опытный любопытный робот
  1. В предыдущем задании, робот никогда не был в
     состоянии...
Сколько едем?

• После сравнения текущего показания датчика
  поворота оси мотора (енкодер) с заданным
  эталонным, програ...
Сколько едем?

• Сравниваться могут как количество градусов, на
  которые повернулась ось мотора, так и количество
  оборо...
Сколько едем?

  • По-умолчанию, показания датчика поворота накапливаются
    с момента старта робота. Т.е. можно в любой ...
Сколько едем?

• Сброс датчика поворотов оси двигателя
  осуществляется специальным блоком:
Сколько едем?

• Пример




Еще один способ ехать по квадрату.
       Для измерения сколько проехал робот не обязательно с...
Сколько едем?

• Задание 6. Умная парковка
  1. Датчик расстояния смотрит в сторону
  2. Робот должен найти пространство д...
Принятие решений



 • Ваши вопросы?
Upcoming SlideShare
Loading in …5
×

of

Кружок по робототехнике. Занятие #6. Ветвления  Slide 1 Кружок по робототехнике. Занятие #6. Ветвления  Slide 2 Кружок по робототехнике. Занятие #6. Ветвления  Slide 3 Кружок по робототехнике. Занятие #6. Ветвления  Slide 4 Кружок по робототехнике. Занятие #6. Ветвления  Slide 5 Кружок по робототехнике. Занятие #6. Ветвления  Slide 6 Кружок по робототехнике. Занятие #6. Ветвления  Slide 7 Кружок по робототехнике. Занятие #6. Ветвления  Slide 8 Кружок по робототехнике. Занятие #6. Ветвления  Slide 9 Кружок по робототехнике. Занятие #6. Ветвления  Slide 10 Кружок по робототехнике. Занятие #6. Ветвления  Slide 11 Кружок по робототехнике. Занятие #6. Ветвления  Slide 12 Кружок по робототехнике. Занятие #6. Ветвления  Slide 13 Кружок по робототехнике. Занятие #6. Ветвления  Slide 14 Кружок по робототехнике. Занятие #6. Ветвления  Slide 15 Кружок по робототехнике. Занятие #6. Ветвления  Slide 16 Кружок по робототехнике. Занятие #6. Ветвления  Slide 17 Кружок по робототехнике. Занятие #6. Ветвления  Slide 18 Кружок по робототехнике. Занятие #6. Ветвления  Slide 19 Кружок по робототехнике. Занятие #6. Ветвления  Slide 20 Кружок по робототехнике. Занятие #6. Ветвления  Slide 21 Кружок по робототехнике. Занятие #6. Ветвления  Slide 22 Кружок по робототехнике. Занятие #6. Ветвления  Slide 23 Кружок по робототехнике. Занятие #6. Ветвления  Slide 24 Кружок по робототехнике. Занятие #6. Ветвления  Slide 25 Кружок по робототехнике. Занятие #6. Ветвления  Slide 26 Кружок по робототехнике. Занятие #6. Ветвления  Slide 27 Кружок по робототехнике. Занятие #6. Ветвления  Slide 28 Кружок по робототехнике. Занятие #6. Ветвления  Slide 29 Кружок по робототехнике. Занятие #6. Ветвления  Slide 30 Кружок по робототехнике. Занятие #6. Ветвления  Slide 31 Кружок по робототехнике. Занятие #6. Ветвления  Slide 32 Кружок по робототехнике. Занятие #6. Ветвления  Slide 33 Кружок по робототехнике. Занятие #6. Ветвления  Slide 34 Кружок по робототехнике. Занятие #6. Ветвления  Slide 35 Кружок по робототехнике. Занятие #6. Ветвления  Slide 36 Кружок по робототехнике. Занятие #6. Ветвления  Slide 37
Upcoming SlideShare
Кружок по робототехнике. Занятие #7. Решение задач
Next

6 Likes

Share

Кружок по робототехнике. Занятие #6. Ветвления

This slide deck is used on the sixth lesson for kids who started robotics courses for the first year. It introduces kids to opportunity to use switches together with sensors in order to make decisions how the program needs to behave further.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Кружок по робототехнике. Занятие #6. Ветвления

  1. 1. Программирование Lego-роботов «Слушаем» датчики. Часть III Нижний Новгород, 2012
  2. 2. Содержание • Принятие решений • Ветвление программы в NXT-G • Особенности блока ветвления • Коснулись или нет? • На сколько светло? • Какой цвет? • Ближе или дальше? • Сколько едем?
  3. 3. Принятие решений • В ходе выполнения задания перед роботом может стоять выбор, в какое состояние ему перейти. • Подобный выбор стоит перед богатырем на распутье. • Выбор может зависеть от показаний на сенсорах и датчиках, внутренних часов робота или от информации полученной от других роботов.
  4. 4. Принятие решений • Например, робот, обнаружив красный мяч, должен отнести его в корзину, а синий оставить на месте. Включить моторы Узнать захвата какого цвета мяч Включить моторы для разворота
  5. 5. Принятие решений • Также можно говорить о причинах и действиях, которые эти причины вызывают. Стало Поднять тихо занавес Подать Стало звуковой громко сигнал причины действия
  6. 6. Ветвление программы в NXT-G • В месте принятия решения происходит разветвление программы. • В зависимости от решения, программа может пойти либо по одной, либо по другой ветке • После выполнения действий внутри той или иной ветки, программа вновь возвращается в «основное русло».
  7. 7. Ветвление программы в NXT-G • Для того, чтобы обозначить место ветвления в программе, используется блок «Switch» (Переключить). • Блок может быть описан фразой «в зависимости от причины, переключиться в одну из двух веток программы» • Блок располагается в основной (Common) палитре.
  8. 8. Ветвление программы в NXT-G • Для принятия решения, в какую ветку программы переключаться может быть использована информация с различных датчиков:
  9. 9. Ветвление программы в NXT-G • Вкладывая блоки принятия решения друг в друга, можно составить множественные разветвления.
  10. 10. Особенности блока ветления • Каждый блок принятия решения может быть отображен в двух формах: В виде ветвления В виде блока с вкладками
  11. 11. Особенности блока ветления В виде ветвления В виде блока с вкладками + занимает меньше места + может быть больше, чем две + удобно отображает ветвление вкладки, больше вариантов + видно блоки программы в каждой разветвления ветке + можно передавать данные - занимает много места (каналы данных) внутрь - возможны только две ветки - блоки программы скрыты во вкладках
  12. 12. Коснулись или нет? • Ветвление может происходить после оценки состояния датчика касания: • «Если датчик касания зажат, то выполнить блоки из верхней ветки, иначе (если отжат) выполнить блоки из нижней ветки»
  13. 13. Коснулись или нет? • У датчика касания проверять можно состояния – зажат, отжат, нажат. • Проверка на состояние «отжат» – инвертирует логику. • «Если датчик касания отжат, то выполнить блоки из верхней ветки, иначе (если нажат) выполнить блоки из нижней ветки»
  14. 14. Коснулись или нет? • Проверку на состояние «нажат» (зажат и сразу же отжат) можно интерпретировать как запрос на событие. • «Случилось ли на датчике нажатие? Если ДА, выполнить блоки из верхней ветки. Если НЕТ, выполнить блоки из нижней ветки.» ДА НЕТ
  15. 15. Коснулись или нет? • Пример 1. Проехать какую-то трассу 2. Проверить привезла ли тележка достаточно груза. 2.1. Если груза достаточно (датчик зажат), вывести «смайлик» 2.2. Если груза недостаточно, вывести недовольный сигнал 3. Возвращаться назад
  16. 16. Коснулись или нет? • Задание 1. 1. После включения блок должен проверить нажат ли датчик касания. 2. В зависимости от того нажат или нет, воспроизвести фразу “Yes” или “No” 3. После воспроизведения – остановить программу YES NO
  17. 17. Коснулись или нет? • Задание 2. Управляемая машинка 1. Датчик касания закреплен на длинном проводе 2. Если датчик нажат – робот-тележка стоит, если отжат – едет 3. Измените, программу так, чтобы при нажатом датчике робот вращался вокруг своей оси, а при отжатом – двигался вперед.
  18. 18. Насколько светло? • Ветвление может происходить после оценки состояния датчика освещенности (или датчика цвета в режиме датчика освещенности): • «Если светлее, то выполнить блоки из верхней ветки, иначе (если темнее) выполнить блоки из нижней ветки»
  19. 19. Насколько светло? • Определение «светлее»/«темнее» выполняется путем сравнения с указанным значением. • Если текущее показание больше заданного, то это расценивается как «светлее», иначе «темнее» • Возможна смена знака на противоположный, что изменяет логику разветвления.
  20. 20. Насколько светло? • Пример 1. Пока тележка двигается, проверять насколько светло вокруг 1.1. Если светло, развернуть солнечные батареи и написать на экране об этом 1.2. Если темно, то свернуть батареи, чтобы защитить их от пыли
  21. 21. Насколько светло? • Задание 3. Азбука морзе 1. Пока тележка едет по темной поверхности – издается звук, как только поверхность светлее – звук смолкает L E G O Заранее неизвестно, сколько каждый звук продлится – неизвестно на сколько быстро тележка проедет по каждой «точке» и «тире». Поэтому звук начнет играться какое-то заранее долгое время, но при этом программа не будет ждать его завершения, а сразу перейдет к следующему блоку в программе. Тогда, при заезде на светлое поле, звук надо явно остановить.
  22. 22. Какой цвет? • Ветвление может происходить после оценки состояния датчика цвета: • «Если цвет синий, то выполнить блоки из верхней ветки, иначе (если любой другой) выполнить блоки из нижней ветки»
  23. 23. Какой цвет? • Определять на соответствие за раз можно и один цвет и несколько. • Проверку можно проинвертировать – проверять на совпадение цвета, которые находятся вне заданного диапазона: «любой цвет кроме красного» или «любой цвет кроме синего и зеленого»
  24. 24. Какой цвет? • Пример • Двигатель вращает робота вокруг своей оси • Если датчик увидел красный цвет – играется нота ДО • Если датчик увидел синий цвет – играется нота РЕ • При любом другом цвете играется нота МИ
  25. 25. Какой цвет? • Задание 4. Красный цвет – дороги нет 1. Робот-тележка должен пересекать черные полоски – дорожки, при пересечении говорить «Black» 2. Как только ему встретиться красная дорожка – он должен остановиться 3. Задание нужно выполнить с использованием вложенных условий • Окончательно ли остановится робот на красной дорожке? Для того, чтобы остановить выполнение программы, используется блок «Stop»
  26. 26. Ближе или дальше? • После сравнения текущего показания сенсора расстояния с заданным эталонным, программа также может разветвиться: • «Если объект ближе, чем заданное расстояние, то выполнить блоки из верхней ветки, иначе (если дальше или точно на таком расстоянии) выполнить блоки из нижней ветки»
  27. 27. Ближе или дальше? • При изменении знака в условии с меньше на больше меняется (инвертируется) смысл условия: «Если объект дальше, чем заданное расстояние, то выполнить блоки из верхней ветки, иначе (если ближе или точно на таком расстоянии) выполнить блоки из нижней ветки»
  28. 28. Ближе или дальше? • Пример 1. Ехать, пока в стене не найдется расстояние глубже 5 см. 2. Проверить достаточно ли места для заезда робота. 2.1. Если места недостаточно (на сенсоре маленькие значение) вывести сигнал тревоги 2.2. Если груза достаточно, произвести заезд
  29. 29. Ближе или дальше? • Задание 5a. Беспокойный любопытный робот 1. Робот должен находиться все время на одном расстоянии от руки (или другого предмета) – 25 см. 2. Если рука удаляется от робота, то робот придвигается к ней 3. Если рука приближается к роботу, то робот отъезжает назад.
  30. 30. Ближе или дальше? • Задание 5b. Опытный любопытный робот 1. В предыдущем задании, робот никогда не был в состоянии покая – он, то ехал вперед, то двигался назад 2. Нужно изменить программу так, чтобы робот был неподвижен при нахождении на определенном расстоянии 24 см. 26 см.
  31. 31. Сколько едем? • После сравнения текущего показания датчика поворота оси мотора (енкодер) с заданным эталонным, программа также может разветвиться: • «Если мотор повернулся больше, чем заданное количество градусов, то выполнить блоки из верхней ветки, иначе (если дальше или точно на таком расстоянии) выполнить блоки из нижней ветки»
  32. 32. Сколько едем? • Сравниваться могут как количество градусов, на которые повернулась ось мотора, так и количество оборотов: • Также при сравнении может учитываться направление движения. • Аналогично работе с другими датчиками, изменение знака сравнения инвертирует логику поведения
  33. 33. Сколько едем? • По-умолчанию, показания датчика поворота накапливаются с момента старта робота. Т.е. можно в любой момент времени узнать, на какое расстояние робот уехал от зоны старта. Причем движение мотора вперед увеличивают это число, движение мотора назад уменьшает его. • Это поведение можно изменить, если в сбросить показания датчика - накопление будет происходить с момента, когда произошел сброс. Старт программы Сброс Замера показаний 3 оборота Поведение по-умолчанию, 5 оборотов Количество оборотов Количество оборотов мотора мотора после сброса 2 оборота после старта
  34. 34. Сколько едем? • Сброс датчика поворотов оси двигателя осуществляется специальным блоком:
  35. 35. Сколько едем? • Пример Еще один способ ехать по квадрату. Для измерения сколько проехал робот не обязательно собирать значения с датчиков обеих моторов. При движении прямо моторы проезжают одинаковое расстояние, поэтому использовать значения можно тоже только с одного из моторов.
  36. 36. Сколько едем? • Задание 6. Умная парковка 1. Датчик расстояния смотрит в сторону 2. Робот должен найти пространство для парковки между двумя «автомобилями» и выполнить заезд в обнаруженное пространство. Если расстояние между «автомобилями» недостаточно для парковки – робот должен продолжить движение прямо, для поиска более подходящего места 1.5 оборота 0.6 оборотов 15 см. ?? см. 15 см.
  37. 37. Принятие решений • Ваши вопросы?
  • ssuserf83236

    Sep. 25, 2016
  • ZhannaPankova1

    Jul. 9, 2015
  • ssuser8ea432

    May. 26, 2015
  • ssuserafaea7

    May. 15, 2015
  • Madina8602

    May. 6, 2015
  • ssuser4d8541

    Nov. 21, 2013

This slide deck is used on the sixth lesson for kids who started robotics courses for the first year. It introduces kids to opportunity to use switches together with sensors in order to make decisions how the program needs to behave further.

Views

Total views

6,844

On Slideshare

0

From embeds

0

Number of embeds

4,266

Actions

Downloads

0

Shares

0

Comments

0

Likes

6

×