7.1. Вивчаємо ультразвуковий датчик
Головне призначення ультразвукового датчика, це визначення відстані до предметів, що знаходяться перед ним. Для цього датчик посилає звукову хвилю високої частоти (ультразвук), ловить зворотну хвилю, відображену від об'єкта і, заміривши час на повернення ультразвукового імпульсу, з високою точністю розраховує відстань до предмета.
Ультразвуковий датчик може видавати вимірювання відстаней в сантиметрах або в дюймах. Діапазон вимірювань датчика в сантиметрах дорівнює від 0 до 255 см, в дюймах - від 0 до 100 дюймів. Датчик не може виявляти предмети на відстані менше 3 см (1,5 дюймів). Так само він не досить стійко вимірює відстань до м'яких, тканинних і малооб'ємних об'єктів. Крім режимів вимірювання відстані в сантиметрах і дюймах датчик має спеціальний режим "Присутність / слухати". В цьому режимі датчик не випромінює ультразвукові імпульси, але здатний виявляти імпульси іншого ультразвукового датчика.
У нашого робота, зібраного за інструкцією small-robot-45544. ультразвуковий датчик вже закріплений попереду по ходу руху. Підключимо його кабелем до порту "3" модуля EV3 і приступимо до розбору практичних прикладів використання ультразвукового датчика.
Завдання №14: написати програму, що зупиняє прямолінійно рухається робота, на відстані 15 см до стіни або перешкоди.
Для вирішення завдання скористаємося вже знайомим нам програмним блоком "Очікування" Помаранчевої палітри, переключивши його в Режим: "Ультразвуковий датчик" - "Порівняння" - "Відстань в сантиметрах" (Рис. 2). Саме рішення буде схоже на рішення Завдання №7.
- Почати прямолінійний рух вперед (Рис. 3 поз. 1)
- Чекати, поки значення ультразвукового датчика не стане менше 15 см. (Рис. 3 поз. 2)
- Припинити рух вперед (Рис. 3 поз. 3)
Завдання №15: написати програму для робота, який тримає дистанцію в 15 см від перешкоди.
Поведінка робота буде наступним:
- при значенні показання ультразвукового датчика більше 15 см робот буде рухатися вперед, намагаючись наблизитися до перешкоди;
- при значенні показання ультразвукового датчика менше 15 см робот буде рухатися назад, намагаючись піти від перешкоди.
Ми вже знаємо, що за організацію вибору виконуваних блоків в залежності від умови відповідає програмний блок "Перемикач" Помаранчевої палітри. Встановимо для блоку "Перемикач" режим "Ультразвуковий датчик" - "Порівняння" - "Відстань в сантиметрах" (Рис. 4 поз.1). Параметр "Тип порівняння" блоку "Перемикач" встановимо в значення "Більше" = 2, а "Поріг" визначимо рівним 15 (Рис. 4 поз. 2). Такі настройки програмного блоку "Перемикач" приведуть до наступного поведінки програми: При показаннях ультразвукового датчика більше 15 см будуть виконуватися програмні блоки, поміщені в верхній контейнер (Рис. 4 поз. 3). в іншому випадку будуть виконуватися програмні блоки, поміщені в нижній контейнер (Рис. 4 поз. 4).
Помістимо в ці контейнери програмні блоки, які включають рух вперед і назад. Для того щоб програмний блок "Перемикач" виконувався багаторазово, помістимо його всередину програмного блоку "Цикл" Помаранчевої палітри (Рис. 5).
7.2. Робот-поліцейський
Принцип роботи ультразвукового датчика дуже схожий на радар, який застосовується для вимірювання швидкості рухомих автомобілів. Як радар дізнається швидкість автомобіля? Він вимірює відстань до об'єкта, що рухається, чекає заданий невеликий час і повторює вимір. Різниця відстаней - це пройдений шлях автомобіля. Розділивши пройдений шлях на час між двома вимірами, можна знайти швидкість, з якою рухався об'єкт вимірювання.
Давайте ж навчимо і нашого робота роботі радара!
Послідовність дій, виконуваних роботом, буде такою:
- Робот чекає появи в зоні контролю за рухомим об'єктом;
- вимірює відстань до об'єкта;
- чекає 1 секунду;
- повторно вимірює відстань до об'єкта;
- знаходить пройдену відстань і порівнює його з граничним значенням;
- виводить на екран результат і подає тривогу в разі перевищення швидкості.
Почнемо створювати програму для нашого робота-поліцейського.
7.3. Ультразвуковий датчик - режим "Присутність / слухати"
Як вже зазначалося вище, в цьому режимі ультразвуковий датчик здатний виявляти випромінювання іншого ультразвукового датчика. Результатом виявлення є логічне значення: "Так". якщо знайдено ультразвукове випромінювання, або "Ні". якщо нічого не знайдено. Даний режим можна використовувати, наприклад, в змаганнях роботів-шпигунів (опис режиму вже говорить про те, що для його використання необхідно мінімум два робота).
Завдання № 16: необхідно написати програму, яка виявляє іншого робота, з працюючим ультразвуковим датчиком.
Спробуйте написати програму самостійно, не підглядаючи в рішення!
Рішення Завдання №16
Використовуючи знання, отримані раніше, спробуйте самостійно розібрати варіант вирішення Завдання №16. Запропонуйте свій варіант вирішення.