Урок №5 - Починаємо вивчати датчик кольору

Вступ:

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

 

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

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

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

датчик кольору

Мал. 1

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

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

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

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

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

Датчик кольору, на роботі

Мал. 2

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

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

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

Програмний блок "Перемикач"

Мал. 3

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

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

Налаштування програмного блоку "Перемикач"

Мал. 4

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

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

Формування програмного блоку "Перемикач"

Мал. 5

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

Блок "Перемикач" Вид з вкладками (натисніть для збільшення)

Мал. 6

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

Рішення завдання 9 (натисніть для збільшення)

Мал. 7

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

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

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

Підготовлене поле для Завдання №10

Мал. 8

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

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

Програмний блок "Переривання циклу"

Мал. 9

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

 

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

 

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

Рішення завдання №10 (натисніть для збільшення)

Мал. 10

Категорія: Уроки з LEGO | Додав: admin (05.07.2018)
Переглядів: 1061 | Теги: Lego mindstorms EV3 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]