সুচিপত্র:

ম্যাজিকবিট থেকে সহজ DIY রঙ সেন্সর: 5 টি ধাপ
ম্যাজিকবিট থেকে সহজ DIY রঙ সেন্সর: 5 টি ধাপ

ভিডিও: ম্যাজিকবিট থেকে সহজ DIY রঙ সেন্সর: 5 টি ধাপ

ভিডিও: ম্যাজিকবিট থেকে সহজ DIY রঙ সেন্সর: 5 টি ধাপ
ভিডিও: মাত্র ৪০০ টাকায় ১৬ ফুটের Colour LED স্ট্রিপ লাইট // 5 Meter 2835 SMD LED Strip Light Review 2024, নভেম্বর
Anonim
Image
Image

এই টিউটোরিয়ালে আমরা শিখব কিভাবে Arduino এর সাহায্যে Magicbit ব্যবহার করে একটি সাধারণ রঙ সেন্সর তৈরি করা যায়।

সরবরাহ

  • ম্যাজিকবিট
  • ইউএসবি-এ থেকে মাইক্রো-ইউএসবি কেবল

ধাপ 1: গল্প

হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ

হাই বন্ধুরা, কিছু সময়ে আপনাকে কিছু উদ্দেশ্যে রঙ সেন্সর ব্যবহার করতে হবে। কিন্তু হতে পারে আপনি জানেন না কিভাবে তারা কাজ করে। তাই এই টিউটোরিয়ালে আপনি শিখবেন কিভাবে Arduino এর সাথে Magicbit ব্যবহার করে একটি সাধারণ DIY কালার সেন্সর তৈরি করা যায়। শুরু করা যাক।

ধাপ 2: তত্ত্ব এবং পদ্ধতি

এই প্রকল্পে আমরা আপনাকে রঙ সেন্সর তৈরি করতে শেখানোর আশা করি যা লাল, সবুজ এবং নীল রং সনাক্ত করতে পারে। এটি খুবই মৌলিক উদাহরণ। তাহলে কিভাবে এটি করতে হয়। এই উদ্দেশ্যে আমরা ম্যাজিকবিট এবং ইনবিল্ট এলডিআর এর আরজিবি মডিউল ব্যবহার করি। প্রথমে আপনাকে কিছু তত্ত্ব সম্পর্কে জানতে হবে। যে হালকা প্রতিফলন পরিমাণ সম্পর্কে। এখন আমি আপনার কাছ থেকে প্রশ্ন করছি। কোন রঙের পৃষ্ঠ যা সবচেয়ে বেশি লাল রঙের আলোকে প্রতিফলিত করে? এছাড়াও কোন পৃষ্ঠগুলি যা বেশিরভাগ সবুজ এবং নীল আলোকে প্রতিফলিত করে একটু চিন্তা করুন। কিন্তু উত্তর সহজ। লাল রঙের পৃষ্ঠটি বেশিরভাগ লাল রঙের আলোকে প্রতিফলিত করে। এছাড়াও সবুজ এবং নীল পৃষ্ঠগুলি সবুজ এবং নীল আলো প্রতিফলিত করবে। তাই এই প্রকল্পে আমরা সেই তত্ত্ব ব্যবহার করি। রঙ চিনতে আমরা একের পর এক লাল, সবুজ এবং নীল আলো নিitsসরণ করি। প্রতিবার আমরা LDR ভ্যালু ব্যবহার করে প্রতিফলনের পরিমাণ পরিমাপ করি।

ধাপ 3: হার্ডওয়্যার সেটআপ

এই খুব সহজ। ম্যাজিকবিটের উপরের ডান পোর্টে আপনার আরজিবি মডিউলটি প্লাগ করুন। এই মডিউলে WS2812B Neopixel LED আছে। এই LED এর 4 টি পিন আছে। দুটি পাওয়ারের জন্য এবং দুটি ডাটা ইন এবং আউট করার জন্য। যেহেতু আমরা একটি নেতৃত্ব ব্যবহার করি আমাদের কেবল পিনে পাওয়ার পিন এবং ডেটা দরকার। আপনার যদি সেই মডিউল না থাকে তবে আপনি কিনতে পারেন এবং নিওপিক্সেল মডিউল। আপনি যদি এই ধরণের মডিউল কিনে থাকেন তবে আপনাকে পাওয়ার পিন এবং ডেটা পিনে ম্যাজিকবিটের সাথে সংযুক্ত করতে হবে। এটা খুবই সহজ। ম্যাজিকবিটের VCC এবং GND কে RGB মডিউলের পাওয়ার পিন এবং D33 পিনের সাথে ডাটা পিনের সাথে সংযুক্ত করুন।

ধাপ 4: সফটওয়্যার সেটআপ

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

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

magicbit-arduino.readthedocs.io/en/latest/

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

ধাপ 5: রঙ সেন্সরের Arduino কোড

#অন্তর্ভুক্ত

#LED_PIN 33 নির্ধারণ করুন

#LED_COUNT নির্ধারণ করুন 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত OLED_RESET 4 Adafruit_SSD1306 প্রদর্শন (128, 64); #ডিফাইন LDR 36 #ডিফাইন বাটন 35 int R_value, G_value, B_value; অকার্যকর সেটআপ () {LED.begin (); LED.show (); পিনমোড (এলডিআর, ইনপুট); পিনমোড (বোতাম, ইনপুট); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); বিলম্ব (1000); display.clearDisplay (); Serial.begin (9600); } void loop () {if (digitalRead (Button) == 0) {// if button is pressed LED.setPixelColor (0, LED. Color (0, 50, 0)); // লাল রঙের LED.show (); বিলম্ব (100); R_value = analogRead (LDR); // get red mount LED.setPixelColor (0, LED. Color (150, 0, 0)); // greencolour LED.show (); বিলম্ব (100); G_value = analogRead (LDR); // সবুজ মাউন্ট LED.setPixelColor (0, LED. Color (0, 0, 255)) পান; // নীল রঙের LED.show (); বিলম্ব (100); B_value = analogRead (LDR); // পান নীল মাউন্ট যদি (R_value> G_value && R_value> B_value) {// লাল হয় সবচেয়ে বেশি প্রতিফলিত ডিসপ্লে ("RED", 3); } অন্যথায় যদি (G_value> R_value && G_value> B_value) {// সবুজ হল সবচেয়ে বেশি প্রতিফলিত ডিসপ্লে ("GREEN", 3); } অন্যথায় যদি (B_value> R_value && B_value> G_value) {// নীল হল সবচেয়ে বেশি প্রতিফলিত ডিসপ্লে ("BLUE", 3); } সিরিয়াল.প্রিন্ট ("RED ="); Serial.print (R_value); Serial.print ("GREEN ="); সিরিয়াল.প্রিন্ট (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } অন্য {LED.setPixelColor (0, LED. Color (0, 0, 0)); // বন্ধ RGB LED.show (); প্রদর্শন ("কোন রঙ", 2); }} অকার্যকর প্রদর্শন (স্ট্রিং কমন্ড, ইন্ট সাইজ) {// ডিসপ্লে ডেটা display.clearDisplay (); display.setTextSize (সাইজ); // সাধারণ 1: 1 পিক্সেল স্কেল display.setTextColor (সাদা); // আঁকা সাদা টেক্সট display.setCursor (0, 20); // উপরের বাম কোণার ডিসপ্লেতে শুরু করুন। println (commond); display.display (); }

প্রস্তাবিত: