সুচিপত্র:

রঙের স্থান অন্বেষণ: 6 টি ধাপ
রঙের স্থান অন্বেষণ: 6 টি ধাপ

ভিডিও: রঙের স্থান অন্বেষণ: 6 টি ধাপ

ভিডিও: রঙের স্থান অন্বেষণ: 6 টি ধাপ
ভিডিও: ক্ষুদে বিজ্ঞানীদের বিজ্ঞান মেলা 2024, জুলাই
Anonim
রঙের স্থান অন্বেষণ
রঙের স্থান অন্বেষণ

আমাদের চোখ রিসেপ্টরগুলির মাধ্যমে আলো উপলব্ধি করে যা ভিজ্যুয়াল বর্ণালীতে লাল, সবুজ এবং নীল রঙের প্রতি সংবেদনশীল। গত একশ বছর বা তারও বেশি সময় ধরে মানুষ চলচ্চিত্র, টেলিভিশন, কম্পিউটার এবং অন্যান্য ডিভাইসের মাধ্যমে রঙিন ছবি সরবরাহ করতে এই সত্যটি ব্যবহার করেছে।

একটি কম্পিউটার বা ফোনের ডিসপ্লেতে, ছোট ছোট লাল, সবুজ এবং নীল এলইডির তীব্রতা পরিবর্তন করে ছবিগুলি অনেক রঙে প্রদর্শিত হয় যা পর্দায় একে অপরের পাশে থাকে। লাল, সবুজ বা নীল এলইডি থেকে আলোর তীব্রতা পরিবর্তন করে লক্ষ লক্ষ বিভিন্ন রঙ দেখানো যেতে পারে।

এই প্রকল্পটি আপনাকে Arduino, RGB LED এবং সামান্য গণিত ব্যবহার করে লাল, সবুজ এবং নীল (RGB) কালার স্পেস অন্বেষণ করতে সাহায্য করবে।

আপনি লাল, সবুজ এবং নীল, তিনটি রঙের তীব্রতাকে একটি ঘনক্ষেত্রের স্থানাঙ্ক হিসাবে ভাবতে পারেন, যেখানে প্রতিটি রঙ একটি অক্ষ বরাবর থাকে এবং তিনটি অক্ষই একে অপরের সাথে লম্ব। আপনি অক্ষের শূন্য বিন্দু, বা উৎপত্তির কাছাকাছি, সেই রঙটি কম দেখানো হয়। যখন তিনটি রঙের মান শূন্য বিন্দু, বা উৎপত্তি, তখন রঙ কালো, এবং RGB LED সম্পূর্ণ বন্ধ। যখন তিনটি তিনটি রঙের মানগুলি যতটা যেতে পারে (আমাদের ক্ষেত্রে, তিনটি রঙের প্রতিটিতে 255), তখন আরজিবি LED সম্পূর্ণভাবে চালু থাকে এবং চোখ এই রঙের সংমিশ্রণটিকে সাদা হিসাবে উপলব্ধি করে।

ধাপ 1: RGB কালার স্পেস

RGB কালার স্পেস
RGB কালার স্পেস

কেনেথ মোরল্যান্ডকে ধন্যবাদ তার সুন্দর ছবিটি ব্যবহারের অনুমতি দেওয়ার জন্য।

আমরা একটি Arduino এর সাথে সংযুক্ত একটি RGB LED ব্যবহার করে 3D কালার স্পেস কিউবের কোণগুলি অন্বেষণ করতে চাই, কিন্তু এটি একটি আকর্ষণীয় উপায়ে করতে চাই। আমরা এটি তিনটি লুপ (লাল, সবুজ এবং নীল জন্য প্রতিটি), এবং প্রতিটি সম্ভাব্য রঙের সংমিশ্রণের মাধ্যমে চলার মাধ্যমে এটি করতে পারি, কিন্তু এটি সত্যিই বিরক্তিকর হবে। আপনি কি কখনও একটি অসিলোস্কোপ বা একটি 2D লিসাজাস প্যাটার্ন দেখেছেন লেজার লাইট শো? সেটিংসের উপর নির্ভর করে, একটি লিসাজাস প্যাটার্ন একটি তির্যক রেখা, একটি বৃত্ত, একটি চিত্র 8 বা ধীরে ধীরে ঘোরানো বিন্দু প্রজাপতির মতো প্যাটার্নের মতো দেখতে পারে। এক্স-ওয়াই (বা, আমাদের ক্ষেত্রে, x-y-z বা R-G-B) অক্ষের উপর প্লট করা দুটি (বা তার বেশি) অসিলেটরের সাইনোসয়েডাল সিগন্যাল ট্র্যাক করে লিসাজাস প্যাটার্ন তৈরি করা হয়।

ধাপ 2: ভাল জাহাজ Lissajous

দ্য গুড শিপ লিসাজাস
দ্য গুড শিপ লিসাজাস

