تشخیص رنگ با ماژول TCS230 و آردوینو [همراه با کالیبره کردن سنسور]

مقدمه

در این آموزش با سنسور رنگ TSC320 آشنا شده و یاد می گیرید که چگونه این سنسور  را به آردوینو متصل کرده و از آن در تشخیص رنگ استفاده کنید.

در انتهای این آموزش یک ایده ی جذاب برای ساخت قلم اسکن رنگ، مطرح شده است. با این قلم می توانید رنگ اجسام محیط را اسکن کرده و با آن رنگ، شروع به نقاشی روی یک نمایشگر کنید.

آنچه در این آموزش یاد می گیرید

  • آشنایی با سنسور TCS230
  • آشنایی با نحوه ی راه اندازی این ماژول با آردوینو و تشخیص رنگ های مختلف با آن

سنسور TSC230 چیست؟

تراشه ی  TSC230 دارای یک آرایه ی 8×8 از فوتو دیود های سیلیکونی است که از آن ها برای تشخیص رنگ استفاده می کند. از این 64 فتو دیود، 16 عدد دارای فیلتر رنگ قرمز، 16 عدد دارای فیلتر رنگ سبز، 16 عدد دارای فیلتر  رنگ آبی و 16 عدد بدون فیلتر هستند.

ماژول TCS230 دارای 4 ال ای دی سفید رنگ است. فوتو دیود ها، بازتاب نور این الی ای دی ها را از سطح جسم دریافت می کنند و بسته به رنگی که دریافت کرده اند، یک جریان الکتریکی تولید می کنند.

در داخل این سنسور علاوه بر فوتو دیودها، یک مبدل جریان به فرکانس نیز وجود دارد. این مبدل، جریان تولید شده توسط فوتو دیود ها را به فرکانس تبدیل می کند.

خروجی این ماژول به صورت فرکانس با پالس های مربعی با duty cycle 50 درصد است.

بهترین بازه ی اندازه گیری این سنسور حدود 2 تا 4 سانتی متر است.

پایه های سنسور

این سنسور 4 پایه ی کنترلی دارد. پایه های S0 و S1 برای کنترل مقیاس فرکانس خروجی (OUTPUT FREQUENCY SCALING) و پایه های S2 و S3 برای انتخاب نوع فوتو دیود (قرمز، سبز، آبی و بدون فیلتر) است.

مدار مبدل جریان به فرکانس، دارای مقسم های فرکانس (frequency dividers)  است. با پایه های کنترلی S0 و S1 می توانید این مقسم فرکانسی را کنترل کنید.

S0S1OUTPUT FREQUENCY SCALING (f0)S2S3PHOTODIODE TYPE
LLPower downLLRed
LH2%LHBlue
HL20%HLClear (no filter)
HH100%HHgreen

برای مثال، اگر بخواهید مقدار رنگ آبی یک جسم را اندازه گیری کنید، باید همزمان پایه ی S2 را LOW و S3 را HIGH کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد آردوینو UNO R3 × 1
سنسور تشخیص رنگ TCS230 × 1
برد بورد × 1
ال ای دی × 1
ماژول نمایشگر لمسی 2.4 اینچ × 1
سیم جامپر نری به مادگی × 1
مقاومت 220اهم × 3

** اگر نمی خواهید پروژه ی پایانی را انجام دهید، می توانید این نمایشگر را نخرید.

نرم افزار های مورد نیاز

Arduino IDE

راه اندازی سنسور تشخیص رنگ TCS230 با آردوینو

برای راه اندازی این ماژول کافیست طبق مدار زیر آن را به آردوینو وصل کرده و با مقداردهی به پایه های S0 تا S4، خروجی رنگ های مختلف را تحلیل کنید.

سیم بندی

طبق مدار زیر، سنسور را به آردینو متصل کنید.

کد

کد زیر، سیگنال خروجی برای هر سه رنگ قرمز، سبز و آبی را اندازه گیری می کند و نتیجه را روی پورت سریال نمایش می دهد.


تابع color پایه های S2 و S3 را کنترل می کند تا همه ی رنگ های جسم خوانده شود. در این تابع از دستور pulseIn برای دریافت پالس های ورودی از ماژول رنگ استفاده شده است.

توضیحات بیشتر راجع به این دستور را می توانید در اینجا مشاهده کنید.

دستور شرطی ?:

عملکرد این دستور مشابه دستور if و else است.

اگر شرط درست باشد، exp1 و در غیر این صورت exp2 به عنوان خروجی این دستور خواهد بود.

کالیبره کردن سنسور تشخیص رنگ TCS230:

برای کالیبره کردن سنسور نیاز به یک جسم با رنگ سفید دارید.

تابع  calibrate عملیات کالیبره کردن سنسور را انجام می دهد. برای کالیبره کردن سنسور کافیست در پنجره سریال، کاراکتر “c” را وارد کنید. سپس باید اجسام رنگی را از سنسور دور کرده و مجددا “c” را وارد کنید. حالا جسم سفید رنگ را نزدیک سنسور بگیرید و مجددا “c” را وارد کنید.

در پایان کالیبره کردن، اگر جسم سفید رنگ را مقابل سنسور نگه دارید، برای هر سه رنگ قرمز و سبز و آبی باید مقدار 255 (یا نزدیک به 255) را در پنجره ی سریال مشاهده کنید.

نحوه ی کار این تابع بسیار ساده است. این تابع حداقل و حداکثر تغییرات فرکانس خروجی سنسور را در محیط بدون رنگ و  رنگ سفید محاسبه و ذخیره می کند.

سپس در بخش loop با دستور map بازه ی حداقل و حداکثر تغییرات را روی بازه ی 0 تا 255 (یا هر بازه ای که شما تعریف کنید) مقیاس (map) می کند.

اگر با دستور map آشنا نیستید به اینجا مراجعه کنید.

کد

ساخت قلم اسکن رنگ با سنسور TCS230 و آردوینو

اگر از آردوینو UNO استفاده می کنید، باید سنسور رنگ را با سیم به پایه های آردوینو لحیم کنید. ولی اگر از آردوینو MEGA استفاده می کنید، می توانید از پایه های انتهای برد برای اتصال سنسور رنگ استفاده کنید

کد زیر یک صفحه ی نقاشی را روی نمایشگر ایجاد می کند. رنگ اولیه ی قلم قرمز است. با نگه داشتن کلید و نزدیک کردن سنسور تشخیص رنگ به جسم مورد نظر، رنگ آن انتخاب می شود و رنگ قلم شما به رنگ جسم مورد نظر تغییر می کند.

توجه:

بهتر است هر بار که مدار را روشن می کنید، یک بار طبق روش گفته شده ماژول را کالیبره کنید.

سیم بندی

کد


تابع pick_color، در زمان فشردن کلید فراخوانی می شود و رنگ جسمی که در نزدیکی سنسور قرار دارد را می خواند. سپس رنگ قلم را به رنگ جسم تغییر می دهد.

یک گام جلوتر

  • یک دستگاه انبارداری کوچک بسازید که قطعات لگو را با توجه به رنگ آن ها از یکدیگر جدا کند.

آموزش های مرتبط:

Share this post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *