সুচিপত্র:

হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল কিভাবে পরিমাপ করা যায়, একই সাথে মাইক্রোকন্ট্রোলার ব্যবহার করে।: 4 টি ধাপ
হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল কিভাবে পরিমাপ করা যায়, একই সাথে মাইক্রোকন্ট্রোলার ব্যবহার করে।: 4 টি ধাপ

ভিডিও: হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল কিভাবে পরিমাপ করা যায়, একই সাথে মাইক্রোকন্ট্রোলার ব্যবহার করে।: 4 টি ধাপ

ভিডিও: হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল কিভাবে পরিমাপ করা যায়, একই সাথে মাইক্রোকন্ট্রোলার ব্যবহার করে।: 4 টি ধাপ
ভিডিও: Battery less power supply and battery life calculation for embedded devices II 2024, নভেম্বর
Anonim
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।
কিভাবে মাইক্রোকন্ট্রোলার ব্যবহার করে একই সাথে হাই ফ্রিকোয়েন্সি এবং ডিউটি সাইকেল পরিমাপ করা যায়।

আমি জানি আপনি কি ভাবছেন: "হু? সিগন্যাল ফ্রিকোয়েন্সি পরিমাপ করার জন্য মাইক্রোকন্ট্রোলারগুলি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে অনেকগুলি নির্দেশাবলী রয়েছে। ইয়াওন।" তবে অপেক্ষা করুন, এর মধ্যে একটি নতুনত্ব রয়েছে: আমি একটি মাইক্রোকন্ট্রোলার (এমসিইউ) বহন করতে পারার চেয়ে অনেক বেশি ফ্রিকোয়েন্সি পরিমাপের একটি পদ্ধতি এবং সংকেতের দায়িত্ব চক্র বর্ণনা করি - সব একই সাথে!

ডিভাইসের ফ্রিকোয়েন্সি পরিসীমা ~ 43 Hz থেকে ~ 450 kHz পর্যন্ত বিস্তৃত, যখন শুল্ক চক্র 1% থেকে 99% পর্যন্ত।

আমাকে "সহ্য করতে পারে" অংশটি ব্যাখ্যা করতে দিন: একটি MCU একটি বর্গ তরঙ্গ সংকেত, T এর পরিমাপের সময়, পরবর্তী দুটি ট্রানজিশন ইভেন্টের মধ্যে সময় ট্র্যাক করে। উদাহরণস্বরূপ, লো-টু-হাই ভোল্টেজ তার I/O পিনের একটিতে ঝাঁপ দেয়। এটি তার নিজস্ব অভ্যন্তরীণ ঘড়ির ডালের সংখ্যা গণনা করে এটি করে। নিরীহভাবে, পরিমাপ করা ফ্রিকোয়েন্সিগুলির উপরের সীমাটি Nyqvist-Shannon স্যাম্পলিং তত্ত্বকে মেনে চলতে হবে; অর্থাৎ, এটি মোটামুটি MCU- র ঘড়ির ফ্রিকোয়েন্সি অর্ধেকের সমান হবে। বাস্তবে সীমা অনেক, অনেক কম, কারণ MCU কে অবশ্যই বাধাগুলি পরিচালনা করতে, ভেরিয়েবলগুলি সংরক্ষণ করতে, গাণিতিক ক্রিয়াকলাপগুলি করতে, ফলাফল প্রদর্শন করতে ইত্যাদি করতে হবে প্রায় 106. অতএব, এই ক্ষেত্রে পরিমাপযোগ্য ফ্রিকোয়েন্সি পরিসরের উপরের সীমা 48, 000 /212 /2 = 226.4 kHz হবে।

যখন MCU সিগন্যালের সময় পরিমাপ করে, এটি তার পালস প্রস্থও নির্ধারণ করতে পারে, P: সিগন্যাল ভোল্টেজের সময় বেশি থাকে। অন্য কথায়, নিম্ন থেকে উচ্চ এবং উচ্চ থেকে নিম্ন স্থানান্তরের মধ্যে সময়। সিগন্যালের দায়িত্ব চক্রটি নিম্নলিখিত শতাংশ হিসাবে সংজ্ঞায়িত করা হয়:

ডিউটি = 100% * পি / টি

ফ্রিকোয়েন্সি ক্ষেত্রে ঠিক যেমন, পালস প্রস্থ একটি ব্যবহারিক সীমা আছে। উপরের উদাহরণটি ব্যবহার করে, 106 ঘড়ি চক্র পালস প্রস্থকে 2.21 মাইক্রোসেকেন্ডের কম সীমাবদ্ধ করবে। অথবা, 226.4 kHz এ 50% এর কম নয়।

বর্গ তরঙ্গ সংকেতগুলির উপরের ফ্রিকোয়েন্সি সীমা বাড়ানোর অন্যতম উপায় হল ডিজিটাল ডিভাইডারের প্রয়োগ যা ফ্লিপ-ফ্লপ ব্যবহার করে। N দ্বারা ইনপুট ফ্রিকোয়েন্সি ভাগ করলে পরিমাপযোগ্য উচ্চ পরিসীমা n বার প্রসারিত হবে। এটি দুর্দান্ত খবর, ডিজিটাল ডিভাইডারগুলির একটি মৌলিক ত্রুটি রয়েছে: বিভক্ত সংকেত পালস প্রস্থ (এবং কর্তব্য চক্র) তথ্য হারায়! যেভাবে ডিভাইডার কাজ করে, তাদের আউটপুটে সবসময় 50% ডিউটি চক্র থাকে। বামার…

নিম্নলিখিত পৃষ্ঠাগুলিতে, তবে, আমি দেখাব কিভাবে ডিজিটালভাবে ফ্রিকোয়েন্সি বিভাজন করা যায় এবং আসল পালস প্রস্থ সংরক্ষণ করা যায় যা আমাকে সরাসরি গণনা দ্বারা আরোপিত সীমার বাইরে সংকেতগুলি ভালভাবে পরিমাপ করতে দেয়।

ধাপ 1: ডিজিটাল ফ্রিকোয়েন্সি বিভাগ

ডিজিটাল ফ্রিকোয়েন্সি বিভাগ
ডিজিটাল ফ্রিকোয়েন্সি বিভাগ
ডিজিটাল ফ্রিকোয়েন্সি বিভাগ
ডিজিটাল ফ্রিকোয়েন্সি বিভাগ
ডিজিটাল ফ্রিকোয়েন্সি বিভাগ
ডিজিটাল ফ্রিকোয়েন্সি বিভাগ

প্রচলিত ডিজিটাল ফ্রিকোয়েন্সি বিভাজক ফ্লিপ-ফ্লপ ব্যবহার করে; এই টিউটোরিয়ালটি স্ট্যান্ডার্ড জে কে ফ্লিপ-ফ্লপ ব্যবহার করে ডিভাইডার তৈরি করার নীতিগুলি সুন্দরভাবে ব্যাখ্যা করে। এটি MCU- এর জন্য ইনপুট ফ্রিকোয়েন্সিগুলির সমস্যা খুব বেশি সমাধান করে, কিন্তু এর একটি বড় ত্রুটি রয়েছে: বিভক্ত সংকেতের ইনপুট সিগন্যালের কর্তব্য নির্বিশেষে 50% শুল্ক চক্র রয়েছে! কেন এটি দেখতে প্রথম দুটি পরিসংখ্যান দেখুন। পিরিয়ড টি এবং পালস প্রস্থ P সহ মূল সিগন্যাল একটি JK ফ্লিপ-ফ্লপের ঘড়ির পিনে খাওয়ানো হয় যখন তার J এবং K পিন সব সময় উচ্চ অবস্থায় থাকে (প্রথম চিত্র)। 3.3V যুক্তি জুড়ে ধরে নেওয়া হয়। ধরা যাক যে ফ্লিপ-ফ্লপটি ঘড়ির ধনাত্মক (যেমন, ক্রমবর্ধমান) প্রান্ত দ্বারা শুরু হয়। এই অবস্থার অধীনে, আউটপুট পিনের অবস্থার পরিবর্তনগুলি (পৃথক "ফ্লিপস" এবং "ফ্লপস") প্রতিবার ঘড়ির পিন নিম্ন থেকে উঁচুতে যায়। ঘড়ির উচ্চ থেকে নিম্ন স্থানান্তর (যেমন, নেতিবাচক প্রান্ত) সম্পূর্ণ উপেক্ষা করা হয়। দ্বিতীয় চিত্রটি দেখুন। আউটপুট পিন, Q, একটি সিগন্যাল নির্গত করে যার মেয়াদ মূল সময়ের চেয়ে দ্বিগুণ, অর্থাৎ এর ফ্রিকোয়েন্সি অর্ধেক হয়। আউটপুট এর পালস প্রস্থ সর্বদা T এর সমান। ফলস্বরূপ, মূল পালস প্রস্থ, P, হারিয়ে যায়।

তৃতীয় চিত্রে দেখানো একটি কনফিগারেশনে আরেকটি JK ফ্লিপ-ফ্লপ যোগ করা মূল ফ্রিকোয়েন্সিটিকে 4 দ্বারা বিভক্ত করে।

সমস্যা: কিভাবে একটি বর্গ তরঙ্গের ফ্রিকোয়েন্সি ভাগ করা যায় যখন তার পালস প্রস্থ সংরক্ষণ করা হয়?

ধারণাটি সঠিকভাবে একটি নেতিবাচক প্রান্ত ট্রিগারড জে কে ফ্লিপ-ফ্লপ মিশ্রণে যুক্ত করা। এটাকে "নেগ এফএফ" বলি; চতুর্থ চিত্র দেখুন। এখানে, "সঠিকভাবে" এর মানে হল যে নতুন ফ্লিপ-ফ্লপের J এবং K পিনগুলি যথাক্রমে Q এবং Qbar আউটপুট পিনের সাথে সংযুক্ত, যথাক্রমে ডিভাইডার-বাই -4 ("Pos FF") এর পূর্ববর্তী চিত্রের মধ্যে চিত্রিত। (এখানে, "বার" হল Q চিহ্নের উপর অনুভূমিক দণ্ড যা যৌক্তিক নেতিবাচকতা নির্দেশ করে।) এটি কী অর্জন করে তা দেখতে পঞ্চম চিত্রে "নেগ এফএফ" এর ফাংশন টেবিলে দেখুন: নেগের আউটপুট পিন, প্রশ্ন এবং কিউবার, যথাক্রমে তার ইনপুট পিনের অবস্থা, জে এবং কে মিরর করুন। যার অর্থ তারা পস 'কিউ এবং ক্ববারের অবস্থা প্রতিফলিত করে। কিন্তু, নেগের ফ্লিপ-ফ্লপ অ্যাকশনটি অবশ্যই মূল সংকেতের নেতিবাচক প্রান্তের জন্য অপেক্ষা করতে হবে, যা ইতিবাচক প্রান্তের পরে P সময়ে আসে। আহা!

ফলে তরঙ্গাকৃতি ষষ্ঠ চিত্রে সচিত্র। "পোস কিউ" 1/4 র্থ ফ্রিকোয়েন্সি তে সিগন্যাল আউটপুট করে, "পোস কিউবার" এটি বিপরীত, "নেগ কিউ" পালস প্রস্থ পি দ্বারা "পোস কিউ" অনুসরণ করে এবং "নেগ কিউবার" তার বিপরীত। আপনি যাচাই করতে পারেন যে "Pos Qbar" এবং "Neg Q" এর যৌক্তিক AND একটি পালস ট্রেন তৈরি করে যা মূল পালস প্রস্থ P এবং 1/4 ফ্রিকোয়েন্সি দ্বারা চিহ্নিত। বিঙ্গো!