সবচেয়ে আকর্ষণীয় Lissajous নিদর্শন দেখা যায় যখন sinusoidal সংকেতগুলির ফ্রিকোয়েন্সিগুলি অল্প পরিমাণে পৃথক হয়। এখানে অসিলোস্কোপ ছবিতে, ফ্রিকোয়েন্সিগুলি 5 থেকে 2 এর অনুপাত দ্বারা পৃথক হয় (উভয়ই মৌলিক সংখ্যা)। এই প্যাটার্নটি তার বর্গক্ষেত্রটিকে বেশ ভালভাবে coversেকে রাখে এবং কোণগুলোতে সুন্দরভাবে প্রবেশ করে। উচ্চতর মৌলিক সংখ্যাগুলি বর্গক্ষেত্রকে আচ্ছাদিত করার এবং কোণায় আরও বেশি খোঁচানোর আরও ভাল কাজ করবে।

ধাপ 3: অপেক্ষা করুন - কিভাবে আমরা একটি সাইনোসয়েডাল ওয়েভ দিয়ে একটি LED চালাতে পারি?

তুমি আমাকে ধর! আমরা 3D রঙের স্থানটি অন্বেষণ করতে চাই যা তিনটি রঙের প্রত্যেকটির জন্য অফ (0) থেকে ফুল অন (255) পর্যন্ত বিস্তৃত, কিন্তু সাইনোসয়েডাল তরঙ্গ -1 থেকে +1 পর্যন্ত পরিবর্তিত হয়। আমরা যা চাই তা পেতে আমরা এখানে একটু গণিত এবং প্রোগ্রামিং করতে যাচ্ছি।

  • -127 থেকে +127 পর্যন্ত মান পেতে প্রতিটি মান 127 দ্বারা গুণ করুন
  • 127 যোগ করুন এবং প্রতিটি মানকে বৃত্তাকার করুন যা 0 থেকে 255 পর্যন্ত পরিসীমা (আমাদের জন্য যথেষ্ট 255 এর কাছাকাছি)

0 থেকে 255 পর্যন্ত মানগুলি একক-বাইট সংখ্যার (C- এর মত Arduino প্রোগ্রামিং ভাষায় "চার" ডেটা টাইপ) দ্বারা প্রতিনিধিত্ব করা যেতে পারে, তাই আমরা একক-বাইট উপস্থাপনা ব্যবহার করে মেমরি সংরক্ষণ করব।

কিন্তু কিভাবে কোণ সম্পর্কে? আপনি যদি ডিগ্রী ব্যবহার করেন, একটি সাইনোসয়েড রেঞ্জের কোণ 0 থেকে 360 পর্যন্ত। আমরা এমন কিছু করতে যাচ্ছি যা আমাদের Arduino তে আবার স্মৃতি সংরক্ষণ করে, এবং 256 অংশে বিভক্ত একটি বৃত্তের কথা চিন্তা করে, এবং 0 থেকে 255 এর মধ্যে "বাইনারি কোণ" থাকে, তাই প্রতিটি রঙের জন্য "কোণ" হতে পারে এখানে একক-বাইট সংখ্যা বা অক্ষর দ্বারা প্রতিনিধিত্ব করা হয়।

আরডুইনো বেশ আশ্চর্যজনক যেভাবে এটি হয়, এবং যদিও এটি সাইনোসয়েডাল মান গণনা করতে পারে, আমাদের দ্রুত কিছু দরকার। আমরা মানগুলি প্রাক-গণনা করব, এবং আমাদের প্রোগ্রামে 256-এন্ট্রি দীর্ঘ অ্যারে একক-বাইট, বা চার মানগুলিতে রাখব (Arduino প্রোগ্রামে সাইনটেবল […] ঘোষণা দেখুন)।

ধাপ 4: আসুন একটি 3 ডি লিসাজাস প্যাটার্ন তৈরি করি

আসুন একটি 3 ডি লিসাজাস প্যাটার্ন তৈরি করি
আসুন একটি 3 ডি লিসাজাস প্যাটার্ন তৈরি করি

তিনটি রঙের প্রত্যেকটির জন্য একটি ভিন্ন ফ্রিকোয়েন্সিতে টেবিলের মধ্য দিয়ে চক্র চালানোর জন্য, আমরা প্রতি রঙে একটি সূচক রাখব, এবং প্রতিটি সূচকে তুলনামূলকভাবে প্রধান অফসেট যুক্ত করব যখন আমরা রঙের মধ্য দিয়ে এগিয়ে যাব। আমরা লাল, সবুজ এবং নীল সূচক মানগুলির জন্য তুলনামূলকভাবে প্রধান অফসেট হিসাবে 2, 5 এবং 11 নির্বাচন করব। Arduino এর নিজস্ব অভ্যন্তরীণ গণিত ক্ষমতা আমাদের স্বয়ংক্রিয়ভাবে চারপাশে মোড়ানো দ্বারা সাহায্য করবে কারণ আমরা প্রতিটি সূচকে অফসেট মান যোগ করি।

