Починаємо вивчати датчик кольору lego mindstorms ev3
На цьому уроці ми продовжуємо знайомство з датчиками набору Lego mindstorms EV3. На черзі - датчик кольору, дуже важливий і корисний датчик! У більшості конструкцій він є, тим, чим у людини є очі. Тому вивчення датчика кольору ми присвятимо два послідовних уроку, але в подальшому курсі ще повернемося до його вивчення та використання.
5.1. Вивчаємо другий датчик - датчик кольору
Датчик кольору може працювати в трьох різних режимах:
- в режимі "Колір" датчик може визначити колір піднесеного до нього предмета;
- в режимі "Яскравість відбитого світла" датчик направляє світловий промінь на сусідній предмет і по відбитому пучку визначає яскравість предмета;
- в режимі "Яскравість зовнішнього освітлення" датчик може визначити - наскільки яскраво освітлене простір навколо.

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

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

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

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

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

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

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

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

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