початок
Логічні операції здійснюються лише над логічними значеннями (даними), результатом логічної операції також є логічне значення. Логічне значення може перебувати в одному з двох станів: "Істина" або "Брехня" . Логічні операції дуже часто записуються в табличній формі у вигляді: "вхідний параметр 1" - "вхідний параметр 2" = "результат" . Логічні операції, реалізовані програмним блоком "Логічні операції" "Червоної палітри" в табличній формі можна записати в такий спосіб: Логічна операція "І (AND)" Результатом логічної операції "І (AND)" буде значення "Істина" тільки, якщо обидва вхідних значення рівні "Істина" , у всіх інших випадках значення операції одно "Брехня" .
Логічна операція "АБО (OR)" Результатом логічної операції "АБО (OR)" буде значення "Брехня" тільки, якщо обидва вхідних значення рівні "Брехня" , у всіх інших випадках значення операції одно "Істина" .
Логічна операція "Що виключає АБО" Результатом логічної операції "виключає Або" буде значення "Істина" тільки, якщо одне з вхідних значень одно "Істина" , у всіх інших випадках значення операції одно "Брехня" .
Логічна операція "Виключення (NOT)" Логічна операція "Виключення (NOT)" застосовується тільки до одного вхідного значенням. Результатом логічної операції "Виключення (NOT)" над вхідним значенням є протилежне значення.
Мал. 12 Давайте протестуємо вийшов алгоритм атаки! Для цього помістимо нашого робота всередину рингу, навпаки встановимо нерухомого суперника і запустимо програму атаки на виконання. Наш робот повинен впевнено виштовхати суперника за межі рингу і зупинитися над чорною кордоном поля. Вийшло? Значить наш сумоїст вірно контролює кордон рингу. Проведемо другий експеримент: знову встановимо навпаки робота нерухомого суперника і запустимо програму атаки. Коли наш робот кинеться до суперника і наблизиться досить близько, різко приберемо суперника в бік. Наш робот повинен, втративши суперника, зупинитися. Підіб'ємо підсумок: ми реалізували алгоритм пошуку суперника і успішно його протестували, також пройшов перевірку алгоритм атаки. Закінчена програма сумоїста повинна в нескінченному циклі виконувати послідовно пошук суперника, а потім - атаку суперника. Можна було б уже об'єднати обидві частини нашої програми, якщо б не одне маленьке доповнення. Якщо наш робот зупинився над кордоном рингу, то перед тим, як почати пошук, роботу слід, від'їхавши трохи назад, повернутися всередину рингу. Доповнимо нашу програму атаки наступним кодом: за межами циклу атаки, скористаємося програмним блоком " Перемикач" "Помаранчевої палітри" . Режим роботи блоку "Перемикач" встановимо в "Датчик кольору - Порівняння - Яскравість відбитого світла". Параметри "Тип порівняння" і "Поріг"встановимо аналогічно раніше використовуваним в програмному блоці"Датчик кольору" "Жовтої палітри" . Отже, якщо наш робот зупинився над чорною лінією, то виконання буде передано верхньому контейнеру програмного блоку "Перемикач" . Саме в верхній контейнер помістимо програмний блок "Рульове управління" "Зеленої палітри" , з настройками параметрів, що змушують робота від'їхати назад на один оборот моторів. У нижній контейнер програмного блоку "Перемикач" помістимо програмний блок, що виключає мотори (Рис. 13) . Повторно протестувавши алгоритм атаки, переконаємося, що після того, як робот-сумоїст виштовхав суперника за межі рингу, він повернувся трохи назад. Мал. 13 Ось тепер можна завершити розробку програми для робота-сумоїста. Всередину нескінченного циклу послідовно вкладемо програму пошуку суперника, а потім програму атаки суперника. Спробуйте виконати цю роботу самостійно, не підглядаючи в рішення.
висновок:Програма, яку ми розібрали з вами на цьому уроці, реалізує тільки один прямий силовий алгоритм поведінки робота-сумоїста. Вона має на увазі, що в прямому силовому протистоянні робот повинен неодмінно здолати свого суперника. Але наш навчальний робот, звичайно ж, зовсім не схожий на м'язистого борця-сумо. Для того, щоб впевнено виступити в цьому змаганні, необхідно приділити найпильнішу увагу в першу чергу конструкції робота, створити міцну, захищену платформу, за допомогою додаткових ведучих коліс або гусениць підвищити зчеплення з поверхнею рингу. На популярному відеохостингу Youtube.com за запитом "сумо lego роботів"можна знайти безліч відеороликів з реальних змагань роботів, з яких ви неодмінно почерпнете для себе цікаві ідеї для реалізації у власних конструкціях. Головна ж мета цього уроку - на практичному прикладі показати вам метод безперервної обробки показань від пари датчиків. Чи можна вдосконалити нашу програму? Безумовно! Наприклад, використовуючи програмний блок "Випадкове значення" "Червоної палітри" , змінити алгоритм пошуку суперника таким чином, щоб задавати випадкове обертання робота вліво або вправо, тим самим, дезорієнтувати суперника. Спробуйте самостійно вмонтувати в нашу програму цей додатковий код. Подумайте так само над тим, які зміни потрібно внести в прорамми, в разі проведення змагання на чорному рингу з білою кордоном. Можливо, що у вас з'являться власні ідеї поліпшення: поділіться ними в коментарях до уроку! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Переглядів: 836 | | |
Всього коментарів: 0 | |