ধাপ 5: Arduino এ সব একসাথে রাখা

Arduino এ সব একসাথে রাখা
Arduino এ সব একসাথে রাখা

বেশিরভাগ Arduinos- এর PWM (বা পালস প্রস্থ মডুলেশন) চ্যানেল আছে। আমাদের এখানে তিনজন লাগবে। একজন Arduino UNO এর জন্য দারুণ। এমনকি একটি সামান্য 8-বিট Atmel মাইক্রোকন্ট্রোলার (ATTiny85) চমত্কারভাবে কাজ করে।

প্রতিটি PWM চ্যানেল আরডুইনো এর "AnalogWrite" ফাংশন ব্যবহার করে RGB LED এর একটি রঙ চালাবে, যেখানে সাইনোসয়েডাল চক্রের চারপাশে প্রতিটি বিন্দুতে রঙের তীব্রতা একটি পালস প্রস্থ, বা ডিউটি চক্র দ্বারা 0 (সব বন্ধ) থেকে 255 (সব চালু)। আমাদের চোখ এই বিভিন্ন পালস প্রস্থকে উপলব্ধি করে, যথেষ্ট দ্রুত পুনরাবৃত্তি করে, LED এর বিভিন্ন তীব্রতা বা উজ্জ্বলতা হিসাবে। তিনটি PWM চ্যানেলের সমন্বয়ে RGB LED তে তিনটি রঙের প্রত্যেকটি ড্রাইভ করে, আমরা 256*256*256, বা ষোল মিলিয়নেরও বেশি রঙ প্রদর্শন করার ক্ষমতা পাই!

আপনাকে Arduino IDE (ইন্টারেক্টিভ ডেভেলপমেন্ট এনভায়রনমেন্ট) সেট আপ করতে হবে, এবং এটি আপনার USB Arble ব্যবহার করে আপনার Arduino বোর্ডের সাথে সংযুক্ত করতে হবে। PWM আউটপুট 3, 5, এবং 6 (প্রসেসর পিন 5, 11, এবং 12) থেকে আপনার প্রোটো বোর্ড বা প্রোটো শিল্ডে তিনটি 1 KΩ (এক হাজার ওহম) প্রতিরোধক, এবং প্রতিরোধক থেকে LED আর, জি, এবং বি পিন।

  • যদি আরজিবি এলইডি একটি সাধারণ ক্যাথোড (নেগেটিভ টার্মিনাল) হয়, তাহলে ক্যাথোড থেকে আরডুইনোতে জিএনডি পিনে একটি তারের চালান।
  • যদি আরজিবি এলইডি একটি সাধারণ অ্যানোড (পজিটিভ টার্মিনাল) হয়, তাহলে অ্যানোড থেকে আরডুইনোতে +5V পিনে একটি তার চালান।

Arduino স্কেচ উভয় ভাবে কাজ করবে। আমি একটি স্পার্কফুন ইলেকট্রনিক্স / COM-11120 RGB সাধারণ ক্যাথোড LED ব্যবহার করেছি (উপরে ছবি, স্পার্কফুন ওয়েব সাইট থেকে)। দীর্ঘতম পিন হল সাধারণ ক্যাথোড।

RGB-Instructable.ino স্কেচ ডাউনলোড করুন, এটি Arduino IDE দিয়ে খুলুন, এবং পরীক্ষা কম্পাইল করুন। সঠিক টার্গেট Arduino বোর্ড বা চিপ উল্লেখ করতে ভুলবেন না, তারপর প্রোগ্রামটি Arduino এ লোড করুন। এটি অবিলম্বে শুরু করা উচিত।

আপনি RGB LED চক্র দেখতে পাবেন যত রঙের আপনি নাম করতে পারেন, এবং লক্ষ লক্ষ আপনি পারবেন না!

ধাপ 6: এরপর কি?

আমরা আমাদের আরডুইনো দিয়ে আরজিবি কালার স্পেস অন্বেষণ শুরু করেছি। এই ধারণার সাথে আমি যে কিছু কাজ করেছি তার মধ্যে রয়েছে:

এনালগ রাইট ব্যবহার না করে সরাসরি অন-চিপ রেজিস্টারে লিখুন, জিনিসগুলিকে সত্যিই গতিময় করতে

  • সার্কিট পরিবর্তন করা যাতে একটি আইআর প্রক্সিমিটি সেন্সর গতি বা গতি কমিয়ে দেয় আপনি কতটা কাছাকাছি যান তার উপর নির্ভর করে
  • Arduino বুটলোডার এবং এই স্কেচ দিয়ে একটি Atmel ATTiny85 8-পিন মাইক্রোকন্ট্রোলার প্রোগ্রামিং

প্রস্তাবিত: