সুচিপত্র:

ব্লুটুথের মাধ্যমে DIY কন্ট্রোল RGB LED কালার: 5 টি ধাপ
ব্লুটুথের মাধ্যমে DIY কন্ট্রোল RGB LED কালার: 5 টি ধাপ

ভিডিও: ব্লুটুথের মাধ্যমে DIY কন্ট্রোল RGB LED কালার: 5 টি ধাপ

ভিডিও: ব্লুটুথের মাধ্যমে DIY কন্ট্রোল RGB LED কালার: 5 টি ধাপ
ভিডিও: ভয়ানক সাউন্ড😲 মিনি ব্লুটুথ এম্পলিফায়ার টেস্ট // 100W Bluetooth AMP Circuit | JLCPCB 2024, জুলাই
Anonim
DIY কন্ট্রোল RGB LED কালার ব্লুটুথ
DIY কন্ট্রোল RGB LED কালার ব্লুটুথ

স্মার্ট বাল্বগুলি সম্প্রতি জনপ্রিয়তা বাড়ছে এবং ক্রমাগত স্মার্ট হোম টুলকিটের একটি গুরুত্বপূর্ণ অংশ হয়ে উঠছে। স্মার্ট বাল্ব ব্যবহারকারীর স্মার্ট ফোনে একটি বিশেষ অ্যাপ্লিকেশনের মাধ্যমে ব্যবহারকারীকে তাদের আলো নিয়ন্ত্রণ করতে সক্ষম করে; বাল্বটি চালু এবং বন্ধ করা যায় এবং অ্যাপ্লিকেশন ইন্টারফেস থেকে রঙ পরিবর্তন করা যায়। এই প্রকল্পে, আমরা একটি স্মার্ট বাল্ব কন্ট্রোলার তৈরি করেছি যা ম্যানুয়াল বোতাম বা ব্লুটুথের মাধ্যমে একটি মোবাইল অ্যাপ্লিকেশন থেকে নিয়ন্ত্রণ করা যায়। এই প্রজেক্টে কিছু ফ্লেয়ার যোগ করার জন্য আমরা কিছু ফিচার যোগ করেছি যা ব্যবহারকারীকে অ্যাপ্লিকেশন ইন্টারফেসে অন্তর্ভুক্ত রঙের তালিকা থেকে আলোর রঙ বেছে নিতে দেয়। এটি রঙ প্রভাব তৈরি করতে এবং প্রতি অর্ধ সেকেন্ডে আলো পরিবর্তন করতে একটি "অটো মিশ্রণ" সক্রিয় করতে পারে। ব্যবহারকারী একটি PWM বৈশিষ্ট্য ব্যবহার করে তাদের নিজস্ব রঙের মিশ্রণ তৈরি করতে পারে যা তিনটি মৌলিক রঙের (লাল, সবুজ, নীল) জন্য একটি dimmer হিসাবে ব্যবহার করা যেতে পারে। আমরা সার্কিটে বাহ্যিক বোতামগুলিও যুক্ত করেছি যাতে ব্যবহারকারী ম্যানুয়াল মোডে স্যুইচ করতে পারে এবং একটি বহিরাগত বোতাম থেকে হালকা রঙ পরিবর্তন করতে পারে।

এই নির্দেশযোগ্য দুটি বিভাগ নিয়ে গঠিত; GreenPAK ™ ডিজাইন এবং অ্যান্ড্রয়েড অ্যাপ ডিজাইন। গ্রীনপাক ডিজাইনটি যোগাযোগের জন্য একটি UART ইন্টারফেস ব্যবহারের উপর ভিত্তি করে তৈরি। UART নির্বাচন করা হয়েছে কারণ এটি বেশিরভাগ ব্লুটুথ মডিউল, পাশাপাশি অন্যান্য অন্যান্য পেরিফেরাল, যেমন WIFI মডিউল দ্বারা সমর্থিত। ফলস্বরূপ, GreenPAK নকশা অনেক ধরনের সংযোগে ব্যবহার করা যেতে পারে।

