সুচিপত্র:

LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল: 5 টি ধাপ (ছবি সহ)
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল: 5 টি ধাপ (ছবি সহ)

ভিডিও: LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল: 5 টি ধাপ (ছবি সহ)

ভিডিও: LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল: 5 টি ধাপ (ছবি সহ)
ভিডিও: Major Lazer – Light it Up Remix (feat. Nyla & Fuse ODG) (Music Video) by Method Studios 2024, জুলাই
Anonim
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল
LightMeUp! একটি রিয়েলটাইম ক্রস-প্ল্যাটফর্মযুক্ত LED স্ট্রিপ কন্ট্রোল

LightMeUp! খরচ কম এবং কর্মক্ষমতা বেশি রেখে রিয়েলটাইমে আরজিবি এলইডি-স্ট্রিপ নিয়ন্ত্রণের জন্য আমি একটি সিস্টেম উদ্ভাবন করেছি।

সার্ভারটি Node.js এ লেখা আছে এবং এর জন্য ক্রস-প্ল্যাটফর্মযোগ্য।

আমার উদাহরণে, আমি দীর্ঘমেয়াদী ব্যবহারের জন্য একটি রাস্পবেরি পাই 3B ব্যবহার করি, কিন্তু প্রদর্শন এবং ডিবাগিংয়ের জন্য আমার উইন্ডোজ পিসি।

4pin- স্ট্রিপটি একটি Arduino Nano টাইপ-বোর্ড দ্বারা নিয়ন্ত্রিত হয়, যা তিনটি ট্রানজিস্টরকে PWM সংকেত পাঠানোর জন্য ধারাবাহিকভাবে প্রদত্ত কমান্ডগুলি চালায় যা +12VDC কে স্ট্রিপের সংশ্লিষ্ট রঙ-পিনে পরিবর্তন করে।

লাইটমেইউপ! সিস্টেমটি তার নিজের তাপমাত্রাও পরীক্ষা করে, একবার এটি 60 ডিগ্রি সেলসিয়াস (140 ডিগ্রি ফারেনহাইট) এর উপরে হলে এটি সার্কিটের জীবনকাল উন্নত করার জন্য নিজেকে শীতল করার জন্য কেসিংয়ে নির্মিত দুটি 12VDC কম্পিউটার ফ্যান চালু করে।

LightMeUp এর আরেকটি বৈশিষ্ট্য! একটি বোম্বে-নীলা জিনের বোতল আলোকিত করা, কিন্তু এটি এই নির্দেশের কেন্দ্রবিন্দু নয়।

পড়া ভোগ:)

সরবরাহ

  • Arduino ন্যানো (অথবা অন্য কোন ATmega328 / উচ্চতর ভিত্তিক মাইক্রোকন্ট্রোলার)
  • Node.js ইনস্টল করা রাস্পবেরি পাই 3 মডেল বি (বা অন্য কোন কম্পিউটার)
  • 12V RGB 4-Pin LED স্ট্রিপ
  • 12V 3A পাওয়ার সাপ্লাই
  • জাম্পার তারগুলি (অবশ্যই পুরুষ-পুরুষ যদি আপনি ব্রেডবোর্ড ব্যবহার করেন, অবশ্যই)
  • ব্রেডবোর্ড (alচ্ছিক)
  • 2 12V ডিসি কম্পিউটার ভক্ত (alচ্ছিক)
  • 3x TIP120 ডার্লিংটন ট্রানজিস্টর w/ heatsink (4 যদি আপনি কুলিং ফ্যান অন্তর্ভুক্ত করতে চান)
  • 2 টি অবস্থা LEDs লাল এবং সবুজ (alচ্ছিক)
  • 6, 7 কে এনটিসি তাপমাত্রা ভিত্তিক প্রতিরোধক + 6, 7 কে প্রতিরোধক (চ্ছিক)
  • ইউএসবি-মিনি থেকে ইউএসবি 2.0 ডাটা ক্যাবল (রাস্পবেরি পাই আরডুইনো এর সাথে যোগাযোগ করার জন্য)
  • বাহ্যিকভাবে চালিত ইউএসবি-হাব (alচ্ছিক, শুধুমাত্র রাস্পবেরি পাই এর জন্য)

ধাপ 1: সিস্টেমটি বুঝুন

সিস্টেম বুঝুন
সিস্টেম বুঝুন

LightMeUp! খুব সহজ ইলেকট্রনিক সার্কিটের উপর ভিত্তি করে।

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

একবার আমাদের 4pin LED- স্ট্রিপের জন্য RED, GREEN এবং BLUE এর জন্য আমাদের তিনটি মান পেয়ে গেলে আমরা আমাদের TIP120 ট্রানজিস্টারকে PWM সিগন্যাল সরবরাহ করার জন্য analogWrite (pin, value) চালাই।

এই PWM সংকেতটি ট্রানজিস্টরকে সংশ্লিষ্ট রঙের পিনটি সুইচ করতে দেয় যার সংগ্রাহকটি মাটিতে, একটি নির্দিষ্ট ডিগ্রিতে বা সম্পূর্ণভাবে চালু / বন্ধ থাকে। হ্যাঁ, অনেক "টু" গুলি:)

এলইডি স্ট্রিপের রঙের পিনগুলিতে তিনটি ট্রানজিস্টর আউটপুট মিশ্রিত করে আমরা মূলত যেকোনো রঙ তৈরি করতে পারি!

এখন এই বোঝার সাথে, আমরা এই প্রকল্পের সবচেয়ে বড় চ্যালেঞ্জ, ওয়েবসকেট সার্ভার এবং আমাদের Arduino এর সিরিয়াল সংযোগকে আক্রমণ করতে পারি।

ধাপ 2: ওয়েবসকেট সার্ভার লেখা

ওয়েবসকেট সার্ভার লেখা
ওয়েবসকেট সার্ভার লেখা

এখন, আমাদের একটি নির্দিষ্ট ধরনের ওয়েব সার্ভার তৈরি করতে হবে, যা আমাদের রিয়েলটাইম এলইডি স্ট্রিপ কন্ট্রোল অর্জনের জন্য একবার রিফ্রেশ না করে ডাটাকে পিছনে স্থানান্তর করতে দেয়।

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

যদি আপনি আমার মতো Node.js ব্যবহার করেন তবে socket.io লাইব্রেরি ব্যবহার করে এটি সহজেই অর্জন করা যায়। যাইহোক, আপনি সর্বদা আপনার পছন্দের প্রোগ্রামিং ল্যাঙ্গুয়েজে লেগে থাকতে পারেন।

আমরা একটি ওয়েবসকেট সংযোগের সাথে কাজ করব যা আমাদের ইনপুট ডেটা স্থানান্তর করতে দেয় যেমন আপনি কোন রঙে LED- স্ট্রিপ সেট করতে চান, অথবা "LED ON" এর মতো স্ট্যাটাস ডেটা রিফ্রেশ না করেই দ্বি-নির্দেশিতভাবে স্থানান্তর করতে পারেন।

আরেকটি খুব গুরুত্বপূর্ণ বৈশিষ্ট্য সার্ভারের থাকা উচিত কিন্তু প্রয়োজন নেই একটি সহজ লগইন। আমি একটি সহজ ব্যবহারকারীর নাম এবং পাসওয়ার্ড ক্ষেত্র থেকে আমার লগইন বন্ধ করেছি। এই তথ্যের টুকরাগুলি তখন সার্ভারের /লগইন রুটে পোস্ট করা হয়, যা ব্যবহারকারীর নামটি ব্যবহারকারীদের একটি তালিকা (.txt ফাইল) এবং তার সংশ্লিষ্ট পাসওয়ার্ডকে তার SHA256- এনক্রিপ্ট করা ফর্মের সাথে তুলনা করে। আপনি চান না আপনার প্রতিবেশীরা আপনার এলইডি স্ট্রিপ নিয়ে গোলমাল করুক যখন আপনি আপনার সবচেয়ে আরামদায়ক আসনে আপনার প্রিয় পানীয় উপভোগ করবেন, তাই না?

এখন আসে সার্ভারের হৃদয়, সিরিয়াল যোগাযোগ।

আপনার সার্ভার অবশ্যই সিরিয়ালভাবে যোগাযোগ করতে সক্ষম হবে - Node.js এ এটি "সিরিয়ালপোর্ট" লাইব্রেরি ব্যবহার করে একটি পোর্ট খোলার মাধ্যমে অর্জন করা যেতে পারে। কিন্তু প্রথমে আপনার কম্পিউটারে সার্ভার হোস্টিংয়ে আপনার আরডুইনো পোর্টের নাম নির্ধারণ করুন। আপনার অপারেটিং সিস্টেমের উপর নির্ভর করে, পোর্টগুলির বিভিন্ন নাম থাকবে, যেমন। উইন্ডোজে এই পোর্টগুলোর নাম "COMx" পোর্ট, যখন লিনাক্সে তাদের নাম দেওয়া হয় "/dev/ttyUSBx", যেখানে x হল USB পোর্টের সংখ্যা।

ধাপ 3: সিরিয়াল কমান্ডগুলির একটি প্রোটোকল স্থাপন করুন

সিরিয়াল কমান্ডের একটি প্রোটোকল প্রতিষ্ঠা করুন
সিরিয়াল কমান্ডের একটি প্রোটোকল প্রতিষ্ঠা করুন

উপরের ছবিতে, আপনি RGB নিয়ন্ত্রণের জন্য দায়ী প্রকৃত Arduino IDE কোডটি দেখতে পাচ্ছেন। এই পদক্ষেপের লক্ষ্য হল, আপনার স্ব-লিখিত সার্ভার এবং আরডুইনো বোর্ড একে অপরের সাথে সফলভাবে কথা বলা।

একবার আপনি আপনার সিরিয়াল পোর্টটি সফলভাবে খুললে, আপনাকে বোর্ডে কমান্ড পাঠাতে সক্ষম হতে হবে যা আপনার ইচ্ছার যত্ন নেয়। উদাহরণস্বরূপ, যদি আমরা HTML ওয়েবপেজে কালার পিকারের উপরে একটি আঙুল আঁকি, RGB কোডটি সার্ভারে পাঠানো উচিত যা তারপর এটি আপনার Arduino- এ পাঠায় যাতে এটি মান নির্ধারণ প্রক্রিয়া করে।

আমি jscolor ব্যবহার করেছি, তাদের একটি উচ্চমানের কালার পিকিং এলিমেন্টের একটি দুর্দান্ত বাস্তবায়ন আছে, যা "onFineChange" নামে একটি ইভেন্টের মালিক যা আপনার পিকচার থেকে আপনার প্রসেসের ডেটা মান পরিবর্তন হওয়ার সাথে সাথেই করতে দেয়।

প্রস্তাবিত: