Починаємо вивчати датчик кольору lego mindstorms ev3

На цьому уроці ми продовжуємо знайомство з датчиками набору Lego mindstorms EV3. На черзі - датчик кольору, дуже важливий і корисний датчик! У більшості конструкцій він є, тим, чим у людини є очі. Тому вивчення датчика кольору ми присвятимо два послідовних уроку, але в подальшому курсі ще повернемося до його вивчення та використання.

5.1. Вивчаємо другий датчик - датчик кольору

Датчик кольору може працювати в трьох різних режимах:

  • в режимі "Колір" датчик може визначити колір піднесеного до нього предмета;
  • в режимі "Яскравість відбитого світла" датчик направляє світловий промінь на сусідній предмет і по відбитому пучку визначає яскравість предмета;
  • в режимі "Яскравість зовнішнього освітлення" датчик може визначити - наскільки яскраво освітлене простір навколо.

Починаємо вивчати датчик кольору lego mindstorms ev3

5.2. Датчик кольору. Режим "Колір"

У режимі "Колір" датчик кольору досить точно вміє визначати сім базових квітів предметів, що знаходяться від нього на відстані приблизно в 1 см. Це такі кольори: "чорний" = 1, "синій" = 2, "зелений" = 3, "жовтий "= 4," червоний "= 5," білий "= 6 і" коричневий "= 7. Якщо предмет віддалений від датчика або некоректно визначається колір предмета - датчик інформує про це станом "Без кольору" = 0.

Давайте, не затягуючи, перейдемо до практичного заняття!

Завдання №9: необхідно написати програму, яка називає кольору предметів, подносімих до датчика кольору.

Якщо ви збирали свого тренувального робота за інструкцією цього курсу, то у вас датчик кольору вже розміщений всередині робота і спрямований вниз. Буде потрібно докласти певних зусиль, може бути навіть злегка розібрати-зібрати нашу конструкцію, щоб підключити кабелем датчик кольору, наприклад до порту "2" модуля EV3. Для налагодження програми нам також знадобиться кілька кольорових предметів: це можуть бути цеглинки конструктора Lego, смужки кольорового паперу або кольорові кубики. Для кращого результату слід взяти кольору, максимально наближені до основних, але датчик досить непогано справляється з розпізнаванням відповідних відтінків. Щоб не знімати датчик кольору і не кріпити його в іншому місці, під час виконання програми можна тримати робота перевернутим догори колесами.

Починаємо вивчати датчик кольору lego mindstorms ev3

5.3. Помаранчева палітра, програмний блок "Перемикач"

У рішенні Завдання №9 нам допоможе програмний блок "Перемикач" Помаранчевої палітри. Цей блок в залежності від налаштувань вибирає для виконання програмні блоки, розташовані в одному зі своїх контейнерів. Розглянемо налаштування цього блоку в режимі роботи з датчиком кольору.

Створимо нову програму "lesson-5-9". встановимо в програмі блок "Перемикач". виберемо режим "Датчик кольору" - "Вимірювання" - "Колір" (Рис. 3). На відміну від програмного блоку "Очікування". програмний блок "Перемикач" не чекає, поки настане певна подія, а перевіряє поточний стан і виконує програмні блоки, що знаходяться в контейнері, зіставлення поточному стану.

Починаємо вивчати датчик кольору lego mindstorms ev3

Розглянемо докладніше настройки програмного блоку "Перемикач":

  • обраний режим встановлює зображення датчика кольору в блоці (Рис. 4 поз. 1),
  • порт, до якого підключений датчик, відображається у відповідному полі блоку (Рис. 4 поз. 2),
  • в настройках кожного програмного контейнера вибирається значення, відповідно до якого будуть виконуватися програмні блоки, вкладені в цей контейнер (Рис. 4 поз. 3),
  • один з контейнерів повинен бути оголошеним "Варіантом за замовчуванням" - в разі, якщо значенням, отриманим від датчика, не відповідає жоден контейнер, то виконується контейнер, оголошений "Варіантом за замовчуванням" (Рис.4 поз. 4),
  • Кнопка "+" додає програмний контейнер в блоці "Перемикач" (Рис. 4 поз. 5),
  • Програмний блок "Перемикач" може автоматично розтягуватися, щоб вмістити все блоки, що поміщаються всередину. За допомогою міток, позначених червоними стрілками, можна самому змінювати розміри блоку (Рис.4).

Починаємо вивчати датчик кольору lego mindstorms ev3

Продовжимо формування програмного блоку "Перемикач":

  • створимо необхідну кількість контейнерів, що відповідає кількості квітів для розпізнавання + варіант "Без кольору",
  • в настройках контейнерів встановимо розпізнаються кольору,
  • варіантом за умовчанням виберемо варіант "Без кольору",
  • в кожен контейнер крім варіанту "Без кольору" (цей контейнер залишиться порожнім) помістимо програмний блок "Звук" зеленої палітри.
  • кожному кольору можна порівняти відповідний звуковий файл.

Починаємо вивчати датчик кольору lego mindstorms ev3

Наш програмний блок "Перемикач" значно збільшився в розмірах. Спеціальна кнопка (Рис. 6 поз. 1) дозволяє переключити режим відображення блоку на екрані на "Вид з вкладками". Змінимо розміри блоку для комфортного візуального відображення.

Починаємо вивчати датчик кольору lego mindstorms ev3

Залишилося вставити наш налаштований програмний блок "Перемикач" всередину програмного блоку "Цикл" Помаранчевої палітри. Програма готова! Завантажимо її в робота і протестуємо роботу! (Рис. 7)

Починаємо вивчати датчик кольору lego mindstorms ev3

5.4. Помаранчева палітра, програмний блок "Переривання циклу"

Додамо в нашу програму рух. Зробимо наступне поле для виконання завдання:

  • Візьмемо білий аркуш паперу формату A4 або A3;
  • Нанесемо на нього послідовно, на рівній відстані кілька кольорових смуг. Смуги можна наклеїти з кольорового паперу, кольоровий ізоляційної стрічки або намалювати і зафарбувати;
  • можете також завантажити підготовлене зображення і роздрукувати його на кольоровому принтері;
  • Останню смугу зробимо чорного кольору (Рис. 8).

Починаємо вивчати датчик кольору lego mindstorms ev3

Завдання №10: необхідно написати програму прямолінійного руху робота, яка називає кольору смуг, над якими він проїжджає. При досягненні чорної смуги робот промовляє "Stop" і зупиняється.

За основу вирішення даного завдання візьмемо програму, вирішальну Завдання №9. При вирішенні Завдання №10 нам буде потрібно перервати виконання циклу. Цій меті служить програмний блок "Переривання циклу" Помаранчевої палітри. За допомогою даного блоку можна організувати вихід з циклу, заданого параметром "Ім'я переривання" (Рис. 9 поз. 1).

Починаємо вивчати датчик кольору lego mindstorms ev3

Спробуйте вирішити Завдання №10 самостійно, не підглядаючи в рішення.

Рішення Завдання №10

  1. Всередину циклу перед програмним блоком "Перемикач" додамо програмний блок "Рульове управління". тим самим змусимо нашого робота рухатися (Рис. 10 поз. 1). Під час руху робот перевірятиме поточний стан датчика кольору і вимовляти назву кольору. Якщо смужки будуть широкими, а робот буде рухатися повільно, то, можливо, він стане вимовляти назву кольору більш ніж один раз, так як перевірка кольору буде відбуватися неодноразово. Якщо такий стан справ вас не влаштує - збільште швидкість робота, щоб він швидше проїжджав кольорові смуги.
  2. У відповідності до розділу завдання нам треба змінити поведінку контейнера програмного блоку "Перемикач" для чорного кольору.
  3. У програмному блоці "Звук" змінимо звуковий файл "Black" на "Stop" (Рис. 10 поз. 2).
  4. Додамо в контейнер програмний блок, що виключає мотори (Рис. 10 поз. 3).
  5. Нам потрібно перервати виконання програмного блоку "Цикл". щоб завершити виконання програми. Для цього помістимо в контейнер програмний блок "Превиваніе циклу" Помаранчевої палітри (Рис. 10 поз. 4). У даного програмного блоку існує тільки одна настройка - назва переривається циклу. У складній програмі з безліччю циклів важливо правильно встановлювати цей параметр, щоб зупинити виконання потрібного циклу (Рис. 10 поз. 5). У нашій програмі за програмним блоком "Цикл" відсутні інші програмні блоки, тому програма завершиться.