সুচিপত্র:
- ধাপ 1: এই প্রকল্পে ব্যবহৃত জিনিসগুলি
- পদক্ষেপ 2: হার্ডওয়্যার সংযোগ
- ধাপ 3: সফটওয়্যার প্রোগ্রামিং
- ধাপ 4: অপারেশন
ভিডিও: ক্রিসমাস মিউজিক চিয়ার লাইট: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
শুভ ক্রিসমাস! আপনি কি একটি ক্রিসমাস ট্রি রাখতে চান যা আপনার সাথে যোগাযোগ করতে পারে?
ধাপ 1: এই প্রকল্পে ব্যবহৃত জিনিসগুলি
হার্ডওয়্যার উপাদান
- Seeeduino V4.2
- বেস শিল্ড V2
- গ্রোভ - অ্যাডজাস্টেবল পিআইআর মোশন সেন্সর
- Grove - Loudness Sensor
- গ্রোভ - WS2813 RGB LED স্ট্রিপ ওয়াটারপ্রুফ - 60 LED/m - 1m
সফটওয়্যার অ্যাপ এবং অনলাইন সেবা
Arduino IDE
পদক্ষেপ 2: হার্ডওয়্যার সংযোগ
পিআইআর সেন্সর, লাউডনেস সেন্সর এবং এলইডি স্ট্রিপকে বেস শিল্ডের পোর্ট D2, A0 এবং D6 থেকে আলাদাভাবে সংযুক্ত করুন। সিডুইনো থেকে বেস শিল্ড প্লাগ করুন, সব শেষ।
ধাপ 3: সফটওয়্যার প্রোগ্রামিং
প্রোগ্রামিং করার আগে নিচের লাইব্রেরিগুলি ইনস্টল করতে হবে, অনুগ্রহ করে এগুলি ডাউনলোড করুন এবং আপনার Arduino IDE এ ম্যানুয়ালি আমদানি করুন:
- Led_Strip
- MsTimer2
- Arduino_Vector
কোডটি আরও সংক্ষিপ্ত করার জন্য, আমরা এটি প্যাকেজ করেছি। চিয়ারলাইট ক্লাস এই প্রকল্পের আবেদন শ্রেণী।
ক্লাস অ্যাপ্লিকেশন:: চিয়ারলাইট
: public application:: interface:: IApplication {public: void setup (void); অকার্যকর লুপ (অকার্যকর); অকার্যকর setPIRSensorPin (uint8_t pin); অকার্যকর setLoudnessSensorPin (uint8_t পিন); অকার্যকর পরিমাপ সেন্সর (অকার্যকর); অকার্যকর পরিবর্তন অ্যানিমেশন (অকার্যকর * আর্গ); অকার্যকর পরিবর্তন গতি (শূন্য * args); অকার্যকর পরিবর্তন রঙ (অকার্যকর * আর্গ); স্ট্যাটিক অ্যাপ্লিকেশন:: চিয়ারলাইট * getInstance (অকার্যকর); সুরক্ষিত: ড্রাইভার:: LEDStrip _ledStrip; ড্রাইভার:: PIRSensor _pirSensor; ড্রাইভার:: LoudnessSensor _loudnessSensor; uint8_t _ অ্যানিমেশন; মিডলওয়্যার:: প্রতিনিধি _ সনাক্তকৃত প্রতিনিধি; মিডলওয়্যার:: প্রতিনিধি _absoluteLoudnessDelegate; middleware:: প্রতিনিধি _relativeLoudnessDelegate; চিয়ারলাইট (অকার্যকর); স্ট্যাটিক অ্যাপ্লিকেশন:: চিয়ারলাইট _ ইন্সট্যান্স; };
চিয়ারলাইট ক্লাসটি সিঙ্গেলটন প্যাটার্নস দ্বারা ডিজাইন করা হয়েছিল, যার অর্থ এটির জন্য কেবলমাত্র একটি উদাহরণ রয়েছে, আপনি সেই উদাহরণে চিয়ারলাইট:: getInstance () কল করতে পারেন। যদি আপনার সেন্সরের সংযোগ হার্ডওয়্যার সংযোগের সাথে পার্থক্য করে, তাহলে আপনি setPIRSensorPin () এবং setLoudnessSensorPin () পদ্ধতিতে কল করে তাদের পরিবর্তন করতে পারেন।
আমরা সেন্সরকে সময়মত পরিমাপ করার জন্য টাইমার ইন্টারাপ্টে কল সেন্সর () পদ্ধতিতে কল করার সুপারিশ করি, কিন্তু কল এঞ্জিমেশন (), চেঞ্জ স্পিড () অথবা চেঞ্জ কালার () পদ্ধতিগুলি ম্যানুয়ালি প্রয়োজন হয় না। সেন্সর পরিমাপ করার সময় তাদের প্রতিনিধিদের মাধ্যমে ডাকা হবে।
একজন প্রতিনিধি কি?
আমরা সবাই জানি, আমরা একটি ফাংশন পয়েন্টার ঘোষণা করতে পারি এবং এটিকে সি -তে একটি ফাংশন নির্দেশ করতে পারি:
অকার্যকর func1 (অকার্যকর);
অকার্যকর (*pFunc) (অকার্যকর) = func1;
এবং এটি যে ফাংশনটি নির্দেশ করেছে তাকে কল করতে এটি ব্যবহার করুন
pFunc ();
কিন্তু C ++ এ পার্থক্য আছে, যদি আপনি নীচের কোডটি কম্পাইল করার চেষ্টা করেন:
শ্রেণীকক্ষে {
পাবলিক: অকার্যকর func1 (অকার্যকর); }; অকার্যকর (*pFunc) (অকার্যকর) = & A:: func1;
কম্পাইলার একটি টাইপ রূপান্তর ত্রুটি রিপোর্ট করবে, এখানে সঠিক উদাহরণ:
অকার্যকর (A::*pFunc) (অকার্যকর) = & A:: func1;
যখন আমরা সেই পদ্ধতিতে কল করার জন্য এটি ব্যবহার করার চেষ্টা করি, আবার ত্রুটি। সেই ত্রুটির কারণ হল যে একটি বস্তু-পদ্ধতি অবশ্যই একটি বস্তু দ্বারা আহ্বান করা উচিত। তাই আমরা এটিকে কল করার জন্য একটি বস্তু তৈরি করি:
ক a;
a।*pFunc ();
এবার কোন সমস্যা নেই। সুতরাং Delegate.h এ প্রতিনিধি শ্রেণী আছে।
টেমপ্লেট
class middleware:: Delegate: public middleware:: interface:: IDelegate {public: Delegate (T *object, void (T:: *method) (void *)); void invoke (void * args); সুরক্ষিত: T * _object; অকার্যকর (টি:: *_ পদ্ধতি) (শূন্য *); }; টেমপ্লেট ইনলাইন মিডলওয়্যার:: প্রতিনিধি:: প্রতিনিধি (টি *বস্তু, অকার্যকর (টি:: *পদ্ধতি) (অকার্যকর)): _object (অবজেক্ট), _মেথড (পদ্ধতি) {} টেমপ্লেট ইনলাইন অকার্যকর মিডলওয়্যার:: প্রতিনিধি:: আহ্বান (void * args) {(_object-> * _ method) (args); }
যেহেতু ডেলিগেট ক্লাস একটি টেমপ্লেট ক্লাস, যার মানে ডেলিগেট ডেলিগেটের পার্থক্য, কিভাবে পয়েন্টার দ্বারা তাদের নির্দেশ করা যায় একই ধরনের? উত্তর হল ইন্টারফেস, তাই IDelegate.h এ IDelegate ইন্টারফেস আছে।
class middleware:: interface:: IDelegate {
সর্বজনীন: ভার্চুয়াল অকার্যকর আহ্বান (শূন্য * আর্গ) = 0; };
পিআইআর সেন্সর এবং লাউডনেস সেন্সরের ক্লাসে, _delegates নামে একটি ভেরিয়েবল আছে যা প্রতিনিধিদের পয়েন্টার সংরক্ষণ করতে ব্যবহৃত হয়, এবং _delegates- এ সমস্ত প্রতিনিধিদের আহ্বান করার জন্য invokeAllDelegates () নামে একটি পদ্ধতি ব্যবহার করা হয়, এটি পরিমাপ () পদ্ধতিতে বলা হবে।
দ্রষ্টব্য: প্রতিনিধি পদ্ধতি, যেমন changeAnimation (), changeSpeed () এবং changeColor () কে টাইমার 2 ইন্টারাপ্টে বলা হবে, তাই এতে বিলম্ব () বা অন্য ইন্টারাপ্ট-ভিত্তিক ফাংশন ব্যবহার করবেন না।
প্রস্তাবিত:
ক্রিসমাস ট্রি শ্বাস - Arduino ক্রিসমাস লাইট কন্ট্রোলার: 4 টি ধাপ
ক্রিসমাস ট্রি শ্বাস-Arduino ক্রিসমাস লাইট কন্ট্রোলার: এটা ভাল খবর নয় যে ক্রিসমাসের আগে আমার 9 ফুটের প্রি-লিট কৃত্রিম ক্রিসমাস ট্রি-এর কন্ট্রোল বক্সটি ভেঙে গেছে-এবং নির্মাতা প্রতিস্থাপনের যন্ত্রাংশ সরবরাহ করে না। এই অস্পষ্টতা দেখায় কিভাবে আপনার নিজের LED লাইট ড্রাইভার এবং কন্ট্রোলারকে আর ব্যবহার করতে হয়
হল ইফেক্ট সেন্সর: ক্রিসমাস মিউজিক বক্স: Ste টি ধাপ
হল ইফেক্ট সেন্সর: ক্রিসমাস মিউজিক বক্স: এটি একটি মিউজিক বক্স যা একবার খোলার পর মিউজিক বাজায় (ভিডিওটি দেখুন!)। আপনার বিশেষ কারও জন্য আপনার উপহার মোড়ানোর এটি দুর্দান্ত, বিশেষ এবং অনন্য উপায়! চৌম্বক ক্ষেত্রের অভাবে theাকনা খোলা হয়েছে কিনা তা পরীক্ষা করার জন্য এটি হল ইফেক্ট সেন্সর ব্যবহার করে
মিউজিক রিঅ্যাক্টিভ লাইট -- কিভাবে ডেস্কটপকে অসাধারণ বানানোর জন্য সুপার সিম্পল মিউজিক রিঅ্যাক্টিভ লাইট তৈরি করবেন ।: ৫ টি ধাপ (ছবি সহ)
মিউজিক রিঅ্যাক্টিভ লাইট || কিভাবে ডেস্কটপ আউসুম তৈরির জন্য সুপার সিম্পল মিউজিক রিঅ্যাক্টিভ লাইট তৈরি করা যায়।: হায় হোয়াটস আপ, আজ আমরা একটি খুব আকর্ষণীয় প্রজেক্ট তৈরি করব। আজ আমরা মিউজিক রিঅ্যাক্টিভ লাইট তৈরি করতে যাচ্ছি। বেস যা আসলে কম ফ্রিকোয়েন্সি অডিও সংকেত। এটি তৈরি করা খুবই সহজ। আমরা করব
Arduino ক্রিসমাস চিয়ার !: 5 ধাপ (ছবি সহ)
Arduino ক্রিসমাস উল্লাস! এই প্রকল্পে, আমরা একটি ক্রিসমাস ট্রি তৈরি করতে যাচ্ছি যা বিভিন্ন ক্রিসমাসের গান গাইতে পারে এবং মু এর সাথে মিলিয়ে আলোকিত করতে পারে
ক্রিসমাস-বক্স: Arduino/ioBridge ইন্টারনেট নিয়ন্ত্রিত ক্রিসমাস লাইট এবং মিউজিক শো: 7 টি ধাপ
ক্রিসমাস-বক্স: আরডুইনো/আইওব্রিজ ইন্টারনেট নিয়ন্ত্রিত ক্রিসমাস লাইটস এবং মিউজিক শো: আমার ক্রিসমাস-বক্স প্রজেক্টে রয়েছে একটি ইন্টারনেট নিয়ন্ত্রিত ক্রিসমাস লাইট এবং মিউজিক শো। একটি ক্রিসমাস গান অন-লাইন অনুরোধ করা যেতে পারে যা তারপর একটি সারিতে রাখা হয় এবং যেভাবে এটি অনুরোধ করা হয়েছিল সেভাবে বাজানো হয়। সঙ্গীত একটি এফএম স্ট্যাটে প্রেরণ করা হয়