এই প্রকল্পটি নির্মাণের জন্য, আমরা SLG46620 CMIC, একটি ব্লুটুথ মডিউল এবং একটি RGB LED ব্যবহার করতে যাচ্ছি। গ্রীনপ্যাক আইসি এই প্রকল্পের নিয়ন্ত্রণ কেন্দ্র হতে চলেছে; এটি একটি ব্লুটুথ মডিউল এবং/অথবা বাহ্যিক বোতাম থেকে তথ্য গ্রহণ করে, তারপর সঠিক আলো প্রদর্শনের জন্য প্রয়োজনীয় প্রক্রিয়া শুরু করে। এটি PWM সিগন্যাল তৈরি করে এবং LED তে আউটপুট করে। নীচের চিত্র 1 ব্লক ডায়াগ্রাম দেখায়।

এই প্রকল্পে ব্যবহৃত গ্রিনপাক ডিভাইসে একটি এসপিআই সংযোগ ইন্টারফেস, পিডব্লিউএম ব্লক, এফএসএম এবং একটি আইসি -তে আরও অনেক দরকারী অতিরিক্ত ব্লক রয়েছে। এটি তার ছোট আকার এবং কম শক্তি খরচ দ্বারা চিহ্নিত করা হয়। এটি নির্মাতাদের একটি একক আইসি ব্যবহার করে একটি ছোট ব্যবহারিক সার্কিট তৈরি করতে সক্ষম করবে, এইভাবে অনুরূপ সিস্টেমের তুলনায় উৎপাদন খরচ কমিয়ে আনা হবে।

এই প্রকল্পে, আমরা একটি RGB LED নিয়ন্ত্রণ করি। প্রকল্পটিকে বাণিজ্যিকভাবে টেকসই করার জন্য, একটি সিস্টেমকে সম্ভবত অনেক এলইডি সমান্তরালভাবে সংযুক্ত করে এবং উপযুক্ত ট্রানজিস্টর ব্যবহার করে উজ্জ্বলতার মাত্রা বৃদ্ধি করতে হবে; পাওয়ার সার্কিটটিও বিবেচনায় নেওয়া দরকার।

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

GreenPAK নকশাটি UART রিসিভার, PWM ইউনিট এবং নিচের ধাপে বর্ণিত কন্ট্রোল ইউনিট নিয়ে গঠিত।

ধাপ 1: UART রিসিভার

UART রিসিভার
UART রিসিভার

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

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

UART ট্রান্সমিটার 1 START বিট, 8 ডেটা বিট এবং একটি STOP বিট পাঠায়। সাধারণত, একটি UART ব্লুটুথ মডিউলের জন্য ডিফল্ট বাড রেট 9600 হয়। আমরা ব্লুটুথ আইসি থেকে ডাটা বাইটকে GreenPAK ™ SLG46620 এর SPI ব্লকে পাঠাব।

যেহেতু গ্রীনপ্যাক এসপিআই ব্লকে স্টার্ট বা স্টপ বিট কন্ট্রোল নেই, তাই আমরা এসপিআই ক্লক সিগন্যাল (এসসিএলকে) সক্ষম এবং অক্ষম করার জন্য সেই বিটগুলি ব্যবহার করব। যখন পিন 10 কম যায়, আমরা জানি যে আমরা একটি স্টার্ট বিট পেয়েছি, তাই আমরা যোগাযোগের সূচনা শনাক্ত করতে PDLY পতনশীল প্রান্ত আবিষ্কারক ব্যবহার করি। সেই পতনশীল প্রান্ত আবিষ্কারক ঘড়ি DFF0, যা এসসিএলআই সিগন্যালকে এসপিআই ব্লক ঘড়িতে সক্ষম করে।

আমাদের বড রেট প্রতি সেকেন্ডে 9600 বিট, তাই আমাদের এসসিএলকে সময়কাল 1/9600 = 104 μs হওয়া প্রয়োজন। অতএব, আমরা OSC ফ্রিকোয়েন্সি 2MHz এ সেট করেছি এবং CNT0 কে ফ্রিকোয়েন্সি ডিভাইডার হিসাবে ব্যবহার করেছি।