প্রথমে আমি এমসিইউ খাওয়ানোর জন্য ঠিক এই আউটপুট সিগন্যালটি ব্যবহার করেছি। যাইহোক, ভূমিকাতে উল্লেখিত MCU এর 106 চক্র সীমাবদ্ধতার কারণে এটি খুব ছোট পালস প্রস্থের জন্য সমস্যাযুক্ত হয়ে উঠেছে। আমি অন্য একটি আউটপুট বাছাই করে এই ছোট সমস্যার সমাধান করেছি: "Pos Qbar" এবং "Neg Qbar" এর পরিবর্তে। ওয়েভফর্মগুলির দিকে এক নজর আপনাকে বোঝাতে হবে যে এই বিশেষ তরঙ্গাকৃতি, P 'এর পালস প্রস্থ, P এর জন্য (0, T) পরিসরের পরিবর্তে T এবং 2T এর মধ্যে পরিবর্তিত হয়।

P = 2T - P '

পদক্ষেপ 2: সুপারিশকৃত হার্ডওয়্যার

সুপারিশকৃত হার্ডওয়্যার
সুপারিশকৃত হার্ডওয়্যার
সুপারিশকৃত হার্ডওয়্যার
সুপারিশকৃত হার্ডওয়্যার
সুপারিশকৃত হার্ডওয়্যার
সুপারিশকৃত হার্ডওয়্যার

আমি সত্যিই ইলেকট্রনিক শখের জন্য আপেক্ষিক নবাগতকে পছন্দ করি: Atmel SAM D21 MCUs 32-bit ARM Cortex M0+ প্রসেসরের উপর ভিত্তি করে 48 মেগাহার্টজ ক্লক রেটে কাজ করে, যা পুরোনো অ্যাটমেলের তুলনায় অনেক বেশি। এই প্রকল্পের জন্য আমি কিনেছি:

  • অ্যাডাফ্রুট থেকে ItsyBitsy M0 Express MCU বোর্ড
  • আমি Adafruit থেকে একটি রিচার্জেবল LiPo ব্যাটারি আছে ঘটেছে
  • একরঙা 128x32 SPI OLED ডিসপ্লে (আপনি এটা অনুমান করেছেন: Adafruit)
  • ডুয়াল পজিটিভ-এজ-ট্রিগারড JK ফ্লিপ-ফ্লপ টেক্সাস ইন্সট্রুমেন্টস থেকে SN74HC109
  • ডুয়াল নেগেটিভ-এজ-ট্রিগারড JK ফ্লিপ-ফ্লপ টেক্সাস ইন্সট্রুমেন্টস থেকে SN74HC112
  • চতুর্ভুজ এবং গেট CD74AC08E টেক্সাস যন্ত্র থেকে
  • চতুর্ভুজ বা গেট CD74AC32E টেক্সাস যন্ত্র থেকে

ধাপ 3: সার্কিট

সার্কিট
সার্কিট
সার্কিট
সার্কিট

