Інфрачервоний датчик входить домашню версію набору Lego mindstorms EV3. Це єдиний датчик, який може застосовуватися як самостійно, так і в парі з інфрачервоним маяком, теж є частиною домашнього набору. Наступні два уроки ми присвятимо вивчення цих двох пристроїв, а також їх взаємодії між собою.
8.1. Вивчаємо інфрачервоний датчик і інфрачервоний маяк
8.2. Інфрачервоний датчик. Режим "Наближення"
Цей режим роботи інфрачервоного датчика схожий на режим визначення відстані ультразвуковим датчиком. Різниця криється в природі світлових хвиль: якщо звукові хвилі відбиваються від більшості матеріалів практично без загасання, то на відображення світлових хвиль впливають не тільки матеріали, але і колір поверхні. Темні кольори на відміну від світлих сильніше поглинають світловий потік, що впливає на роботу інфрачервоного датчика. Діапазон роботи інфрачервоного датчика також відрізняється від ультразвукового - датчик показує значення в межах від 0 (предмет знаходиться дуже близько) до 100 (предмет знаходиться далеко або невиявлений). Ще раз підкреслимо: інфрачервоний датчик не можна використовувати для визначення точного відстані до об'єкта, так як на його показання в режимі "Наближення" впливає колір поверхні досліджуваного предмета. У свою чергу це властивість можна використовувати для відмінності світлих і темних об'єктів, що знаходяться на рівній відстані до робота. Із завданням ж визначення перешкоди перед собою інфрачервоний датчик справляється цілком успішно.
Вирішимо практичну задачу, схожу на Задачу №14 Уроку №7. але, щоб не повторюватися, усложним умова додатковими вимогами.
Завдання №17: написати програму прямолінійно рухається робота, зупиняється перед стіною або перешкодою, що від'їжджав трохи назад, повертає на 90 градусів і продовжує рух до наступного перешкоди.
У робота, зібраного за інструкцією small-robot-31313. попереду по ходу руху встановлено інфрачервоний датчик. З'єднаємо його кабелем з портом "3" модуля EV3 і приступимо до створення програми.
Розглянемо програмний блок "Очікування" Помаранчевої палітри, переключивши його в Режим: "Інфрачервоний датчик" - "Порівняння" - "Наближення" (Рис. 3). В цьому режимі програмний блок "Очікування" має два вхідних параметра: "Тип порівняння" і "Поріг". Налаштовувати ці параметри ми вже вміємо.
- Почати прямолінійний рух вперед
- Чекати, поки граничне значення інфрачервоного датчика стане менше 20
- Припинити рух вперед
- Від'їхати назад на 1 оборот двигунів
- Повернути вправо на 90 градусів (скориставшись знаннями Уроку №3, розрахуйте необхідний кут повороту моторів)
- Продовжити виконання пунктів 1 - 5 в нескінченному циклі.
Спробуйте вирішити Задачу № 17 самостійно, не підглядаючи в рішення.
Рішення Завдання №17
8.3. Дистанційне керування роботом за допомогою інфрачервоного маяка
Інфрачервоний маяк, що входить в домашню версію конструктора Lego mindstorms EV3, в парі з інфрачервоним датчиком дозволяє реалізувати дистанційне керування роботом. Познайомимося з маяком ближче:
- Користуючись інфрачервоним маяком, направляйте передавач сигналу (Рис. 5 поз. 1) в сторону робота. Між маяком і роботом повинні бути відсутніми будь-які перешкоди! Завдяки широкому куту огляду інфрачервоний датчик впевнене приймає сигнали, навіть якщо маяк розташовується позаду робота!
- На корпусі маяка розташовані 5 сірих кнопок (Рис. 5 поз. 2). натискання яких розпізнає інфрачервоний датчик, і передає коди натискань в програму, що управляє роботом.
- За допомогою спеціального червоного перемикача (Рис. 5 поз. 3) можна вибрати один з чотирьох каналів для зв'язку маяка і датчика. Зроблено це для того, щоб в безпосередній близькості можна було керувати кількома роботами.
Завдання №18: написати програму дистанційного керування роботом за допомогою інфрачервоного маяка.
Ми вже знаємо, що для реалізації можливості вибору виконуються блоків необхідно скористатися програмним блоком "Перемикач" Помаранчевої палітри. Встановимо режим роботи блоку "Перемикач" в "Інфрачервоний датчик" - "Вимірювання" - "Віддалений" (Рис. 6).
Для активації зв'язку між інфрачервоним датчиком і маяком необхідно встановити правильне значення параметра "Канал" (Рис. 7 поз. 1) відповідно до обраного каналом на маяку! Кожному програмного контейнеру блоку "Перемикач" необхідно зіставити один з можливих варіантів натискання сірих клавіш (Рис. 7 поз. 2). Зауважте: деякі варіанти включають одночасне натискання двох клавіш (натиснуті клавіші позначені червоним кольором). Всього в програмному блоці "Перемикач" в цьому режимі можна обробляти до 12 розрізняються умов (одна з умов має бути вибрано умовою за замовчуванням). Додаються програмні контейнери в блок "Перемикач" натисканням на "+" (Рис. 7 поз.3).
Пропонуємо реалізувати наступний алгоритм управління роботом:
- Натискання верхньої лівої кнопки включає обертання лівого двигуна, робот повертає вправо (Рис. 7 поз. 2 значення: 1)
- Натискання верхньої правої кнопки включає обертання правого мотора, робот повертає вліво (Рис. 7 поз. 2 значення: 3)
- Одночасне натискання верхніх лівої і правої кнопок включає одночасне обертання вперед лівого і правого мотора, робот рухається вперед прямолінійно (Рис. 7 поз. 2 значення: 5)
- Одночасне натискання нижніх лівої і правої кнопок включає одночасне обертання назад лівого і правого мотора, робот рухається назад прямолінійно (Рис. 7 поз. 2 значення: 8)
- Якщо не натиснути жодної клавіші маяка - робот зупиняється (Рис. 7 поз. 2 значення: 0).
При розробці алгоритму дистанційного керування ви повинні знати наступне: коли натиснута одна з комбінацій сірих кнопок - інфрачервоний маяк безперервно посилає відповідний сигнал, якщо кнопки відпущені, то відправка сигналу припиняється. Виняток становить окрема горизонтальна сіра кнопка (Рис. 7 поз 2 значення: 9). Ця кнопка має два стани: "ВКЛ" - "OFF". У включеному стані маяк продовжує посилати сигнал, навіть якщо ви відпустіть кнопку (про що сигналізує загоряється зелений світлодіод), щоб вимкнути відправку сигналу в цьому режимі - натисніть горизонтальну сіру кнопку ще раз.
Приступимо до реалізації програми:
Наш алгоритм дистанційного керування передбачає 5 варіантів поведінки, відповідно наш програмний блок "Перемикач" буде складатися з п'яти програмних контейнерів. Займемося їх налаштуванням.
- Варіантом за замовчуванням призначимо варіант, коли не було натиснуто жодної кнопки (Рис. 7 поз. 2 значення: 0). Встановимо в контейнер програмний блок "Незалежне керування моторами". вимикає мотори "B" і "C".
- У контейнер варіанти натискання верхньої лівої кнопки (Рис. 7 поз. 2 значення: 1) встановимо програмний блок "Великий мотор". що включає мотор "B".
- У контейнер варіанти натискання верхній правій кнопки (Рис. 7 поз. 2 значення: 3) встановимо програмний блок "Великий мотор". що включає мотор "C".
- У контейнер варіанту одночасного натискання верхніх лівої і правої кнопок (Рис. 7 поз. 2 значення: 5) встановимо програмний блок "Незалежне керування моторами". що включає обертання моторів "B" і "C" вперед.
- У контейнер варіанту одночасного натискання нижніх лівої і правої кнопок (Рис. 7 поз. 2 значення: 8) встановимо програмний блок "Незалежне керування моторами". що включає обертання моторів "B" і "C" назад.
- Помістимо наш налаштований програмний блок "Перемикач" всередину програмного блоку "Цикл".
За запропонованою схемою спробуйте створити програму самостійно, не підглядаючи в рішення!
Рішення Завдання №18
Велике спасибі! Завдяки вашим чудовим уроків, все виходить! Пробуємо всі завдання, і, в підсумку, 17ю завдання дитина зробив сам без єдиної помилки! І найголовніше, зробив чітко розуміючи всі дії!