2 MHz-1 = 0.5 μs

(104 μs / 0.5 μs) - 1 = 207

অতএব, আমরা চাই CNT0 কাউন্টার ভ্যালু 207। যাতে আমরা কোন ডেটা মিস না করি তা নিশ্চিত করার জন্য, আমাদের SPI ঘড়িটি অর্ধ ঘড়ির চক্রে বিলম্ব করতে হবে যাতে SPI ব্লকটি সঠিক সময়ে ক্লক করা হয়। আমরা CNT6, 2-বিট LUT1, এবং OSC ব্লকের বহিরাগত ঘড়ি ব্যবহার করে এটি সম্পন্ন করেছি। DNTF0 ক্লক হওয়ার পর CNT6 এর আউটপুট 52 μs পর্যন্ত বেশি হয় না, যা আমাদের 104 SCLs এসসিএলকে সময়ের অর্ধেক। CNT6 উচ্চ হলে 2-বিট LUT1 এবং গেট 2MHz OSC সিগন্যালকে EXT- এ প্রবেশ করতে দেয়। CLK0 ইনপুট, যার আউটপুট CNT0 এর সাথে সংযুক্ত।

ধাপ 2: PWM ইউনিট

PWM ইউনিট
PWM ইউনিট

PWM সংকেত PWM0 এবং একটি সংশ্লিষ্ট ঘড়ি পালস জেনারেটর (CNT8/DLY8) ব্যবহার করে উৎপন্ন হয়। যেহেতু পালস প্রস্থ ব্যবহারকারী-নিয়ন্ত্রণযোগ্য, আমরা ব্যবহারকারীর ডেটা গণনার জন্য FSM0 (যা PWM0 এর সাথে সংযুক্ত হতে পারে) ব্যবহার করি।

SLG46620 এ, 8-বিট FSM1 PWM1 এবং PWM2 এর সাথে ব্যবহার করা যেতে পারে। ব্লুটুথ মডিউল অবশ্যই সংযুক্ত থাকতে হবে, যার মানে SPI সমান্তরাল আউটপুট ব্যবহার করতে হবে। SPI সমান্তরাল আউটপুট বিট 0 থেকে 7 DCMP1, DMCP2, এবং LF OSC CLK এর OUT1 এবং OUT0 এর সাথে মিশে আছে। PWM0 16-বিট FSM0 থেকে তার আউটপুট পায়। অপরিবর্তিত বাম এর ফলে পালস প্রস্থ ওভারলোড হয়। কাউন্টারের মান 8 বিটে সীমাবদ্ধ করার জন্য আরেকটি FSM যোগ করা হয়েছে; FSM1 একটি পয়েন্টার হিসাবে ব্যবহৃত হয় যখন কাউন্টার 0 বা 255 এ পৌঁছায়। FSM0 PWM পালস তৈরি করতে ব্যবহৃত হয়। FSM0 এবং FSM1 অবশ্যই সিঙ্ক্রোনাইজ করতে হবে। যেহেতু উভয় FSM- এর প্রিসেট ক্লক অপশন আছে, CNT1 এবং CNT3 উভয় FSM- তে CLK প্রেরণের জন্য মধ্যস্থতাকারী হিসেবে ব্যবহৃত হয়। দুটি কাউন্টার একই মান সেট করা হয়, যা এই নির্দেশযোগ্য জন্য 25। আমরা এই পাল্টা মান পরিবর্তন করে PWM মান পরিবর্তনের হার পরিবর্তন করতে পারি।

FSM গুলির মান '+' এবং '-' সংকেত দ্বারা বৃদ্ধি এবং হ্রাস পায়, যা SPI প্যারালাল আউটপুট থেকে উদ্ভূত হয়।

ধাপ 3: কন্ট্রোল ইউনিট

নিয়ন্ত্রণ ইউনিট
নিয়ন্ত্রণ ইউনিট

