Вступ:
Наш черговий урок ми присвятимо останньому режиму спільної роботи інфрачервоного датчика і інфрачервоного маяка - режиму "Маяк" . В цьому режимі інфрачервоний датчик здатний виявляти випромінювання інфрачервоного маяка, а також визначати зразковий напрям і відстань до нього.
9.1. Інфрачервоний датчик. Режим "Маяк"
Для того, щоб використовувати інфрачервоний маяк в цьому режимі, слід, натиснувши окрему горизонтальну сіру кнопку, перевести маяк в режим безперервного випромінювання сигналу (Рис. 1 поз. 1). При цьому на інфрачервоному маяку загориться зелений індикатор.
Мал. 1
Давайте розглянемо програмний блок "Інфрачервоний датчик" Жовтої палітри в режимі "Вимірювання"- "Маяк" . (Рис. 2) В цьому режимі програмний блок має один вхідний параметр, що визначає номер каналу роботи інфрачервоного маяка (Рис. 2 поз.1) , а також три вихідних параметра: "Напрямок" (Рис. 2 поз.2) , "Наближення "(Рис. 2 поз.3) і " Виявлено "(Рис. 2 поз.4) .
Мал. 2
- Параметр "Виявлено" видає логічне значення "Так" - якщо інфрачервоний маяк виявлений датчиком, і "Ні" - в іншому випадку.
- Параметр "Наближення" видає числове значення в діапазоні від 0 до 100 . Значення, рівне 0 , означає, що інфрачервоний маяк знаходиться дуже близько. Значення, менші 100 , сигналізують про те, що інфрачервоний маяк упевнено виявляється датчиком і знаходиться у відносній віддаленості від робота. Значення, рівне 100 говорить нам про те, що інфрачервоний маяк знаходиться дуже далеко або невиявлений датчиком.
- Параметр "Напрямок" видає числове значення в діапазоні від - 25 до 25 . Значення, рівне 0 , означає, що інфрачервоний маяк знаходиться строго напроти інфрачервоного датчика. Негативні значення свідчать про відхилення інфрачервоного датчика в ліву сторону від напрямку датчика (проти годинникової стрілки), а позитивні - в праву сторону від напрямку датчика (за годинниковою стрілкою) (Рис. 3)
Мал. 3
Спробуємо застосувати отримані знання на практиці і створити програму для робота, що дозволяє йому знаходити інфрачервоний маяк і слідувати за ним.
9.2. Пошук інфрачервоного маяка
На першому етапі приступимо до створення програми пошуку роботом інфрачервоного маяка.
Завдання № 19: написати програму для робота, що обертається навколо своєї осі і зупиняється в напрямку інфрачервоного датчика.
Рішення:
- Використовуючи програмний блок "Незалежне керування моторами" , почати обертання робота навколо своєї осі проти годинникової стрілки (Рис. 4 поз. 1) .
- Використовуючи програмний блок "Очікування" в режимі "Інфрачервоний датчик" - "Порівняння" - "Наближення маяка" (Рис. 4 поз. 2) з граничним значенням рівним 80 (Рис. 4 поз. 3) , очікуємо, поки робот не виявить інфрачервоний маяк (значення параметра "Наближення" стане менше 100 ).
- Так як наш робот обертається проти годинникової стрілки, то, коли інфрачервоний датчик виявить маяк, його параметр "Напрямок" прийме негативне значення. Тому, наступний програмний блок "Очікування" в режимі "Інфрачервоний датчик" - "Порівняння" - "Напрямок маяка" (Рис. 4 поз. 4) дасть можливість роботу обертатися до тих пір, поки робот не виявиться навпаки інфрачервоного маяка (значення параметра " граничне значення " перевищить 0 (Рис. 4 поз. 5) ).
- Так як наш робот, обертаючись з великою швидкістю, може повернути трохи більше в результаті сил інерції, то, на малій швидкості, використовуючи наступні два програмних блоку, повернемо робота за годинниковою стрілкою (Рис. 4 поз. 6, 7) .
- Вимкнемо мотори робота (Рис. 4 поз. 8) .
Завантажте програму на робота, поверніть робота спиною до інфрачервоного маяка, включите маяк і запустіть програму на виконання. Наш робот повинен зупинитися навпроти маяка. Вийшло? Для того щоб краще зрозуміти принцип роботи нашої програми, спробуйте, змінивши напрямок початкового обертання робота (за годинниковою стрілкою), відредагувати необхідні програмні блоки і добитися правильної її роботи.
Мал. 4
9.3. Проходження за інфрачервоним маяком
Завдання №20: написати програму пошуковими системами за інфрачервоним маяком.
Рішення:
Наш робот навчився впевнено визначати напрямок інфрачервоного маяка і повертати в його сторону. Залишилося тільки доїхати до нього і зупинитися навпроти. Вирішити це завдання можна різними способами. Пропоную вам скористатися можливостями, наданими програмним блоком "Інфрачервоний датчик" Жовтої палітри, який ми розглянули в першій частині сьогоднішнього уроку. Як поведе себе наш робот, якщо в нескінченному циклі ми подамо значення параметра "Наближення" (Рис. 5 поз. 1)програмного блоку "інфрачервоного датчика" на вхід параметра "Потужність" (Рис. 5 поз. 2)програмного блоку "Рульове управління " Зеленої палітри?
Помістимо включений маяк безпосередньо перед роботом. Завантажимо вийшла програму (Рис. 5) в робота і запустимо її на виконання. Наближаючись до маяка, наш робот буде поступово сповільнюватися. Під'їхавши впритул до маяка, робот зупиниться. Якщо відсунути маяк, то робот знову кинеться в його сторону.
Мал. 5
На жаль, поки наш робот не вміє змінювати напрямок руху. Якщо інфрачервоний маяк перемістити вліво - вправо від напрямку руху робота, то, наш робот проїде повз. Давайте навчимо рухається робота повертати в бік маяка. Для цього візьмемо параметр "Напрямок" (Рис. 6 поз. 1) програмного блоку "Інфрачервоний датчик" , помножимо його на 2 (Рис. 6 поз. 2) і подамо на вхід параметра "Рульове управління" (Рис. 6 поз. 3 ) програмного блоку "Рульове управління" . Для чого нам потрібно множення? Діапазон значень параметра "Напрямок" від -25 до 25. Отримуючи значення з цього діапазону, робот буде повертати на недостатній кут - множення ж розширює діапазон значень від -50 до 50, що дозволить роботу впевнено слідувати за переміщеннями маяка.
Знову помістимо включений інфрачервоний маяк навпаки робота. Завантажимо виправлену програму (Рис. 6) в робота і запустимо її на виконання. Як тільки робот кинеться в бік інфрачервоного маяка, почнемо переміщати маяк вліво або вправо від напрямку руху робота. Наш робот буде впевнене повертати в бік маяка!
Мал. 6
Тепер наша програма відмінно справляється із завданням проходження за інфрачервоним маяком. Але, якщо вимкнути маяк, то робот починає поводитися непередбачувано. Адже ми ніяк не враховуємо показання параметра "Виявлено" (Рис. 7 поз. 1) програмного блоку "Інфрачервоний датчик" . Якщо робот втрачає маяк, то значення параметра "Виявлено" стає рівним "Ні" . Подамо значення параметра "Виявлено" на вхід програмного блоку "Перемикач" , встановленого в режим "Логічне значення" . У контейнер логічного значення "Ні" встановимо програмний блок "(Рис. 7 поз. 2) . Параметр "Ім'я переривання" програмного блоку "Переривання циклу" повинна відповідати імені циклу!
Мал. 7
Протестуємо вийшла програму (Рис. 7) - варто вимкнути інфрачервоний маяк, як програмний блок "Переривання циклу" фактично зупинить виконання нашої програми!
9.4. Пошук і слідування за інфрачервоним маяком
Завдання №21 : написати програму пошуку і проходження за інфрачервоним маяком.
Рішення:
Настав час об'єднати знання, отримані в розділі 9.2. Пошук інфрачервоного маяка і 9.3. Проходження за інфрачервоним маяком . Всередину нескінченного циклу спочатку помістимо програму пошуку маяка (Рис. 4) , а потім - програму проходження за маяком (Рис. 7) . Отриману програму (Рис. 8) завантажимо в робота і запустимо на виконання. Спочатку наш робот буде обертатися на місці, поки не повернеться в бік інфрачервоного маяка, а потім кинеться в його сторону. Якщо маяк вимкнути, то робот зупиниться і знову почне обертатися на місці, поки не виявить інфрачервоний маяк.
Завдання вирішена!
Мал. 8