প্রথম চিত্রটি ফ্রিকোয়েন্সি/ডিউটি মিটারের একটি সরলীকৃত পরিকল্পিত দেখায়। 3.3 V CMOS যুক্তি জুড়ে ধরে নেওয়া হয়। ফলস্বরূপ, ইনপুট বর্গ তরঙ্গের প্রশস্ততা অবশ্যই সংশ্লিষ্ট V এর মধ্যে হতে হবেআইএইচ স্তর (যেমন, 2 V) এবং 3.3 V. যদি না হয়, তাহলে আপনাকে সে অনুযায়ী এটিকে উপরে বা নিচে স্কেল করতে হবে। বেশিরভাগ ক্ষেত্রে একটি সাধারণ ভোল্টেজ ডিভাইডার যথেষ্ট। আপনি যদি আপনার মিটারের সংস্করণটি ভিন্ন যুক্তি স্তরে ডিজাইন করতে চান, তাহলে আপনাকে অন্য একটি মাইক্রো কন্ট্রোলার (MCU), ব্যাটারি এবং একটি ডিসপ্লে ব্যবহার করতে হবে যা কাঙ্ক্ষিত স্তরে কাজ করে। এই প্রকল্পে ব্যবহৃত লজিক গেটস এবং ফ্লিপ-ফ্লপগুলি 2 V এবং 6 V এর মধ্যে যে কোনও জায়গায় যুক্তি স্তরের সাথে কাজ করে এবং বেশিরভাগ ক্ষেত্রে ঠিক হওয়া উচিত।

দেখানো হয়েছে, সফটওয়্যার SPI প্রোটোকলের মাধ্যমে ডিসপ্লের সাথে যোগাযোগের জন্য ItsyBitsy MCU 9-13 পিন ব্যবহার করে। 3V পিন পুরো সার্কিটে শক্তি সরবরাহ করে। ডিজিটাল ইনপুট পিন 3 বিশ্লেষণকৃত সংকেত গ্রহণ করে, যখন পিন 2 এবং 4 সংকেত উৎসকে নিয়ন্ত্রণ করে: হয় সরাসরি সংকেত গেট AND3 (কম ইনপুট ফ্রিকোয়েন্সি) দিয়ে আসে, অথবা সংকেত 4 দ্বারা বিভক্ত গেট AND4 (উচ্চ ইনপুট ফ্রিকোয়েন্সি) ধাপ 2 এ বর্ণিত হিসাবে পরবর্তী ধাপে আলোচিত কোডটি স্বয়ংক্রিয়ভাবে ইনকামিং ফ্রিকোয়েন্সি পরিসীমা সনাক্ত করে এবং সিগন্যালের উৎস যথাযথভাবে পরিবর্তন করে।

পরিকল্পিত ডিজিটাল চিপ সংযোগের প্রকৃত জটিলতা দেখায় না। দ্বিতীয় চিত্রটি দেখায় যে প্রকল্পটি একটি ব্রেডবোর্ডে কেমন দেখাবে। ডুয়াল পজিটিভ এজ ফ্লিপ-ফ্লপের 2CLK পিনে একটি লাল তারের মাধ্যমে ইনপুট সিগন্যাল আসে। সতর্কতা: সাধারণত, এই ফ্লিপ -ফ্লপের সমস্ত জে এবং কে পিন উচ্চ রাখা উচিত, কিন্তু বিশেষ করে SN74HC109 বিশেষভাবে Kbar পিন - একটি উল্টানো K পিন - এর পরিবর্তে। অতএব, এই পিন গ্রাউন্ড করা আবশ্যক! SN74HC112 এর প্রথম নেগেটিভ এজ ফ্লিপ-ফ্লপ এর 1K এবং 1J পিন SN74HC109 এর 1Q এবং 1Qbar পিনের সাথে সংযুক্ত। SN74HC112 এ দ্বিতীয় ফ্লিপ-ফ্লপ অব্যবহৃত এবং এর ইনপুট পিনগুলি (2K, 2J, 2CLRbar) ভিত্তিহীন। সমস্ত ফ্লিপ-ফ্লপগুলিতে অন্যান্য সমস্ত অতিরিক্ত পিন PREbar (প্রিসেট) এবং CLRbar (ক্লিয়ার) অবশ্যই লজিক্যাল হাই এর সাথে সংযুক্ত থাকতে হবে। অব্যবহৃত ঘড়ি এবং আউটপুট পিনগুলি সংযোগ বিচ্ছিন্ন থাকে। একইভাবে, সমস্ত গেটে অব্যবহৃত ইনপুট পিনগুলি গ্রাউন্ডেড থাকে, যখন অব্যবহৃত আউটপুট পিনগুলি সংযুক্ত থাকে। যেমন আমি আমার "ফোন রিং এর অদৃশ্য হত্যাকারী" এ আলোচনা করেছি, লজিক্যাল চিপের অব্যবহৃত ইনপুট পিনগুলি গ্রাউন্ড করা এলোমেলো দোলনা দূর করে এবং ব্যাটারির শক্তি সঞ্চয় করে।

ধাপ 4: কোড এবং কম ফ্রিকোয়েন্সি পরিমাপ

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

সিপিইউ হার্ডওয়্যার ইন্টারাপ্টের মাধ্যমে এই রূপান্তরগুলি নোট করে। SAMD21 এর বেশ কয়েকটি ঘড়ি রয়েছে; আমার কোড টিসি 3 ব্যবহার করে। প্রাথমিকভাবে, আমি M0 এর ডাটা শীট ব্রাসিং পড়ার মাধ্যমে শুরু করেছি ইন্টারাপ্ট হ্যান্ডলারের কোডিংয়ে অনেক চেষ্টার জন্য, কিন্তু শীঘ্রই আমি ব্যবহারকারীদের ইলেক্ট্রো_95, মার্টিনএল, এবং রুকাস দ্বারা Arduino ফোরাম পোস্টে একটি খুব সম্পর্কিত কোড আবিষ্কার করেছি যার অবদান যথাযথভাবে স্বীকৃত। আমি তাদের মিলিত কোডটি আমার মধ্যে অন্তর্ভুক্ত করেছি এবং সংশোধন করেছি; আমার অনেক সময় বাঁচাচ্ছে!

আমি পূর্বে উল্লেখ করেছি, সংকেত রেজল্যুশন ~ 106 CPU চক্র দ্বারা সীমাবদ্ধ অন্তর্বর্তী কোড চালানোর জন্য। পালস প্রস্থ সংরক্ষণ সহ ডিজিটাল বিভাগ উচ্চ ফ্রিকোয়েন্সিগুলির যত্ন নেয়। কম ফ্রিকোয়েন্সি, অন্যদিকে আরেকটি চ্যালেঞ্জ তৈরি করে: যেহেতু TC3 ঘড়ি কাউন্টার 16 বিট লম্বা, এটি 65, 536 গণনার সীমা অতিক্রম করার পরে উপচে পড়ে। ওভারফ্লো ইন্টারাপ্ট যোগ করে কেউ এই পরিস্থিতি সামলাতে পারে, কিন্তু একটি ভিন্ন সমাধান বেছে নেয়: TC3 হার্ডওয়্যার 48 MHz এর পরিবর্তে একটি prescaled (যেমন, সফ্টওয়্যার-বিভক্ত) CPU ঘড়ি ব্যবহার করতে পারে। এইভাবে, যদি সিগন্যালের সময়সীমা ওভারফ্লো সীমার কাছাকাছি চলে আসে, কোডটি TC3 কে পরবর্তী সময়ের জন্য 24 মেগাহার্টজ গণনা ব্যবহার করতে নির্দেশ দিতে পারে এবং, ভয়েলা, কাউন্টারটি 32, 768 কাউন্টের নিচে নেমে যায়। এমনকি কম ফ্রিকোয়েন্সিগুলির জন্য TC3 কে 12 মেগাহার্টজ ডাল ইত্যাদি গণনা করার নির্দেশ দেওয়া যেতে পারে। ফলস্বরূপ, ডিভাইসের রেঞ্জের নিচের প্রান্তটি প্রায় 43 Hz।

আপনি কোডটি কাঁটাচামচ করতে এবং আপনার প্রকল্পে এটি ব্যবহার করতে স্বাগতম, কিন্তু ফলাফল প্রকাশ করার সময় দয়া করে এর উৎস উল্লেখ করুন।

কোড লিঙ্ক করুন।

প্রস্তাবিত: