На цьому уроці ми продовжуємо знайомство із датчиками набору 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 поз. 1). Під час руху робот перевірятиме поточний стан датчика кольору та вимовлятиме назву кольору. Якщо смужки будуть широкими, а робот рухатиметься повільно, то, можливо, він вимовлятиме назву кольору більше одного разу, оскільки перевірка кольору відбуватиметься неодноразово. Якщо такий стан справ вас не влаштує – збільште швидкість робота, щоб він швидше проїжджав кольорові смуги.
- Відповідно до умови завдання нам треба змінити поведінку контейнера програмного блоку "Перемикач" для чорного кольору
- У програмному блоці "Звук" змінимо звуковий файл "Black" на "Stop" (Мал. 10 поз. 2).
- Додамо до контейнера програмний блок, що вимикає мотори (Мал. 10 поз. 3).
- Нам потрібно перервати виконання програмного блоку "Цикл", щоб завершити виконання програми. Для цього помістимо в контейнер програмний блок "Перевавання циклу" Помаранчевий палітри (Мал. 10 поз. 4). У даного програмного блоку існує тільки одне налаштування – назва циклу, що переривається. У складній програмі з безліччю циклів важливо правильно встановлювати це налаштування, щоб зупинити виконання потрібного циклу (Мал. 10 поз. 5). У нашій програмі за програмним блоком "Цикл" відсутні інші програмні блоки, тому програма завершиться.
Мал. 10
- Ви тут:
- Головна
- Перші кроки
- Урок №5 – Починаємо вивчати датчик кольору
На цьому уроці ми будемо вивчати використання датчика кольору. Матеріал, викладений нижче, дуже важливий подальшого вивчення курсу робототехніки. Після того, як ми навчимося використовувати всі датчики конструктора Lego mindstorms EV3, при вирішенні безлічі практичних завдань будемо спиратися на знання, отримані на цьому занятті.
6.1. Датчик кольору – режим "Яскравість відбитого світла"
Отже, ми приступаємо до вивчення наступного режиму роботи датчика кольору, який називається "Яскравість відбитого світла". У цьому режимі датчик кольору направляє потік червоного світла на предмет або поверхню, що близько розташований, і вимірює кількість відбитого світла. Темніші предмети поглинатимуть світловий потік, тому датчик буде показувати менше значення, порівняно з більш світлими поверхнями. Діапазон значень датчика вимірюється від 0 (дуже темний) до 100 (Дуже яскравий).Даний режим роботи датчика кольору використовується в багатьох задачах з робототехніки, наприклад, для організації руху робота по заданому маршруту вздовж чорної лінії, нанесеної на біле покриття. При використанні цього режиму рекомендується розташовувати датчик таким чином, щоб відстань від нього до поверхні, що досліджується, становила приблизно 1 см (Рис. 1).
Перейдемо до практичних занять: датчик кольору вже встановлений на нашому роботі і спрямований вниз до поверхні покриття, яким буде пересуватися наш робот. Відстань між датчиком та підлогою відповідає рекомендованому. Датчик кольору вже підключено до порту “2” модуля EV3 Давайте завантажимо середовище програмування, підключимо робота до середовища та для проведення вимірів скористаємось полем з кольоровими смугами, виготовленим нами для виконання завдань Розділу 5.4 Уроку №5. Встановимо робота таким чином, щоб датчик кольору розташувався над білою поверхнею. "Сторінку апаратних засобів" середовища програмування перемкнемо в режим "Перегляд портів" (Рис. 2 поз. 1). У цьому режимі ми можемо спостерігати всі виконані підключення. на Мал. 2 відображено підключення до портів "B" і "C" двох великих моторів, а до порту “2” – Датчика кольору.
Для вибору варіанта відображення показань датчиків необхідно натиснути зображення датчика і вибрати потрібний режим (Мал. 3)
на Мал. 2 поз. 2 ми бачимо, що значення показання датчика кольору над білою поверхнею дорівнює 84. У вашому випадку може вийти інше значення, адже воно залежить від матеріалу поверхні та освітлення всередині приміщення: частина освітлення, відбиваючись від поверхні, потрапляє на датчик і впливає на його показання.Встановивши робота таким чином, щоб датчик кольору розташувався над чорною смугою, зафіксуємо його показання (Мал. 4). Спробуйте виміряти самостійно значення відбитого світла над кольоровими смугами, що залишилися. Які значення ви отримали? Напишіть відповідь у коментарі до цього уроку.
Давайте тепер вирішуємо практичні завдання.
Завдання №11: необхідно написати програму руху робота, який зупиняється при досягненні чорної лінії.
Рішення:
Проведений експеримент показав нам, що при перетині чорної лінії значення датчика кольору в режимі "Яскравість відбитого світла" дорівнює 6. Значить для виконання Завдання №11 наш робот повинен рухатися прямолінійно, поки значення датчика кольору не стане менше 7. Скористаємося вже знайомим нам програмним блоком "Чекання" Помаранчевий палітри. Виберемо потрібний умові завдання режим роботи програмного блоку "Очікування" (Рис. 5).
Необхідно також налаштувати параметри програмного блоку "Чекання". Параметр "Тип порівняння" (Рис. 6 поз. 1) може приймати такі значення: "Рівно"=0, "Не рівно"=1, "Більше"=2, "Більше чи одно"=3, "Менше"=4, "Менше чи одно"=5. У нашому випадку встановимо "Тип порівняння" на значення "Менше". Параметр "Порогове значення" встановимо рівним 7 (Рис.6 поз. 2).
Як тільки встановиться значення датчика кольору менше 7Що станеться, коли датчик кольору виявиться розташованим над чорною лінією, нам необхідно буде вимкнути мотори, зупинивши робота. Завдання вирішено (Мал. 7).
Для продовження занять нам знадобиться виготовити нове поле, що є чорним колом діаметром приблизно 1 метр, нанесене на біле поле. Товщина лінії кола дорівнює 2 – 2,5 см.Для основи поля можна взяти один аркуш паперу розміром A0 (841×1189 мм), склеїти разом два аркуші паперу розміром A1 (594×841 мм). На цьому полі розмітити лінію кола та зафарбувати її чорною тушшю. Можна також завантажити макет поля, виконаний у форматі Adobe Illustrator, а потім замовити його друк на банерній тканині у друкарні. Розмір макету дорівнює 1250×1250 мм. (Переглянути завантажений нижче макет можна, відкривши його у програмі Adobe Acrobat Reader)
Це поле стане нам у нагоді для вирішення декількох класичних завдань курсу робототехніки.
Завдання №12: необхідно написати програму для робота, що пересувається всередині кола, окантованого чорним колом за таким правилом:
- робот рухається вперед прямолінійно;
- досягнувши чорної лінії, робот зупиняється;
- робот від'їжджає назад на два обороти двигунів;
- робот повертає праворуч на 90 градусів;
- рух робота повторюється.
Знання, отримані на попередніх уроках, допоможуть вам самостійно створити програму, яка вирішує завдання №12.
До роботи датчика кольору в режимі "Яскравість відбитого світла" ми ще неодноразово повернемося, коли розглядатимемо алгоритми руху вздовж чорної лінії. А поки що розберемо третій режим роботи датчика кольору.
6.2. Датчик кольору – режим "Яскравість зовнішнього освітлення"
Режим роботи датчика кольору "Яскравість зовнішнього освітлення" дуже схожий на режим "Яскравість відбитого світла"тільки в цьому випадку датчик не випромінює освітлення, а вимірює природне світлове освітлення навколишнього середовища. Візуально даний режим роботи датчика можна визначити по синьому світлодіоду, що слабо світиться. Показники датчика змінюються від 0 (відсутність світла) до 100(Найяскравіший світло).При вирішенні практичних завдань, що вимагають вимірювання зовнішнього освітлення, рекомендується розташовувати датчик так, щоб датчик залишався максимально відкритим і не загороджувався іншими деталями та конструкціями.
Давайте закріпимо датчик кольору на нашому роботі так само, як ми кріпили датчик торкання в Уроці №4 (Мал. 9). Підключимо датчик кольору кабелем до порту “2” модуля EV3 Перейдемо до вирішення практичних завдань.
Завдання №13: необхідно написати програму, яка змінює швидкість руху нашого робота залежно від інтенсивності зовнішнього висвітлення.
Щоб вирішити це завдання, нам треба дізнатися, як отримувати поточне значення датчика. А допоможе нам у цьому Жовта палітра програмних блоків, яка називається "Датчики".
6.3. Жовта палітра – Датчики
Жовта палітра середовища програмування Lego mindstorms EV3 містить програмні блоки, що дозволяють отримувати поточні показання датчиків подальшої обробки програмі. На відміну, наприклад, від програмного блоку "Чекання" Помаранчевої палітри, програмні блоки Жовтої палітри відразу передають управління до наступним програмним блокам.
Кількість програмних блоків Жовтої палітри відрізняється у домашній та освітній версії середовища програмування. У домашній версії середовища програмування відсутні програмні блоки для датчиків, які не входять до домашньої версії конструктора. Але, за потреби, їх можна самостійно підключити.
Жовтий палітри. Домашня версія середовища програмування.
Освітня версія програмування містить програмні блоки для всіх датчиків, які можна використовувати з конструктором Lego mindstorms EV3.
Жовтий палітри. Освітня версія середовища програмування.
Повернемося ж до рішення Завдання №13 і подивимося, як можна отримувати та обробляти показання датчика кольору. Як ми вже знаємо: діапазон значень датчика кольору в режимі "Яскравість зовнішнього освітлення" знаходиться в межах від 0 до 100. Такий самий діапазон у параметра, що регулює потужність моторів. Спробуємо показанням датчика кольору регулювати потужність двигунів у програмному блоці. "Рульове управління".
Рішення:
- Вважати поточне показання датчика кольору в режимі "Яскравість зовнішнього освітлення";
- Подати отримане значення з датчика кольору на вхід параметра "Потужність" програмного блоку "Рульове управління";
- Повторювати команди 1 – 2 у нескінченному циклі.
Мал. 10
Давайте завантажимо програму, що вийшла, в робота і запустимо її на виконання. Робот поїхав повільно? Увімкнемо світлодіодний ліхтарик і спробуємо підносити його до датчика кольору на різній відстані. Що відбувається з роботом? Закриємо датчик кольору долонею – що трапилося в цьому випадку? Напишіть відповіді на ці запитання у коментарі до уроку.
Завантажте в робота і запустіть виконання завдання, зображене нижче. Повторіть експерименти зі світлодіодним ліхтариком. Поділіться враженнями у коментарях до уроку.
Датчик кольору – це різновид фотоелектричного датчика з передавальним і приймаючим пристроєм, що знаходяться всередині корпусу. Передавач представлений триколірним світлодіодом, що випромінює світлові хвилі. Останні вловлюються приймачем (світлочутливим датчиком), який вимірює інтенсивність світла, що потрапляє на нього. Датчик кольору вимірює довжини хвиль, що належать до трьох основних кольорів колірного спектру: червоного, синього та зеленого.На основі комплексного аналізу довжин хвиль отримують справжній колір об'єкта чи світла.
Принцип роботи датчика кольору
- Висвітлює досліджуваний предмет світлом широкого спектру, який включає всі довжини хвиль синього, червоного і зеленого діапазону. Приймач ловить відбите від предмета світло і визначає довжину його хвилі.
- Висвітлює досліджуваний предмет хвилями синього, червоного та зеленого спектру, після чого встановлює співвідношення між довжинами світлових хвиль, відбитих цим предметом, та довжинами хвиль, прийнятих приймачем.
Коли фотони бомбардують металеву поверхню, вільні електрони збуджуються і починають хаотичний рух, створюючи умови виникнення електричного струму. Кількість вільних електронів залежить від енергії фотона, інакше кажучи, від довжини хвилі падаючого світла. Електрони відриваються від металевої поверхні, коли довжина світлової хвилі менша від її порогового значення. Під порогової довжиною хвилі (пороговою частотою) розуміється частота фотона з енергією, достатньої вивільнення електрона.
Предмет червоного кольору відбиває хвилю червоного світла, якщо його потрапляє світло з великої довжиною хвилі (620-760 нм). Білий предмет відображає всі світлові хвилі видимого діапазону (380-760 нм). Об'єкт чорного кольору не відображає нічого: чорний колір не має довжини хвилі, його просто не існує в природі. Під чорним кольором мається на увазі відсутність видимого світла.
Для перетворення енергії світла на потік електронів служать фотодіоди. Вони особливо чутливі до короткохвильового випромінювання, тому виявляють світло в інфрачервоному спектрі точніше, ніж у видимому або ультрафіолетовому спектрі.Фотодіод працює за таким самим принципом, як і діод з РN переходом. Відмінність полягає в тому, що у фотодіода замість корпусу, що не пропускає світло, використовується прозора лінза, що концентрує пучок світла на РN-переході. У фотодіодах використовуються компоненти з кремнію та германію.
У деяких датчиках світла використовуються фоторезистори (LDR). Ці пристрої мають здатність змінювати внутрішній опір під впливом світлової енергії. Щойно інтенсивність падаючого фоторезистор світла зростає, сила струму збільшується, а опір резистора зменшується. У фоторезисторах присутній осередок із сульфіду кадмію – напівпровідник з великим опором та високою чутливістю до ІЧ-випромінювання. У ряді моделей LDR зустрічаються такі рідкісні сполуки як сульфід свинцю (PbS), селенід свинцю (PbSe) та антимонід індія (InSb). Тим не менш, реакція фоторезистора на падаюче світло залишається порівняно повільною (кілька секунд).
У білому світлі є всі кольори веселки. При попаданні світла поверхню предмета одна частина світлових хвиль поглинається, іншу відбивається. Відбиті хвилі формують кольори видимого нами предмета. Щоб визначити кількість кольорів, використовуючи електронну схему, потрібно виміряти довжини хвиль відбитих від поверхні об'єкта. Найпростіший спосіб це зробити – висвітлити об'єкт різними кольорами та визначити, який із них відбивається з більшою інтенсивністю.
У наведеній нижче таблиці наводяться співвідношення кольорів основного видимого спектру (RGB) у пов'язці з кольором поверхні предмета.
| Колір поверхні предмета | Відбите світло | ||
| Червоний | Зелений | Синій | |
| Червоний | + | – | – |
| Зелений | – | + | – |
| Синій | – | – | + |
| Жовтий | + | + | – |
| Білий | + | + | + |
| Чорний | – | – | – |
Застосування датчиків світла
Прилади даного типу застосовуються у різних галузях, серед яких:
- медицина – оснащення деяких видів діагностичної апаратури;
- промисловість – для управління виробничими процесами, перевірки наявності колірних міток, оперативного контролю за роботою друкарських машин та принтерів;
- проектування систем освітлення – з допомогою датчиків світла вимірюють колірну температуру світла;
- електроніка – для контролю узгодженої роботи світлодіодів RGB, підсвічування РК-дисплеїв та телеекранів, аналізу довжини хвилі різних джерел випромінювання;
- системи безпеки – щоб одержати найкращих результатів розпізнавання предметів.
Датчики кольору у вигляді фотореле також використовують у побуті, зокрема, з їх допомогою можна організувати освітлення території зі сходу та заходу сонця.