সুচিপত্র:
- ধাপ 1: প্রদত্ত ভিএইচডিএল ফাইলগুলি আমদানি করুন
- ধাপ 2: ভিএইচডিএল শীর্ষ মডিউল ভাঙ্গন
- ধাপ 3: ভিএইচডিএল কিল সুইচ মডিউল ভাঙ্গন
- ধাপ 4: ভিএইচডিএল ফ্লিপ ফ্লপ মডিউলের ভাঙ্গন
- ধাপ 5: ভিএইচডিএল পাইজো বুজার মডিউলের ভাঙ্গন
- ধাপ 6: ভিএইচডিএল সীমাবদ্ধতা ফাইলের ভাঙ্গন
- ধাপ 7: বেস 3 তৈরি করা
- ধাপ 8: বেসিস 3 এ ভিএইচডিএল ফাইলগুলি বাস্তবায়ন করা
- ধাপ 9: বেসিস 3 বোর্ড ব্যবহার করা
- ধাপ 10: দেখান
ভিডিও: একটি ইউনিভার্সাল অফ সুইচের মডেল: 10 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:02
আপনি কি ঘুমাতে যাওয়ার আগে আপনার ঘরের সব বাতি নিভে আছে তা পরীক্ষা করে ক্লান্ত? আপনি কি চান যে আপনি কোন আলোড়ন ছাড়াই একবারে প্রতিটি আলো বন্ধ করতে পারেন? শক্তি এবং সময় সাশ্রয়ের জন্য, আমরা একটি সিস্টেম তৈরি করার সিদ্ধান্ত নিয়েছি যা তাত্ত্বিকভাবে পুরো ঘরটি একবারে বন্ধ করে দিতে পারে।
আমরা কয়েকটি LED এবং একটি বেসিস 3 সার্কিট বোর্ড ব্যবহার করে এই ধারণার প্রমাণ তৈরি করেছি এবং একটি নকশা তৈরি করেছি যা একটি বোতামের চাপ দিয়ে সমস্ত LED গুলিকে নিষ্ক্রিয় করবে। এই মডেলটি প্রকৃত হোম লাইটিং সিস্টেমের দিকেও প্রয়োগ করা যেতে পারে, যদিও এর জন্য প্রদত্ত ভিএইচডিএল ফাইলগুলিতে আরও জটিল তারের এবং পরিবর্তন প্রয়োজন।
ধাপ 1: প্রদত্ত ভিএইচডিএল ফাইলগুলি আমদানি করুন
আমাদের মডেলটি সঠিকভাবে কাজ করার জন্য আপনাকে সফটওয়্যারটি ডাউনলোড করতে হবে যা বেসিস 3 বোর্ডকে তার নির্দেশনা দেয়।
প্রথমে আপনাকে হার্ডওয়্যারে vhdl ফাইলগুলি বাস্তবায়নের জন্য একটি সংশ্লেষণ সরঞ্জাম ডাউনলোড করতে হবে। যদি আপনি নিশ্চিত হতে চান যে সমস্ত কোড সম্পূর্ণরূপে আমাদের নকশার প্রতিলিপি তৈরি করবে কোনো পরিবর্তন ছাড়াই, আমরা সুপারিশ করি যে আপনি ভিভাদো 2016.2 ব্যবহার করুন। ভিভাডো ইনস্টল করার পরে আপনি একটি প্রকল্প তৈরি করতে পারেন এবং আমাদের সোর্স ফাইল ডাউনলোড করতে পারেন। আপনার প্রকল্পের উৎস হিসাবে তাদের যোগ করুন, সীমাবদ্ধতা ফাইল যোগ করতে ভুলবেন না!
পরবর্তীতে আমরা ব্যাখ্যা করব যে প্রতিটি সোর্স ফাইল কি করে। আপনি যদি ডিভাইসের ভৌত নির্মাণে যেতে চান তবে 2 থেকে 6 ধাপগুলি এড়িয়ে যান।
ধাপ 2: ভিএইচডিএল শীর্ষ মডিউল ভাঙ্গন
প্রকল্পের শীর্ষ মডিউল হল ব্যবহৃত হার্ডওয়্যারের সাথে সমস্ত পৃথক উপাদান মডিউলগুলিকে সংযুক্ত করে। আপনি দেখতে পাচ্ছেন যে আমাদের কাছে কিলসুইচ এবং বুজার কন্ট্রোল মডিউলগুলি উপরের উপাদান হিসাবে সংজ্ঞায়িত করা হয়েছে।
নিচের অংশটি উল্লেখ করে কিভাবে এই মডিউলগুলো একসাথে সংযুক্ত থাকে। আমরা বোর্ডে চারটি এলইডি সংযুক্ত করেছি এবং সেগুলি কিলসুইচ মডিউল dev0 দিয়ে dev3 এর সাথে যুক্ত করেছি। আমাদের চারটি কিলসুইচ মডিউল সংজ্ঞায়িত আছে কারণ প্রতিটি সংযুক্ত LED এর অবস্থা পরিচালনা করার জন্য আমাদের একটি প্রয়োজন। এই মডিউলগুলির প্রতিটি ঘড়ি এবং বোতাম সংকেত ব্যবহার করে যা আমরা শীর্ষ মডিউল সংজ্ঞায় তৈরি করেছি সেইসাথে তাদের নিজ নিজ ইনপুট সুইচ এবং আউটপুট ডিভাইস সংকেত।
সার্বজনীন বন্ধ বোতামটি চাপলে নীচে থাকা বুজার নিয়ন্ত্রণ মডিউলটি বজারটি সক্রিয় করে। আপনি দেখতে পাচ্ছেন যে বজার নিয়ন্ত্রণ মডিউলটি ইনপুট হিসাবে ঘড়ি এবং বোতাম সংকেতটি পাস করেছে। এটি সেই অনুযায়ী নিয়ন্ত্রণ করার জন্য ফিজিক্যাল বুজার আউটপুট পিনও পাস করা হয়।
ধাপ 3: ভিএইচডিএল কিল সুইচ মডিউল ভাঙ্গন
কিল সুইচ হল সার্বজনীন বন্ধ বোতাম, এবং মডিউলটি মূলত এটিকে অন্যান্য সার্কিট উপাদানগুলির সাথে সংযুক্ত করার জন্য উদ্বিগ্ন যাতে এটি চাপলে সমস্ত লাইট বন্ধ হয়ে যায়।
যদিও উপরের মডিউলটি সফটওয়্যারের সাথে শারীরিক হার্ডওয়্যার সংযুক্ত করে, কিলসুইচ মডিউল প্রতিটি ডিভাইসের মূল যুক্তি পরিচালনা করে। মডিউল ঘড়ি সংকেত, সার্বজনীন বন্ধ বোতাম এবং ডিভাইস টগল সুইচের জন্য ইনপুট নেয়। বিনিময়ে এটি ডিভাইসের পিনের অবস্থা নিয়ন্ত্রণ করে যা এটি সংযুক্ত।
কোডের আর্কিটেকচার বিভাগে আমরা দেখি যে মেমরি সংরক্ষণের জন্য এটি dFlipFlop মডিউলের উপর নির্ভরশীলতা রয়েছে। আপনি আরও দেখতে পারেন যে আমরা চারটি সিগন্যাল ঘোষণা করেছি যা ফ্লিপ ফ্লপের সাথে সংযোগ স্থাপনের পাশাপাশি আমাদের যুক্তি বিবৃতি বাস্তবায়নের জন্য ব্যবহার করা হবে। কোডের আচরণগত বিভাগের মধ্যে আমরা dFlipFlop মডিউলের একটি উদাহরণ তৈরি করেছি এবং আমাদের I/O সংকেতগুলি পোর্টে বরাদ্দ করেছি।
এখান থেকে আমাদের যুক্তির মূল অংশটি invertState এবং isDevOn এর সংকেত মানগুলির মধ্যে রয়েছে। ডিভাইসের জন্য আমাদের যৌক্তিক ভিত্তি নিম্নরূপ: "যে কোন সময় সুইচ নিক্ষেপ করা হলে আলো চালু/বন্ধ অবস্থায় থাকবে। যে কোন সময় বোতাম টিপলে, এবং LED বর্তমানে চালু থাকলে, LED তার অবস্থা বন্ধ করে দেবে। " এই দুটি বিবৃতি থেকে আমরা ব্যাখ্যা করতে পারি যে LED এর অবস্থা সুইচের XOR এবং আমাদের মেমরির উপাদান হওয়া উচিত। এটি isDevOn সিগন্যালে প্রয়োগ করা যেতে পারে। মেমরি এলিমেন্টের জন্য LED শর্ত আমাদের invertState সংকেত দ্বারা পরিচালিত হয়। যদি LED চালু থাকে এবং বোতামটি টিপে থাকে, আমাদের মেমরি উপাদানটি আপডেট হবে এবং তার অবস্থা উল্টে দেবে। এটি তারপর LED এর অবস্থাও উল্টে দেয়।
ধাপ 4: ভিএইচডিএল ফ্লিপ ফ্লপ মডিউলের ভাঙ্গন
আমাদের নকশায় একটি সমস্যা ছিল যে অফ সুইচ ব্যবহার করার পরে, পূর্বে যে লাইটগুলি ছিল সেগুলি আবার অবস্থানে ফিরে আসার জন্য দুবার ফ্লিপ করতে হতে পারে। এটি সময়ের সাথে সাথে মানুষের জন্য বেশ অসুবিধা হবে। আমরা আমাদের নকশায় "ফ্লিপ ফ্লপ", তথ্য সঞ্চয় করতে সক্ষম একটি সার্কিট উপাদান অন্তর্ভুক্ত করে এই অসুবিধা এড়াতে পেরেছি। এখন, সিস্টেমটি মনে করে যে একটি লাইট সুইচ আগে চালু ছিল কিনা যাতে এটি আবার উল্টানো হলে এটি তার প্রাথমিক অবস্থান নির্বিশেষে চালু হবে।
ভিএইচডিএল কোড আমাদের সার্কিট ডিজাইনের মধ্যে একটি উপাদান হিসেবে ফ্লিপ ফ্লপ তৈরির জন্য if এবং else স্টেটমেন্ট ব্যবহার করে। এটি নিশ্চিত করে যে যখন ঘড়ি সংকেত নিম্ন থেকে উচ্চ অবস্থায় রূপান্তরিত হয়, যখন লাইটব্লব চালু থাকে এবং যখন অফ সুইচটি ধাক্কা দেওয়া হয়, ফ্লিপ ফ্লপ আউটপুট তার ইনপুটকে ওভাররাইট করে। যখন ইনপুট ওভাররাইট হয় তখন ফ্লিপ ফ্লপ উল্টে যায়।
ধাপ 5: ভিএইচডিএল পাইজো বুজার মডিউলের ভাঙ্গন
এই ফাইলটি যতদূর হার্ডওয়্যার ডিজাইনের বিষয়ে উদ্বিগ্ন, তবে এটি শীর্ষ মডিউল এবং সীমাবদ্ধতা ফাইলগুলিকে সহজে চালানোর জন্য অপরিহার্য। যদি আপনি Piezo buzzer ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে এই ফাইলটি ডাউনলোড করুন, কিন্তু Basys 3 বোর্ডে বজারটি সংযুক্ত করবেন না।
Piezo buzzer, নিষ্ক্রিয় বোতাম টিপে, একটি দুটি নোট টোন বাজাবে যা ব্যবহারকারীকে শ্রবণীয় প্রতিক্রিয়া প্রদান করবে যে বোতামটি ধাক্কা দেওয়া হয়েছে। আমরা প্রক্রিয়াগত কাঠামোর মধ্যে বিবৃতিগুলির একটি সিরিজের মাধ্যমে ভিএইচডিএলে এই আচরণগতভাবে প্রয়োগ করেছি। ঘড়ির কত পরিবর্তন ঘটেছে তার হিসাব রাখতে আমরা একটি পূর্ণসংখ্যা মান তৈরি করে শুরু করেছি। একবার প্রক্রিয়া শুরু হলে প্রোগ্রামটি প্রথম অর্ধেক সেকেন্ড ব্যয় করে (0 থেকে 50 মিলিয়ন ঘড়ি টিক) 440 হার্টজ এ একটি নোট আউটপুট করে। এটি একটি মডুলো ফাংশন সহ 227272 ঘড়ির টিকের প্রতিটি এমনকি একাধিক পাইজো বুজার সিগন্যালকে উল্টে দিয়ে সম্পন্ন করা হয়। এই সংখ্যাটি বোর্ডের ঘড়ি সংকেত (100 MHz) কে কাঙ্ক্ষিত ফ্রিকোয়েন্সি (400 Hz) দ্বারা ভাগ করার ফলাফল। দ্বিতীয়ার্ধের এক সেকেন্ডের সময় (50 থেকে 100 মিলিয়ন ঘড়ির টিক) বোর্ড আগের মত একই পদ্ধতির মাধ্যমে 349.2 হার্টজ এ একটি F নোট বের করে। এক সেকেন্ডের পরে প্রোগ্রামটি ঘড়ির পরিবর্তনশীলকে আর বাড়ায় না এবং পাইজো বুজার থেকে কিছু আউটপুট করা বন্ধ করে দেয়। সার্বজনীন বন্ধ বোতাম টিপলে এই সংখ্যাটি 0 তে পুনরায় সেট হয়, শব্দ চক্রটি পুনরায় চালু হয়।
ধাপ 6: ভিএইচডিএল সীমাবদ্ধতা ফাইলের ভাঙ্গন
সীমাবদ্ধতা ফাইল ভিভাদোকে বলে যে আমরা বেসিস 3 বোর্ডে কোন ডিভাইসগুলি ব্যবহার করছি। এটি আমাদের কোডে ডিভাইসগুলিকে দেওয়া নামগুলির সাথে ভিভাদোও সরবরাহ করে। ভিভাদোর এই তথ্য দরকার তাই এটি জানে কিভাবে আমাদের যুক্তি উপাদানগুলিকে ফিজিক্যাল হার্ডওয়্যারের সাথে সংযুক্ত করতে হয়। সীমাবদ্ধতা ফাইলে প্রচুর পরিমাণে মন্তব্য-আউট (অব্যবহৃত) কোড রয়েছে। কোডের এই লাইনগুলি বোর্ডে থাকা ডিভাইসগুলিকে উল্লেখ করে যা আমরা ব্যবহার করছি না।
আমরা যে ডিভাইসগুলি ব্যবহার করছি তাতে বোর্ডে V17, V16, W16, এবং W1 লেবেলযুক্ত চারটি ইনপুট সুইচ রয়েছে। আমরা U18 লেবেলযুক্ত সর্বজনীন অফ বোতামটিও ব্যবহার করছি। আমাদের চারটি সংযুক্ত LED এর আউটপুট পিন হল JB4, JB10, JC4, এবং JC10। আমাদের পাইজো বুজারের জন্য আমরা আউটপুট পিন JA9 ব্যবহার করছি।
যেমন আমরা শীর্ষ মডিউল ভাঙ্গনে বলেছি, যদি আপনি বোর্ডে অতিরিক্ত LEDs বা অন্যান্য ডিভাইস যোগ করতে চান তবে আপনাকে sw এবং dev সংকেতগুলির সুযোগ বৃদ্ধি করতে হবে, আরও কিলসুইচ মডিউল যুক্ত করতে হবে এবং তাদের একসাথে সংযুক্ত করতে হবে। তারপরে আপনাকে সেই পরিবর্তনশীল নামগুলিকে সীমাবদ্ধতা ফাইলের মাধ্যমে ডিভাইস হার্ডওয়্যারের সাথে সংযুক্ত করতে হবে। আপনি যে পিনগুলি ব্যবহার করতে চান তার সাথে যুক্ত কোডের লাইনগুলিকে অসম্পূর্ণ (পুনরায় সক্ষম) করে এটি করা যেতে পারে তারপর শীর্ষ মডিউলে এর সংশ্লিষ্ট ভেরিয়েবলের নাম যুক্ত করুন। এর জন্য সঠিক সিনট্যাক্স আমরা যে ডিভাইসগুলি ব্যবহার করছি সেগুলি থেকে অনুলিপি করা যেতে পারে। বোর্ডে আপনি যে পিনের ব্যবহার করতে চান তার নাম জানতে Baasys 3 রেফারেন্স গাইড দেখুন এখানে।
ধাপ 7: বেস 3 তৈরি করা
আপনাকে আপনার LED গুলিকে সঠিক I/O পোর্টে বসাতে হবে। যদি আপনি পাইজো বুজার সংযুক্ত করতে বেছে নিয়েছেন, তাহলে আপনাকে এটি সঠিক I/O পোর্টের সাথে সংযুক্ত করতে হবে।
যখন বোর্ড প্রস্তুত হয়, এটি আপনার কম্পিউটারে USB তারের মাধ্যমে প্লাগ করুন।
ধাপ 8: বেসিস 3 এ ভিএইচডিএল ফাইলগুলি বাস্তবায়ন করা
এখন যেহেতু আপনার বোর্ড প্রস্তুত এবং আপনার কোড শেষ, আপনি অবশেষে মডেলটি একসাথে রাখতে পারেন।
একবার আপনার ভিভাদোতে আপনার প্রকল্পটি সেট আপ হয়ে গেলে, বোর্ডে আপলোড হওয়ার আগে কোডটি কম্পাইল করার জন্য আপনাকে "জেনারেট বিটস্ট্রিম" বোতামটি ক্লিক করতে হবে। আপনি যদি এই সময়ে একটি ত্রুটির বার্তা পান, তাহলে আপনাকে আপনার কোডটি আমাদের সাথে হুবহু মিলছে কিনা তা পরীক্ষা করতে হবে। যখন আমি ঠিক বলি, তখন আমি অর্ধকোণ বা যে ধরনের বন্ধনী ব্যবহার করা হচ্ছে তা বোঝাতে চাই। একবার আপনার বিটস্ট্রিম সফলভাবে লেখা হয়ে গেলে, ভিভাদোর মধ্যে হার্ডওয়্যার ম্যানেজারের কাছে যান এবং "ওপেন টার্গেট" বোতামে ক্লিক করুন, তারপর অবিলম্বে "প্রোগ্রাম ডিভাইস" এ ক্লিক করুন। আপনার বেসিস 3 বোর্ড এখন সম্পূর্ণরূপে কার্যকরী হওয়া উচিত।
ধাপ 9: বেসিস 3 বোর্ড ব্যবহার করা
এখন যেহেতু Basys 3 বোর্ড চালু আছে এবং আমাদের মডেলকে প্রতিনিধিত্ব করার জন্য প্রোগ্রাম করা হয়েছে, আপনাকে এটি কিভাবে ব্যবহার করতে হবে তা জানতে হবে।
ডানদিকে সবচেয়ে দূরে চারটি সুইচগুলির মধ্যে একটি LED এর নিয়ন্ত্রণ করে, সেগুলিকে ফ্লিক করলে LED চালু বা বন্ধ হয়ে যাবে। যদি LED সক্রিয় না হয়, তাহলে দেখুন যে আপনি সঠিক I/O পোর্টে প্লাগ করেছেন এবং আপনার LED প্রথম স্থানে কার্যকরী।
যখন আপনি সমস্ত LED গুলি একসাথে নিষ্ক্রিয় করতে চান, তখন আপনাকে অবশ্যই উপরে প্রদর্শিত পাঁচটি বোতামের সেটের মধ্যের বোতামটি চাপতে হবে।
ধাপ 10: দেখান
মডেলটি একটি পরিচ্ছন্ন সামান্য নতুনত্ব হিসাবে কাজ করে যা আপনি আপনার বন্ধু এবং পরিবারের সামনে প্রদর্শন করতে পারেন। এটি তাত্ত্বিকভাবে আপনার বাড়ির বৈদ্যুতিক ব্যবস্থায় সার্বজনীন অফ সুইচ বাস্তবায়নের জন্যও ব্যবহার করা যেতে পারে, যদি আপনি LED এর পরিবর্তে আপনার লাইটের দিকে নিয়ে যান। যদিও এটি সম্ভব, তবুও আমাদেরকে এর বিরুদ্ধে পরামর্শ দিতে হবে। যদি আপনি একজন ইলেক্ট্রিশিয়ানের সাহায্য ছাড়াই পুনরায় সংযোগের চেষ্টা করেন তাহলে নিজের বা আপনার বাড়ির মারাত্মক ক্ষতি করার সম্ভাবনা রয়েছে।
প্রস্তাবিত:
একটি 'ইউনিভার্সাল' ঘড়ি: 10 টি ধাপ (ছবি সহ)
একটি 'ইউনিভার্সাল' ক্লক: এই ঘড়িটি বিশ্বের ২ time টি টাইম জোনে সময় দেখাতে পারে; এই পারফরম্যান্সটি অর্জন করা হয়েছে ধন্যবাদ ঘড়ির মৌলিক উপাদানগুলি দেখানো অঙ্কনে উপস্থাপিত বিন্যাসের জন্য।
একটি সেফিড ভেরিয়েবল স্টারের একটি সঠিক মডেল: 5 টি ধাপ (ছবি সহ)
একটি সেফিড ভেরিয়েবল স্টারের একটি সঠিক মডেল: মহাকাশ বড়। অনেক বড়। জ্যোতির্বিজ্ঞানে তাই, কেউ বলতে পারে। এই প্রকল্পে এর কোন প্রভাব নেই, আমি শুধু শ্লেষ ব্যবহার করতে চেয়েছিলাম এটা কোন আশ্চর্যের বিষয় নয় যে রাতের আকাশে অনেক তারা রয়েছে। যাইহোক, এটি এমন কিছু লোককে অবাক করে দিতে পারে যারা রিয়াতে নতুন
NodeMCU দিয়ে একটি ইউনিভার্সাল রিমোট তৈরি করা: 7 টি ধাপ
নোডএমসিইউ দিয়ে একটি ইউনিভার্সাল রিমোট তৈরি করা: এই প্রকল্পে, আমরা ক্লোনিং এবং ইনফ্রারেড সিগন্যাল পাঠাতে সক্ষম একটি সার্বজনীন রিমোট কন্ট্রোল তৈরি করব। এই সমস্ত প্রক্রিয়া নিয়ন্ত্রণের জন্য একটি ওয়েব ইন্টারফেস ব্যবহার করা হবে। একটি ইনফ্রারেড ফটোরিসেপ্টরের সাথে এক NodeMCU ক্লোন করার জন্য দায়ী থাকবে
কিভাবে একটি Arduino এবং DHT11 সেন্সর দিয়ে একটি মডেল Cubesat তৈরি করবেন: 7 টি ধাপ
কিভাবে একটি Arduino এবং DHT11 সেন্সর দিয়ে একটি মডেল কিউবস্যাট তৈরি করবেন: আমাদের প্রকল্পের লক্ষ্য হল একটি কিউবস্যাট তৈরি করা এবং একটি Arduino তৈরি করা যা মঙ্গলের আর্দ্রতা এবং তাপমাত্রা নির্ধারণ করতে পারে।-ট্যানার
একটি পাওয়ার সুইচের জন্য চমৎকার এবং সস্তা ঘের: 4 টি ধাপ (ছবি সহ)
একটি পাওয়ার সুইচের জন্য চমৎকার এবং সস্তা সংযোজন: বৈদ্যুতিক যন্ত্রাংশগুলি উচিত: - কেবল কাজ নয়, - দেখতে সত্যিই সুন্দর (WAF - নারী স্বীকৃতি ফ্যাক্টর!) - সস্তা - কম কাজ … আমি কেনাকাটা করতে গিয়েছিলাম … যখন আপনি জিজ্ঞাসা করতে চান আমি: " এটা কিভাবে তারের? এবং কিভাবে এটি arduino, রাস্পবেরি … " তারপর, এটা