Каталог
|
Датчику кольору TCS230 в системі сортування за кольором на Arduino2020-07-29 Все статьи →Андрій Назаренко Колись на виконанні дипломного проекту мені запропонували реалізувати свою ідею на реальному прототипі, сенс даної системи в тому, що вона автоматично сортує предмети на відповідні лінії, як продукцію на підприємстві але за кольором цього предмету. ІдеяІдея даного прототипу полягала у тому, щоб відобразити сам процес, що відбувається повністю автоматично. Було штучно додано затримку за часом після певних операцій для наочності. Звісно повністю автоматичну систему на макеті не є можливо зробити, так як у ємність зверху слід додавати нові кульки, але як прототип є непоганим. Вибір сенсору для розпізнавання кольору
Найбільшу увагу в цій системі було приділено датчику кольору, так як це основний сенсор, мій вибір пав на TCS230 він простий у використанні і як для прототипу, на мою думку, є чудовим і сумісний з платформою Arduino (у
Схему датчика і його підключення можна знайти в інтернеті або в даташиті на сенсор. Нижче наведено приклад підключення до Arduino.
Датчик слід розташовувати на малій відстані до об’єкту, у описі датчика зазначено, що оптимальна відстань для коректної роботи повинна становити 10 мм. Якщо є бажання ознайомитися з роботою сенсору, то Налаштування і програмна реалізаціяБула поставлена задача, що сенсор повинен аналізувати три кольори, синій, червоний і зелений. Найбільша проблема при налаштуванні сенсору виникала при перевірці, а саме велика погрішність розпізнавання кольорів, іноді замість зеленого розпізнавався, як синій і тому подібне. Для того щоб налаштувати правильні діапазони необхідно відкрити монітор порту (додати у програмі виведення у порт), швидкість 9600 бод, і після того підносити до датчика по черзі об’єкти, у порті відображатимуться значення, що відповідають певному кольору, а після ці значення записати. Іноді ці значення можуть відрізнятися від необхідних, тому їх слід відредагувати. Нижче наведені мої значення вже кореговані. При використанні інших сенсорів цього типу значення можуть відрізнятися.
redColor = map(redFrequency, 25, 72, 255,0); Оголошення деректив для датчика кольору TCS230
#define S0 5 Змінні для збереження частоти і даних при зчитуванні кольору
int redFrequency = 0; Ініціалізація датчика кольору в функції setup
pinMode(S0, OUTPUT);
digitalWrite(S0,HIGH); Після ініціалізації датчика у цикл loop необхідно додати наступний код, він відповідає за виконання процесу аналізу і збереження даних кольору. зчитування з датчика кольору для червоного діапазону
digitalWrite(S2,LOW); зчитування з датчика кольору для зеленого діпазону
digitalWrite(S2,HIGH); зчитування з датчика кольору для синього діапазону
digitalWrite(S2,LOW);
Наступна частина коду відповідає за дії, які необхідно виконати відповідно при визначенні певного кольору, реалізується у вигляді оператору if і логічних операторів “>” та “&&” .
if(redColor > greenColor && redColor > blueColor){ Якщо виявлено зелений колір
if(greenColor > redColor && greenColor > blueColor){ Якщо виявлено синій колір
if(blueColor > redColor && blueColor > greenColor){
ВисновкиВ результаті прототип працює без нарікань, інші частини системи можливо і доречно було б оптимізувати, але датчик кольору при роботі помилок не видавав. Цей прототип є лише невеликим прикладом для застосування датчика кольору TCS230.
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Єгор
25.05.2022 17:28:41
а як взнати цифри іньших кольорів???
|