কন্ট্রোল ইউনিটের মধ্যে প্রাপ্ত বাইটটি ব্লুটুথ মডিউল থেকে SPI প্যারালাল আউটপুটে নিয়ে যাওয়া হয় এবং তারপর সংশ্লিষ্ট ফাংশনে প্রেরণ করা হয়। প্রথমে, PWM CS1 এবং PWM CS2 আউটপুটগুলি পরীক্ষা করা হবে যাতে PWM প্যাটার্নটি সক্রিয় হয় বা না। যদি এটি সক্রিয় হয় তবে এটি নির্ধারণ করবে কোন চ্যানেলটি LUT4, LUT6 এবং LUT7 এর মাধ্যমে PWM আউটপুট করতে যাচ্ছে।

LUT9, LUT11, এবং LUT14 অন্য দুটি LEDs এর অবস্থা পরীক্ষা করার জন্য দায়ী। LUT10, LUT12, এবং LUT13 ম্যানুয়াল বোতামটি সক্রিয় কিনা তা পরীক্ষা করে দেখুন। যদি ম্যানুয়াল মোড সক্রিয় থাকে, তাহলে RGB আউটপুটগুলি D0, D1, D2 আউটপুট স্টেট অনুযায়ী কাজ করে, যা প্রতিবার কালার বোতাম টিপে পরিবর্তন করা হয়। এটি CNT9 থেকে আসা ক্রমবর্ধমান প্রান্তের সাথে পরিবর্তিত হয়, যা একটি ক্রমবর্ধমান প্রান্ত ডিবাউন্সার হিসাবে ব্যবহৃত হয়।

পিন 20 একটি ইনপুট হিসাবে কনফিগার করা হয় এবং ম্যানুয়াল এবং ব্লুটুথ নিয়ন্ত্রণের মধ্যে স্যুইচ করতে ব্যবহৃত হয়।

যদি ম্যানুয়াল মোড নিষ্ক্রিয় করা হয় এবং অটো মিক্সার মোড সক্রিয় করা হয়, তাহলে CNT7 থেকে ক্রমবর্ধমান প্রান্তের সাথে প্রতি 500 মিটার রঙ পরিবর্তন হয়। D0 D1 D2 এর জন্য '000' অবস্থা প্রতিরোধ করতে একটি 4-বিট LUT1 ব্যবহার করা হয়, কারণ এই অবস্থাটি অটো মিক্সার মোডের সময় আলো বন্ধ করে দেয়।

যদি ম্যানুয়াল মোড, PWM মোড এবং অটো মিক্সার মোড সক্রিয় না হয় তাহলে লাল, সবুজ এবং নীল SPI কমান্ডগুলি পিন 12, 13 এবং 14 তে প্রবাহিত হয়, যা আউটপুট হিসাবে কনফিগার করা হয় এবং বাহ্যিক RGB LED এর সাথে সংযুক্ত থাকে।

DFF1, DFF2 এবং DFF3 একটি 3-বিট বাইনারি কাউন্টার তৈরিতে ব্যবহৃত হয়। পাল্টা মান CNT7 ডালের সাথে বৃদ্ধি পায় যা অটো মিক্সার মোডে P14 দিয়ে যায়, অথবা ম্যানুয়াল মোডে কালার বোতাম (PIN3) থেকে আসা সংকেত থেকে।

ধাপ 4: অ্যান্ড্রয়েড অ্যাপ্লিকেশন

অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন
অ্যান্ড্রয়েড অ্যাপ্লিকেশন

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

প্রথম বিভাগে, ব্যবহারকারী LED পিন বেছে নেয় যা তারা PWM সিগন্যাল দিয়ে যেতে চায়; PWM সংকেত একবারে শুধুমাত্র একটি পিনে প্রেরণ করা যেতে পারে। নিচের তালিকাটি PWM মোডের সময় অন্য দুটি রং যৌক্তিকভাবে চালু/বন্ধ নিয়ন্ত্রণ করে।

অটো মিক্সার বোতামটি স্বয়ংক্রিয় আলো পরিবর্তনের প্যাটার্ন চালানোর জন্য দায়ী যেখানে আলো প্রতি অর্ধ সেকেন্ডে পরিবর্তিত হবে। MIX বিভাগে দুটি চেকবক্স তালিকা রয়েছে যাতে ব্যবহারকারী সিদ্ধান্ত নিতে পারে যে কোন দুটি রং একসাথে মেশানো হবে।

আমরা এমআইটি অ্যাপ উদ্ভাবক ওয়েবসাইট ব্যবহার করে অ্যাপ্লিকেশনটি তৈরি করেছি। এটি এমন একটি সাইট যা গ্রাফিক্যাল সফটওয়্যার ব্লক ব্যবহার করে পূর্ববর্তী সফ্টওয়্যার অভিজ্ঞতা ছাড়াই অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরির অনুমতি দেয়।

প্রথমে, আমরা পূর্বনির্ধারিত রং প্রদর্শনের জন্য দায়ী বোতামের একটি সেট যোগ করে একটি গ্রাফিক্যাল ইন্টারফেস ডিজাইন করেছি, আমরা দুটি চেক বক্স তালিকাও যুক্ত করেছি এবং প্রতিটি তালিকায় 3 টি উপাদান রয়েছে; প্রতিটি উপাদান তার ব্যক্তিগত বাক্সে বর্ণিত হয়েছে, যেমন চিত্র 5 এ দেখানো হয়েছে।

ইউজার ইন্টারফেসের মধ্যে থাকা বোতামগুলি সফ্টওয়্যার কমান্ডের সাথে সংযুক্ত: অ্যাপটি ব্লুটুথের মাধ্যমে যে সমস্ত কমান্ড পাঠাবে তা বাইট ফর্ম্যাটে থাকবে এবং প্রতিটি বিট একটি নির্দিষ্ট ফাংশনের জন্য দায়ী। টেবিল 1 GreenPAK- এ পাঠানো কমান্ড ফ্রেমের রূপ দেখায়।

প্রথম তিনটি বিট, B0, B1 এবং B2, পূর্বনির্ধারিত রঙের বোতাম দ্বারা সরাসরি নিয়ন্ত্রণ মোডে RGB LEDs এর অবস্থা ধরে রাখবে। সুতরাং, তাদের যে কোনটিতে ক্লিক করার সময়, বাটনের সংশ্লিষ্ট মান পাঠানো হবে, যেমন টেবিল 2 এ দেখানো হয়েছে।

বিট বি 3 এবং বি 4 '+' এবং '-' কমান্ড ধরে রাখে, যা পালস প্রস্থ বৃদ্ধি এবং হ্রাসের জন্য দায়ী। যখন বোতাম টিপলে বিট মান 1 হবে, এবং যখন বোতামটি মুক্তি পাবে তখন বিট মান 0 হবে।

পিডব্লিউএম সিগন্যালটি যে পিন (রঙ) দিয়ে যাবে তা বেছে নেওয়ার জন্য B5 এবং B6 বিট দায়ী: এই বিটগুলির রঙের পদগুলি সারণি 3 এ দেখানো হয়েছে। শেষ বিট, B7, স্বয়ংক্রিয় মিক্সার সক্রিয় করার জন্য দায়ী।

চিত্র 6 এবং চিত্র 7 প্রোগ্রামিং ব্লকগুলির সাথে বোতাম সংযুক্ত করার প্রক্রিয়া প্রদর্শন করে যা পূর্ববর্তী মানগুলি পাঠানোর জন্য দায়ী।

অ্যাপ্লিকেশনটির সম্পূর্ণ নকশা দেখতে, আপনি প্রকল্প ফাইলগুলির সাথে সংযুক্ত ফাইল ".aia" ডাউনলোড করতে পারেন এবং এটি মূল সাইটের মধ্যে খুলতে পারেন।

নীচের চিত্র 8 শীর্ষ স্তরের সার্কিট চিত্র দেখায়।

ধাপ 5: ফলাফল

কন্ট্রোলারটি সফলভাবে পরীক্ষা করা হয়েছিল এবং অন্যান্য বৈশিষ্ট্য সহ রঙের মিশ্রণকে যথাযথভাবে কাজ করার জন্য দেখানো হয়েছিল।

উপসংহার

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

প্রস্তাবিত: