SlideShare a Scribd company logo
1 of 23
Модуль EV3
Большой
мотор Средний мотор
Датчик
касания
Датчик
цвета
ИК-датчик
Ультразвуковой
датчик
ИК-маяк
(пульт)
Начало
Большой
моторЭкран
Независимое
управление
Индикатор
состояния модуля
Средний мотор
Звук
Экран
Рулевое
управление
Ожидание
(Expectation)
Переключатель
(Switch)
Цикл
(Loop)
Прерывание цыкла
Для этого вам нужно разделиться на 3 группы. Каждая группа выбирает себе один
из трёх разделов подключения своего марсохода.
Это:
■ подключение марсохода к пульту ДУ;
■ подключение марсохода к смартфону;
■ подключение марсохода через Robocam.
Каждая группа в течение 20-ти минут, с помощью интернета, готовит
презентацию своего типа подключения и по истечении времени презентует и
демонстрирует её другим группам.
Переменная – это ячейка памяти для хранения информации.
Для того чтобы создать переменную, сначала нужно перейти на красную
вкладку палитры цветов и выбрать блок переменной.
Затем нужно перетащить блок и задать имя
переменной.
Для работы с переменной нужно выбрать для нее режим: чтение из или
запись в переменную. Выбор записи позволит время от времени менять
текущее значение переменной на новое. Для этого нужно подключить
проводник, по которому передаются данные ко входу блока на его панели.
Так же можно задать начальное значение переменной, введя его в
специальное поле блока или воспользовавшись радиокнопками.
Ультразвуковой датчик
1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся
программным блоком "Независимое управление моторами" "Зеленой палитры",
Режим работы блока установим "Включить", значение мощности для
порта "B" установим равным -30, значение мощности для порта "C" установим
равным 30 (Рис. 1 поз.1).
2. Для поиска соперника используем программный блок "Ожидание" "Оранжевой
палитры" в режиме "Ультразвуковой датчик - Сравнение - Расстояние в
сантиметрах" с пороговым значением срабатывания датчика, равным 57 (Рис. 1 поз. 2).
3. После того, как робот окажется напротив соперника, используя программный
блок "Независимое управление моторами" "Зеленой палитры" выключим
моторы (Рис. 1 поз. 3).
Рис.1
1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся
программным блоком "Независимое управление моторами" "Зеленой палитры",
Режим работы блока установим "Включить", значение мощности для
порта "B" установим равным -30, значение мощности для порта "C" установим
равным 30 (Рис. 2 поз.1).
2. Для поиска соперника воспользуемся программным блоком "Ожидание"
"Оранжевой палитры" в режиме "Инфракрасный датчик - Сравнение -
Приближение", с пороговым значением срабатывания датчика, равным 70 (Рис. 2
поз. 2).
3. После того, как робот окажется напротив соперника, используя программный
блок "Независимое управление моторами" "Зеленой палитры" выключим
моторы (Рис. 2 поз. 3).
Рис.2
Приступим к поэтапной реализации алгоритма атаки соперника: для этого
создадим в проекте временную программу "lesson 1-2" и начнем её наполнение
программными блоками.
1. Возьмем программный блок "Цикл" "Оранжевой палитры".
2. Внутрь блока "Цикл" поместим программный блок "Независимое управление
моторами" "Зеленой палитры". Режим работы блока установим в
значение "Включить" (Рис. 3 поз. 1), мощности моторов "B" и "C" установим в
максимальное значение - 100 (Рис. 3 поз. 2).
Рис.3
3. Следом за блоком "Независимое управление моторами" поместим
программный блок "Датчик цвета" "Желтой палитры". Режим работы блока
установим в значение "Сравнение - Яркость отраженного света" (Рис. 4)
Рис.4
"Датчик цвета - Сравнение - Яркость отраженного света". Но, в отличие от
блока "Ожидание", этот программный блок не ждет выполнения условия, указанного
параметрами "Тип сравнения" (Рис. 5 поз. 1) и "Пороговое значение" (Рис. 5 поз. 2), а
сразу выдает логическое значение ("Истина" или "Ложь") в выходном
параметре "Результат сравнения" (Рис. 5 поз. 3) и измеренное значение - в выходном
параметре "Освещение" (Рис. 5 поз. 4).
Параметры "Тип сравнения" и "Пороговое значение" на Рис. 5 поз. 1, 2 установим
таким образом, чтобы выходной параметр "Результат сравнения" (Рис. 5 поз.
3) выдавал логическое значение "Истина" при пересечении датчиком цвета черной
границы ринга.
В этом режиме программный блок "Датчик цвета"
"Желтой палитры" визуально очень похож на программный
блок "Ожидание" "Оранжевой палитры" в режиме
Рис.5
В случае использования инфракрасного датчика за блоком "Датчик цвета" установим
программный блок "Инфракрасный датчик" "Желтой палитры". Режим работы
блока установим в значение "Сравнение - Приближение" (Рис. 6 поз. 1).
Параметр "Тип сравнения" (Рис. 6 поз. 2), параметр "Пороговое значение" (Рис. 6
поз. 3) установим таким образом, чтобы выходной параметр "Результат сравнения"
(Рис. 6 поз. 4) выдавал логическое значение "Истина" в случае потери из виду роботом
соперника
Рис.6
Рис.7
Давайте ещё раз проанализируем промежуточный код нашего алгоритма атаки: мы
включили моторы на максимальную мощность и движемся вперед, постоянно в цикле
опрашивая датчики. Если наш робот пересечет черную линию границы ринга, то
значение выходного параметра "Результат сравнения" "Датчика цвета" примет
значение "Истина". Если наш робот потеряет соперника, то значение выходного
параметра "Результат сравнения" датчика, следящего за соперником, также примет
значение "Истина". В любом из этих случаев нам следует прекратить атаку, завершив
наш цикл. В этом нам поможет программный блок "Логические операции" "Красной
палитры". Познакомимся с этим блоком подробнее: программный блок "Логические
операции" предназначен для выполнения операций над логическими данными (Рис.7).
Рис.7
Выбранный режим программного блока "Логические операции" "Красной
палитры" определяет одну из четырех операций над логическими данными: "И
(AND)", "ИЛИ (OR)", "Исключающее ИЛИ" и "Исключение (NOT)". Два
входных параметра "a" и "b" (для операции "Исключение (NOT)" - один входной
параметр "a") передают в программный блок входные значения, а результирующее
значение выдается выходным параметром "Результат". Если вы ранее не
сталкивались с логическими операциями, то можете ознакомиться с базовыми
знаниями в прилагаемой справке под спойлером.
5. За программным блоком "Ультразвуковой датчик" или "Инфракрасный
датчик" поместим программный блок "Логические операции" "Красной
палитры".
• Выходной параметр "Результат сравнения" программного блока "Датчик
цвета" (Рис. 8, 9 поз. 1)соединим с входным параметром "a" программного
блока "Логические операции" (Рис. 8, 9 поз. 4).
• Выходной параметр "Результат сравнения" программного
блока "Ультразвуковой (инфракрасный) датчик" (Рис. 8, 9 поз. 2) соединим с
входным параметром "b" программного блока "Логические операции" (Рис. 8, 9 поз.
5).
Рис.8
Рис.9
• Установив режим программного блока "Цикл" в значение "Логическое
значение" (Рис. 8, 9 поз. 7), выходной параметр "Результат" программного
блока "Логические операции" (Рис. 8, 9 поз. 6)соединим с входным
параметром "Пока не будет истина" программного блока "Цикл" (Рис. 8, 9 поз. 8).
Данные настройки завершат выполнение цикла при "Истинном" результате
выполнения логической операции.
• Режим работы программного блока "Логические
операции" установим в "ИЛИ (OR)" (Рис. 8, 9 поз. 3).
В этом случае результат выполнения логической
операции будет принимать значение "Истина", только
если будет выполнено одно из условий: датчик цвета
пересёк черную линию, робот потерял соперника.
Рис.8
Рис.9
Если наш робот остановился над границей ринга, то перед тем, как начать поиск,
роботу следует, отъехав немного назад, вернуться внутрь ринга. Дополним нашу
программу атаки следующим кодом: за пределами цикла атаки, воспользуемся
программным блоком "Переключатель" "Оранжевой палитры". Режим работы
блока "Переключатель" установим в "Датчик цвета - Сравнение - Яркость
отраженного света". Параметры "Тип сравнения" и "Пороговое
значение" установим аналогично ранее используемым в программном блоке "Датчик
цвета" "Желтой палитры".
Рис.9
Следовательно, если наш робот остановился над черной линией, то выполнение
будет передано верхнему контейнеру программного блока "Переключатель". Именно в
верхний контейнер поместим программный блок "Рулевое управление" "Зеленой
палитры", с настройками параметров, заставляющими робота отъехать назад на один
оборот моторов. В нижний контейнер программного блока "Переключатель" поместим
программный блок, выключающий моторы (Рис. 9). Повторно протестировав алгоритм
атаки, убедимся, что после того, как робот-сумоист вытолкал соперника за пределы ринга,
он вернулся немного назад.
Рис.9
Вот теперь можно завершить разработку программы для робота-сумоиста. Внутрь
бесконечного цикла последовательно вложим программу поиска соперника, а затем
программу атаки соперника. Попробуйте выполнить эту работу самостоятельно, не
подглядывая в решение.
1. Поискать необычные способы управления роботом (не
только LEGO).
2. Результат поиска оформить в виде презентации.
3. Презентацию прикрепить в MyStat и защитить на
следующем занятии.

More Related Content

Similar to 09.robosumo

07.Datchic cveta/color sensor
07.Datchic cveta/color sensor07.Datchic cveta/color sensor
07.Datchic cveta/color sensortukunivan
 
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...ITMO University
 
Code Contracts ABC 16.04.2011
Code Contracts ABC 16.04.2011Code Contracts ABC 16.04.2011
Code Contracts ABC 16.04.2011Dmytro Mindra
 
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...ITMO University
 
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...ITMO University
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кодаTatyanazaxarova
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаAndrey Karpov
 
Теория и практика автоматического управления в робототехнике
Теория и практика автоматического управления в робототехникеТеория и практика автоматического управления в робототехнике
Теория и практика автоматического управления в робототехникеАндрей Антонов
 
AIDL в современном мире, Виктор Лапин. 8 июня, 2019
AIDL в современном мире, Виктор Лапин. 8 июня, 2019AIDL в современном мире, Виктор Лапин. 8 июня, 2019
AIDL в современном мире, Виктор Лапин. 8 июня, 2019Mail.ru Group
 
Programming Guide
Programming GuideProgramming Guide
Programming Guideguest63e09c
 
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде ArduinoЛабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде ArduinoAnton Moiseev
 
«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»metodkopilka
 
Урок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвигаУрок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвигаTatyanazaxarova
 
справка по по Lego
справка по по Legoсправка по по Lego
справка по по Legopermskijkrai
 
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)tukunivan
 
Урок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числаУрок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числаTatyanazaxarova
 
"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
 

Similar to 09.robosumo (20)

07.Datchic cveta/color sensor
07.Datchic cveta/color sensor07.Datchic cveta/color sensor
07.Datchic cveta/color sensor
 
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...
АНАЛИЗ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ GPU ДЛЯ АВТОМАТИЧЕСКОГО СИНТЕЗА СИСТЕМЫ УП...
 
STALKER RP Game engine
STALKER RP Game engineSTALKER RP Game engine
STALKER RP Game engine
 
Code Contracts ABC 16.04.2011
Code Contracts ABC 16.04.2011Code Contracts ABC 16.04.2011
Code Contracts ABC 16.04.2011
 
Aps 5000
Aps 5000Aps 5000
Aps 5000
 
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...
АВТОМАТИЧЕСКИЙ СИНТЕЗ СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ ДЛЯ РЕШЕНИЯ ЗАДАЧИ...
 
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ–ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ ...
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
 
Теория и практика автоматического управления в робототехнике
Теория и практика автоматического управления в робототехникеТеория и практика автоматического управления в робототехнике
Теория и практика автоматического управления в робототехнике
 
AIDL в современном мире, Виктор Лапин. 8 июня, 2019
AIDL в современном мире, Виктор Лапин. 8 июня, 2019AIDL в современном мире, Виктор Лапин. 8 июня, 2019
AIDL в современном мире, Виктор Лапин. 8 июня, 2019
 
Programming Guide
Programming GuideProgramming Guide
Programming Guide
 
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде ArduinoЛабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino
 
«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»
 
Урок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвигаУрок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвига
 
справка по по Lego
справка по по Legoсправка по по Lego
справка по по Lego
 
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)
08.peremennyie.datchik rasstoyaniya.(ultrazvukovoy datchik)
 
Урок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числаУрок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числа
 
"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс
 
29311ip
29311ip29311ip
29311ip
 

09.robosumo

  • 1.
  • 2. Модуль EV3 Большой мотор Средний мотор Датчик касания Датчик цвета ИК-датчик Ультразвуковой датчик ИК-маяк (пульт)
  • 5.
  • 6. Для этого вам нужно разделиться на 3 группы. Каждая группа выбирает себе один из трёх разделов подключения своего марсохода. Это: ■ подключение марсохода к пульту ДУ; ■ подключение марсохода к смартфону; ■ подключение марсохода через Robocam. Каждая группа в течение 20-ти минут, с помощью интернета, готовит презентацию своего типа подключения и по истечении времени презентует и демонстрирует её другим группам.
  • 7. Переменная – это ячейка памяти для хранения информации. Для того чтобы создать переменную, сначала нужно перейти на красную вкладку палитры цветов и выбрать блок переменной.
  • 8. Затем нужно перетащить блок и задать имя переменной. Для работы с переменной нужно выбрать для нее режим: чтение из или запись в переменную. Выбор записи позволит время от времени менять текущее значение переменной на новое. Для этого нужно подключить проводник, по которому передаются данные ко входу блока на его панели. Так же можно задать начальное значение переменной, введя его в специальное поле блока или воспользовавшись радиокнопками.
  • 9.
  • 10. Ультразвуковой датчик 1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами" "Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным -30, значение мощности для порта "C" установим равным 30 (Рис. 1 поз.1). 2. Для поиска соперника используем программный блок "Ожидание" "Оранжевой палитры" в режиме "Ультразвуковой датчик - Сравнение - Расстояние в сантиметрах" с пороговым значением срабатывания датчика, равным 57 (Рис. 1 поз. 2). 3. После того, как робот окажется напротив соперника, используя программный блок "Независимое управление моторами" "Зеленой палитры" выключим моторы (Рис. 1 поз. 3). Рис.1
  • 11. 1. Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами" "Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным -30, значение мощности для порта "C" установим равным 30 (Рис. 2 поз.1). 2. Для поиска соперника воспользуемся программным блоком "Ожидание" "Оранжевой палитры" в режиме "Инфракрасный датчик - Сравнение - Приближение", с пороговым значением срабатывания датчика, равным 70 (Рис. 2 поз. 2). 3. После того, как робот окажется напротив соперника, используя программный блок "Независимое управление моторами" "Зеленой палитры" выключим моторы (Рис. 2 поз. 3). Рис.2
  • 12. Приступим к поэтапной реализации алгоритма атаки соперника: для этого создадим в проекте временную программу "lesson 1-2" и начнем её наполнение программными блоками. 1. Возьмем программный блок "Цикл" "Оранжевой палитры". 2. Внутрь блока "Цикл" поместим программный блок "Независимое управление моторами" "Зеленой палитры". Режим работы блока установим в значение "Включить" (Рис. 3 поз. 1), мощности моторов "B" и "C" установим в максимальное значение - 100 (Рис. 3 поз. 2). Рис.3
  • 13. 3. Следом за блоком "Независимое управление моторами" поместим программный блок "Датчик цвета" "Желтой палитры". Режим работы блока установим в значение "Сравнение - Яркость отраженного света" (Рис. 4) Рис.4
  • 14. "Датчик цвета - Сравнение - Яркость отраженного света". Но, в отличие от блока "Ожидание", этот программный блок не ждет выполнения условия, указанного параметрами "Тип сравнения" (Рис. 5 поз. 1) и "Пороговое значение" (Рис. 5 поз. 2), а сразу выдает логическое значение ("Истина" или "Ложь") в выходном параметре "Результат сравнения" (Рис. 5 поз. 3) и измеренное значение - в выходном параметре "Освещение" (Рис. 5 поз. 4). Параметры "Тип сравнения" и "Пороговое значение" на Рис. 5 поз. 1, 2 установим таким образом, чтобы выходной параметр "Результат сравнения" (Рис. 5 поз. 3) выдавал логическое значение "Истина" при пересечении датчиком цвета черной границы ринга. В этом режиме программный блок "Датчик цвета" "Желтой палитры" визуально очень похож на программный блок "Ожидание" "Оранжевой палитры" в режиме Рис.5
  • 15. В случае использования инфракрасного датчика за блоком "Датчик цвета" установим программный блок "Инфракрасный датчик" "Желтой палитры". Режим работы блока установим в значение "Сравнение - Приближение" (Рис. 6 поз. 1). Параметр "Тип сравнения" (Рис. 6 поз. 2), параметр "Пороговое значение" (Рис. 6 поз. 3) установим таким образом, чтобы выходной параметр "Результат сравнения" (Рис. 6 поз. 4) выдавал логическое значение "Истина" в случае потери из виду роботом соперника Рис.6
  • 16. Рис.7 Давайте ещё раз проанализируем промежуточный код нашего алгоритма атаки: мы включили моторы на максимальную мощность и движемся вперед, постоянно в цикле опрашивая датчики. Если наш робот пересечет черную линию границы ринга, то значение выходного параметра "Результат сравнения" "Датчика цвета" примет значение "Истина". Если наш робот потеряет соперника, то значение выходного параметра "Результат сравнения" датчика, следящего за соперником, также примет значение "Истина". В любом из этих случаев нам следует прекратить атаку, завершив наш цикл. В этом нам поможет программный блок "Логические операции" "Красной палитры". Познакомимся с этим блоком подробнее: программный блок "Логические операции" предназначен для выполнения операций над логическими данными (Рис.7).
  • 17. Рис.7 Выбранный режим программного блока "Логические операции" "Красной палитры" определяет одну из четырех операций над логическими данными: "И (AND)", "ИЛИ (OR)", "Исключающее ИЛИ" и "Исключение (NOT)". Два входных параметра "a" и "b" (для операции "Исключение (NOT)" - один входной параметр "a") передают в программный блок входные значения, а результирующее значение выдается выходным параметром "Результат". Если вы ранее не сталкивались с логическими операциями, то можете ознакомиться с базовыми знаниями в прилагаемой справке под спойлером.
  • 18. 5. За программным блоком "Ультразвуковой датчик" или "Инфракрасный датчик" поместим программный блок "Логические операции" "Красной палитры". • Выходной параметр "Результат сравнения" программного блока "Датчик цвета" (Рис. 8, 9 поз. 1)соединим с входным параметром "a" программного блока "Логические операции" (Рис. 8, 9 поз. 4). • Выходной параметр "Результат сравнения" программного блока "Ультразвуковой (инфракрасный) датчик" (Рис. 8, 9 поз. 2) соединим с входным параметром "b" программного блока "Логические операции" (Рис. 8, 9 поз. 5). Рис.8 Рис.9
  • 19. • Установив режим программного блока "Цикл" в значение "Логическое значение" (Рис. 8, 9 поз. 7), выходной параметр "Результат" программного блока "Логические операции" (Рис. 8, 9 поз. 6)соединим с входным параметром "Пока не будет истина" программного блока "Цикл" (Рис. 8, 9 поз. 8). Данные настройки завершат выполнение цикла при "Истинном" результате выполнения логической операции. • Режим работы программного блока "Логические операции" установим в "ИЛИ (OR)" (Рис. 8, 9 поз. 3). В этом случае результат выполнения логической операции будет принимать значение "Истина", только если будет выполнено одно из условий: датчик цвета пересёк черную линию, робот потерял соперника. Рис.8 Рис.9
  • 20. Если наш робот остановился над границей ринга, то перед тем, как начать поиск, роботу следует, отъехав немного назад, вернуться внутрь ринга. Дополним нашу программу атаки следующим кодом: за пределами цикла атаки, воспользуемся программным блоком "Переключатель" "Оранжевой палитры". Режим работы блока "Переключатель" установим в "Датчик цвета - Сравнение - Яркость отраженного света". Параметры "Тип сравнения" и "Пороговое значение" установим аналогично ранее используемым в программном блоке "Датчик цвета" "Желтой палитры". Рис.9
  • 21. Следовательно, если наш робот остановился над черной линией, то выполнение будет передано верхнему контейнеру программного блока "Переключатель". Именно в верхний контейнер поместим программный блок "Рулевое управление" "Зеленой палитры", с настройками параметров, заставляющими робота отъехать назад на один оборот моторов. В нижний контейнер программного блока "Переключатель" поместим программный блок, выключающий моторы (Рис. 9). Повторно протестировав алгоритм атаки, убедимся, что после того, как робот-сумоист вытолкал соперника за пределы ринга, он вернулся немного назад. Рис.9
  • 22. Вот теперь можно завершить разработку программы для робота-сумоиста. Внутрь бесконечного цикла последовательно вложим программу поиска соперника, а затем программу атаки соперника. Попробуйте выполнить эту работу самостоятельно, не подглядывая в решение.
  • 23. 1. Поискать необычные способы управления роботом (не только LEGO). 2. Результат поиска оформить в виде презентации. 3. Презентацию прикрепить в MyStat и защитить на следующем занятии.