# সেন্সর এবং অ্যাকচুয়েটরের সাহায্যে বাহ্যিক জগতের সাথে যোগাযোগ ![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-3.jpg) > স্কেচনোটটি তৈরী করেছেন [Nitya Narasimhan](https://github.com/nitya). বড় সংস্করণে দেখার জন্য ছবিটিতে ক্লিক করতে হবে। ## লেকচার পূর্ববর্তী কুইজ [লেকচার পূর্ববর্তী কুইজ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/5) ## পরিচিতি এই লেসনটি আমাদের আইওটি ডিভাইসের জন্য দুটি গুরুত্বপূর্ণ ধারণার পরিচয় করিয়ে দেয় - সেন্সর এবং অ্যাকচুয়েটর । আইওটি প্রজেক্টে লাইট সেন্সর যুক্ত করে, তারপরে আলোর মাত্রা দ্বারা নিয়ন্ত্রিত একটি এলইডি সংযুক্ত করার মাধ্যমে কার্যকরভাবে একটি রাতের আলোকীয় যন্ত্র বা 'নাইটলাইট' তৈরি করা যাবে। এই পাঠ্যে আমরা দেখবো : * [সেন্সর কী?](#সেন্সর-কী) * [একটি সেন্সর ব্যবহার](#একটি-সেন্সর-ব্যবহার) * [সেন্সর কত প্রকার](#সেন্সর-কত-প্রকার) * [অ্যাকচুয়েটর কী?](#অ্যাকচুয়েটর-কী) * [একটি অ্যাকচুয়েটর ব্যবহার](#একটি-অ্যাকচুয়েটর-ব্যবহার) * [অ্যাকচুয়েটর কত প্রকার](#অ্যাকচুয়েটর-কত-প্রকার) ## সেন্সর কী? সেন্সরগুলি এমন একটি হার্ডওয়্যার ডিভাইস যা বাহ্যিক জগতকে বুঝতে পারে - অর্থাৎ তারা তাদের চারপাশে এক বা একাধিক বৈশিষ্ট্য পরিমাপ করে এবং তথ্যগুলো আইওটি ডিভাইসে প্রেরণ করে। প্রাকৃতিক বৈশিষ্ট্য যেমন বায়ু তাপমাত্রা থেকে শুরু করে শারীরিক মিথস্ক্রিয়া যেমন চলাফেরার মতো প্রাকৃতিক বৈশিষ্ট্য থেকে পরিমাপ করা যায় এমন অনেকগুলি জিনিস রয়েছে বলে সেন্সরগুলি বিস্তৃত ডিভাইস কভার করে। সেন্সর দ্বারা অনেকগুলো বিষয় পরিমাপ করা সম্ভব; প্রাকৃতিক বৈশিষ্ট্য যেমন বায়ু তাপমাত্রা থেকে শুরু করে শারীরিক মিথস্ক্রিয়া যেমন চলাফেরার মতো অনেককিছুতেই এটির ব্যবহার লক্ষ্যণীয় । কিছু অতি ব্যবহৃত সেন্সর হলো: * তাপমাত্রা সেন্সর - এগুলি বায়ুর তাপমাত্রা বা যে মাধ্যমে নিমজ্জিত রয়েছে সেটির তাপমাত্রা নির্ণয় করতে পারে। শৌখিন এবং প্রফেশনাল ডেভলাপারদের জন্য প্রায়ই এই একটি সেন্সরেই বায়ুচাপ এবং আর্দ্রতার ও নির্ণয়ের সুবিধা প্রদান করা হয়। * বাটন - কেউ যদি বাটনে প্রেস করে তখন তারা তা বুঝতে পারে। * আলোকীয় সেন্সর - এগুলি আলোর মাত্রা সনাক্ত করে এবং নির্দিষ্ট রঙ, ইউভি আলো, আইআর লাইট বা সাধারণ দৃশ্যমান আলোর জন্য সুনির্দিষ্টভাবে কাজ করতে পারে। * ক্যামেরা - এগুলি কোন ছবি বা স্ট্রিমিং ভিডিও গ্রহণ করে বিশ্বের চিত্রিত প্রতিরূপ তৈরী করতে পারে। * একসেলেরোমিটার - বিভিন্ন দিকে গতিবিধির পরিবর্তন বুঝতে পারে। * মাইক্রোফোন - সাধারণ শব্দ স্তর বা সুনির্দিষ্ট কোন দিক থেকে আসা শব্দ বুঝতে পারে। ✅ ছোট্ট একটি কাজ করা যাক এখন। আমাদের ব্যবহৃত ফোনে কী কী সেন্সর রয়েছে তা চিন্তা করি। সব সেন্সর এর মধ্যে একটি সাধারণ বিষয় রয়েছে - তারা যা কিছু সেন্স করতে পারে, তা বৈদ্যুতিক সংকেতে রূপান্তর করে যে ডেটা আইওটি ডিভাইস ব্যবহার করতে পারে। এই বৈদ্যুতিক সংকেতটি কীভাবে ব্যবহৃত হবে, তা সেন্সরের উপর নির্ভর করে, পাশাপাশি আইওটি ডিভাইসের সাথে যোগাযোগ করার জন্য ব্যবহৃত যোগাযোগ প্রোটোকলও এই ক্ষেত্রে প্রভাব রাখে। ## একটি সেন্সর ব্যবহার আইওটি ডিভাইসে সেন্সর যুক্ত করতে নীচের কোন একটি প্রাসঙ্গিক গাইড অনুসরণ করতে হবে: * [Arduino - Wio Terminal](wio-terminal-sensor.md) * [Single-board computer - Raspberry Pi](pi-sensor.md) * [Single-board computer - Virtual device](virtual-device-sensor.md) ## সেন্সর কত প্রকার সেন্সরগুলি মূলত ২ প্রকার - অ্যানালগ এবং ডিজিটাল। ### অ্যানালগ সেন্সর সবথেকে বেসিক সেন্সর হল এনালগ সেন্সর। এগুলো আইওটি ডিভাইস থেকে একটি ভোল্টেজ গ্রহণ করে, সেন্সর উপাদানগুলি এই ভোল্টেজটি সামঞ্জস্য করে এবং সেন্সর থেকে ফিরে আসা ভোল্টেজটিই মান পরিমাপ করে। > 🎓ভোল্টেজ এমন এক রাশি যা বিদ্যুৎ এক জায়গা থেকে অন্য জায়গায় প্রবাহিত হবে কিনা তা ঠিক করে, যেমন ব্যাটারির পসিটিভ টার্মিনাল থেকে নেগেটিভ টার্মিনালে যায়। উদাহরণস্বরূপ, একটি স্ট্যান্ডার্ড ডাবল-এ ব্যাটারি 1.5V (V হলো ভোল্টের প্রতীক) এবং এটি পসিটিভ টার্মিনাল থেকে নেগেটিভ টার্মিনালে 1.5V এর শক্তি দিয়ে বিদ্যুৎকে প্রবাহিত করতে পারে। বিভিন্ন বৈদ্যুতিক হার্ডওয়্যারের কাজ করার জন্য বিভিন্ন ভোল্টেজের প্রয়োজন হয়, উদাহরণস্বরূপ, একটি এলইডি ২-৩ ভোল্টেজের মধ্যে আলোকিত হতে পারে, তবে একটি 100ওয়াট ফিলামেন্ট লাইটবাল্বের জন্য 240V প্রয়োজন হবে। [ভোল্টেজ - উইকিপিডিয়া পেইজ](https://wikipedia.org/wiki/Voltage) পড়লে এই সংক্রান্ত বিস্তারিত জানা যাবে। উদাহরণস্বরূপ পোটেনশিওমিটার এর কথা ধরা যাক। এটি এমন একটি ডায়াল যা আমরা দুটি অবস্থানের মধ্যে ঘোরাই এবং সেন্সরটি ঘূর্ণনটি পরিমাপ করে প্রয়োজনীয় তথ্য সংগ্রহ করে। ![A potentiometer set to a mid point being sent 5 volts returning 3.8 volts](../../../../images/potentiometer.png) আইওটি ডিভাইসগুলো কোন নির্দিষ্ট ভোল্টেজে (যেমনঃ 5V) পোটেনশিওমিটারে বৈদ্যুতিক সংকেত পাঠাবে। পটেনশিওমিটার অ্যাডজাস্ট করার সাথে সাথে এটি অন্য দিক থেকে আগত ভোল্টেজকে পরিবর্তন করে। কল্পনা করি যে ভলিউম নব এর মতো আমাদের ডায়াল হিসাবে 0 থেকে [11](https://wikedia.org/wiki/Up_to_eleven) লেবেলযুক্ত একটি পটেনশিওমিটার রয়েছে। যখন পেন্টিয়োমিটার পূর্ণ অফ অবস্থানে (0) থাকবে তখন 0V (0 ভোল্ট)আর যখন এটি সম্পূর্ণ অন পজিশনে থাকবে (11), তখন 5V (5 ভোল্ট) মান দিবে। > 🎓 পুরো বিষয়টিকে অত্যন্ত সহজভাবে বোঝানোর চেষ্টা করা হয়েছে। পোটেনশিওমিটার এবং পরিবর্তনযোগ্য রোধক সম্পর্কে [পোটেনশিওমিটার উইকিপিডিয়া পেইজ](https://wikipedia.org/wiki/Potentiometer) এ বিশদ ব্যখ্যা রয়েছে। সেন্সর প্রদত্ত ভোল্টেজটি আইওটি ডিভাইস গ্রহণ করে এবং ডিভাইস এটিতে সাড়া দিতে পারে। সেন্সরের উপর নির্ভর করে, এই ভোল্টেজ যেকোন মান এর হতে পারে বা একটি আদর্শ মান ধারণ করতে পারে। উদাহরণস্বরূপ, [থার্মিস্টর] (https://wikedia.org/wiki/Thermistor) এর উপর ভিত্তি করে তৈরী একটি অ্যানালগ তাপমাত্রা সেন্সর, তাপমাত্রার উপর নির্ভর করে তার রেসিস্ট্যান্ট বা রোধ এর মান পরিবর্তন করে। আউটপুট ভোল্টেজটি তখন ক্যালভিন তাপমাত্রায় রূপান্তরিত করা যাবে এবং কোডিং এর মাধ্যমে সেলসিয়াস বা ফারেনহাইটে পরিবর্তনযোগ্য। ✅ সেন্সর যদি প্রদত্ত ভোল্টেজ (যেমনঃ কোন এক্সটার্নাল পাওয়ার সাপ্লাই থেকে) এর চাইতে বেশি রিটার্ন করে , তাহলে কী ঘটবে বলে মনে হয় ? ⛔️ এটার বাস্তবিক টেস্ট করা থেকে সর্বাবস্থায় বিরত থাকা উচিত। #### অ্যানালগ থেকে ডিজিটালে রূপান্তর আইওটি ডিভাইসগুলি হলো ডিজিটাল যন্ত্র - এগুলো অ্যানালগ মান নিয়ে কাজ করতে পারে না, তারা কেবল 0 এবং 1 এর মাধ্যমে কাজ করে। এর অর্থ হল এনালগ সেন্সর মানগুলি নিয়ে কাজ করার আগে, তাদেরকে ডিজিটাল সিগন্যালে রূপান্তর করা দরকার। অনেক আইওটি ডিভাইসে এনালগ ইনপুটগুলিকে তাদের মানের ডিজিটাল ফর্মে রূপান্তর করতে 'অ্যানালগ-থেকে-ডিজিটাল কনভার্টার (এডিসি)' থাকে। সেন্সরগুলি সংযোগকারী বোর্ডের মাধ্যমেও এডিসিগুলির সাথে কাজ করতে পারে। উদাহরণস্বরূপ, রাস্পবেরি পাই সহ সীড গ্রোভ ইকোসিস্টেমে, অ্যানালগ সেন্সরগুলি একটি 'হ্যাট'- এর নির্দিষ্ট পোর্টের সাথে সংযোগ করে যা পাই এর জিপিআইও পিনের সাথে যুক্ত হয়ে পাইতে বসে এবং এই হ্যাটটির একটি 'অ্যানালগ-থেকে-ডিজিটাল কনভার্টার (এডিসি)' রয়েছে যা প্রাপ্ত মানকে ডিজিটাল সিগন্যালে পরিণত করে যা জিপিআইও দ্বারা প্রেরিত হয়। কল্পনা করি যে আমাদের আইওটি ডিভাইসের সাথে সংযুক্ত একটি এনালগ লাইট সেন্সর রয়েছে যা 3.3V ব্যবহার করে এবং 1V রিটার্ন করছে । এই 1V বিষয়টি ডিজিটাল জগতে কোন কিছুই বোঝায়না, তাই এটি রূপান্তর করা দরকার। ভোল্টেজটিকে ডিভাইস এবং সেন্সরের উপর নির্ভর করে, নির্দিষ্ট স্কেলে ব্যবহার করে অ্যানালগ মানে রূপান্তরিত করা হবে। উদাহরণস্বরূপ, সীড গ্রোভ লাইট সেন্সর যা 0 থেকে 1023 পর্যন্ত মান আউটপুট দেয়। 3.3V-তে চলমান এই সেন্সরটির জন্য, 1V আউটপুটটির মান হবে 300 । একটি আইওটি ডিভাইস 300 এনালগ মান হিসাবে পরিচালনা করতে পারে না, সুতরাং মানটি `0000000100101100` এ রূপান্তরিত হবে, যা গ্রোভের দ্বারা রুপান্তরিত 300 এর বাইনারি রূপ এবং এটি পরে আইওটি ডিভাইস দ্বারা প্রক্রিয়া করা হবে। ✅ বাইনারি সম্পর্কে জানা না থাকলে, 0 এবং 1 দ্বারা লিখিত এই সংখ্যাপদ্ধতি সম্পর্কে আমাদের জানতে হবে। এই [BBC Bitesize introduction to binary lesson](https://www.bbc.co.uk/bitesize/guides/zwsbwmn/revision/1) থেকে আমরা আমাদের বাইনারি সংক্রান্ত জ্ঞান আহরণ শুরু করতে পারি। কোডিং দৃষ্টিকোণ থেকে, এইসব বিষয় সাধারণত সেন্সরগুলির সাথে থাকা লাইব্রেরি দ্বারা পরিচালিত হয়, সুতরাং আমাদেরকে আসলে এই রূপান্তর সম্পর্কে অতোটা চিন্তা করার দরকার নেই। গ্রোভ লাইট সেন্সরের জন্য আমরা পাইথন লাইব্রেরিটি ব্যবহার করবো এবং `light` নামক প্রপার্টিকে কল করলে বা আরডুইনো লাইব্রেরিটি ব্যবহার করে `analogRead` কল করলে, 300 এর মান পাওয়া যাবে। ### ডিজিটাল সেন্সর অ্যানালগ সেন্সরের মতো ডিজিটাল সেন্সরগুলি বৈদ্যুতিক ভোল্টেজের পরিবর্তনগুলি ব্যবহার করে চারপাশের বাহ্যিক জগৎ সনাক্ত করে। পার্থক্য হল ডিজিটাল সেন্সরগুলো হয় ২টি ভিন্ন স্টেট এর মাঝে তুলনা করে বা বিল্ট-ইন এডিসি ব্যবহার করে একটি ডিজিটাল সিগন্যাল আউটপুট দেয়। বর্তমানে বিভিন্ন কানেক্টর বোর্ড বা আইওটি ডিভাইসে এডিসি এর ব্যবহার এড়ানোর জন্য ডিজিটাল সেন্সরগুলোই বেশি ব্যবহৃত হচ্ছে। সবচেয়ে সহজ সাধারণ ডিজিটাল সেন্সর হলো বাটন বা স্যুইচ। এটি ২টি অবস্থা সম্পন্ন একটি সেন্সর , অবস্থা দুটি হলো চালু (on) এবং বন্ধ (off) । ![A button is sent 5 volts. When not pressed it returns 0 volts, when pressed it returns 5 volts](../../../../images/button.png) আইওটি ডিভাইসে থাকা পিনগুলি যেমন জিপিআইও পিনগুলি এই সংকেতটি সরাসরি 0 বা 1 হিসাবে পরিমাপ করতে পারে। প্রেরিত এবং প্রাপ্ত ভোল্টেজ সমান হলে, এর মান হয় 1, অন্যথায় মানটি হয় 0। এক্ষেত্রে সিগন্যাল রূপান্তর করার দরকার নেই কারণ এদের মান কেবল 1 বা 0 হতে পারে। > 💁 ভোল্টেজগুলি কখনই হুবহু মিলেনা না, বিশেষত যেহেতু একটি সেন্সরের উপাদানগুলির রোধ থাকে, তাই এক্ষেত্রে ভোল্টেজের হেরফের হয়। উদাহরণস্বরূপ, জিপিআইও পিনগুলি একটি রাস্পবেরি পাইতে 3.3V-তে কাজ করে এবং রিটার্ন সিগন্যালে 1.8V এর উপর ভোল্টেজ এর মানকে 1 হিসেবে বিবেচনা করে এবং 1.8V এর কম হলে 0 হিসাবে বিবেচনা করে থাকে। * 3.3V বাটনে যায়। এটি বন্ধ (off), তাই 0V বেরিয়ে আসে, তাই এর মান হয় 0 । * 3.3V বাটনে যায়। এটি চালু (on), তাই 3.3V বেরিয়ে আসে,তাই এর মান হয় 1 । আরও উন্নত ডিজিটাল সেন্সরগুলো অ্যানালগ মানগুলি গ্রহণ করে, তারপরে অন-বোর্ড এডিসি ব্যবহার করে ডিজিটাল সিগন্যালে রূপান্তর করে। উদাহরণস্বরূপ, একটি ডিজিটাল টেম্পারেচার সেন্সর, এনালগ সেন্সরের মতোই থার্মোকাপল ব্যবহার করবে এবং বর্তমান তাপমাত্রায় থার্মোকাপলের রোধের কারণে সৃষ্ট ভোল্টেজের পরিবর্তনকে পরিমাপ করবে। এনালগ ভ্যালু রিটার্ন করে এটিকে ডিজিটাল সিগন্যালে রূপান্তরের জন্য যন্ত্র বা কানেক্টর বোর্ডের উপর নির্ভর করার পরিবর্তে, সেন্সরের বিল্ট-ইন সেন্সরটিই এই রূপান্তর করে দেয় এবং 0 আর 1 সিরিজবিশিষ্ট মান রিটার্ন করে আইওটি ডিভাইসে। একটি বাটন যেমন 1 বলতে ফুল ভোল্টেজ এবং 0 বলতে শূণ্য ভোল্টেজ বোঝায়, এখানেও একইভাবে সম্পূর্ন বাইনারি সিরিজটি প্রেরিত হয়। ![A digital temperature sensor converting an analog reading to binary data with 0 as 0 volts and 1 as 5 volts before sending it to an IoT device](../../../../images/temperature-as-digital.png) ডিজিটাল ডেটা প্রেরণের জন্য সেন্সরগুলো আরও জটিল হয়ে উঠতে শুরু করেছে। একইসাথে অনেক বেশি বিস্তারিরভাবে তথ্য প্রেরণ করা হচ্ছে, এমনকি সুরক্ষিত সেন্সরগুলির জন্য এনক্রিপ্ট করা ডেটা প্রেরণের ব্যবস্থাও লক্ষ্যণীয়। এর একটি উদাহরণ হলো ক্যামেরা - এটি এমন একটি সেন্সর যা একটি চিত্র ধারণ করে এবং আইওটি ডিভাইস এর জন্য সাধারণত JPEG এর মতো সংকোচিত বিন্যাসে এটি ডিজিটাল ডেটা হিসাবে প্রেরিত হয়। চিত্রধারণ করে, ক্যামেরার পক্ষে ভিডিও স্ট্রীমিংও সম্ভব । হয় পুরো ছবিকে ফ্রেম বাই ফ্রেম সাজিয়ে বা কম্প্রেস করে পাঠানোর মাধ্যমে স্ট্রীমিং হয়ে থাকে। ## অ্যাকচুয়েটর কী? অ্যাকচুয়েটর হলো সেন্সর এর বিপরীত - এগুলো আইওটি ডিভাইস থেকে বৈদ্যুতিক সংকেতকে বাহ্যিক জগতের সাথে মিথস্ক্রিয়ায় রূপান্তর করে। যেমন, আলোক বা শব্দ নির্গমন করা বা একটি মোটরকে চালানো। কিছু অতিব্যবহৃত অ্যাকচুয়েটর হিসেবে বলা যায় - * এলইডি - চালু করলে, এগুলি আলোকিত হয়। * স্পিকার - একটি সাধারণ buzzer থেকে শুরু করে, অডিও চালাতে সক্ষম এমন যন্ত্রগুলোই স্পিকার। এরা প্রেরিত সিগন্যালের উপর ভিত্তি করে শব্দ তৈরী করে। * স্টেপার মোটর - এগুলি সংকেতকে একটি সুনির্দিষ্ট পরিমাণ ঘূর্ণনে রূপান্তর করে, যেমন কোন ডায়ালকে 90° কোণে বাঁকানো। * রিলে - এগুলো এমন সুইচ যা বৈদ্যুতিক সংকেতের সাহায্যে অন/অফ করা যায়। এগুলো আইওটি ডিভাইস থেকে প্রাপ্ত ক্ষুদ্র মানের ভোল্টেজ দ্বারা বৃহত্তর মানের ভোল্টেজ চালু করে। * স্ক্রিন - এগুলো বেশ জটিল ধরণের অ্যাকচুয়েটর যা একটি পর্দা (display) এর বিভিন্ন অংশে বিভিন্ন তথ্য প্রদর্শন করে। সাধারণ LED display থেকে শুরু করে হাই-রেস্যুলেশন পর্যন্ত প্রদর্শনযোগ্য স্ক্রিন রয়েছে। ✅ ছোট্ট একটি কাজ করা যাক এখন। আমাদের ব্যবহৃত ফোনে কী কী অ্যাকচুয়েটর রয়েছে তা চিন্তা করি। ## একটি অ্যাকচুয়েটর ব্যবহার আইওটি ডিভাইসে সেন্সর যুক্ত করতে নীচের কোন একটি প্রাসঙ্গিক গাইডটি অনুসরণ করতে হবে। এই ডিভাইসটি সেন্সর নিয়ন্ত্রিত,আর সাহায্যে nightlight এর প্রজেক্টটি করা হবে। এটি সেন্সর দ্বারা পরিবেশে আলোর মাত্রা শনাক্ত করবে, অ্যাকচুয়েটর হিসেবে এলইডি ব্যবহার করবে যেটি (সেন্সর প্রাপ্ত ডাটা অনুসারে) আলোর মাত্রা কম থাকলে, নিজেই জ্বলে উঠবে। ![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../../images/assignment-1-flow.png) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Single-board computer - Raspberry Pi](pi-actuator.md) * [Single-board computer - Virtual device](virtual-device-actuator.md) ## অ্যাকচুয়েটর কত প্রকার সেন্সর এর মতো, অ্যাকচুয়েটরও মূলত ২ প্রকার - অ্যানালগ এবং ডিজিটাল। ### অ্যানালগ অ্যাকচুয়েটর অ্যানালগ অ্যাকচুয়েটর একটি অ্যানালগ সংকেত নিয়ে এটিকে বাহ্যিক জগতের মিথস্ক্রিয়ায় রূপান্তর করে, যেখানে প্রদত্ত ভোল্টেজের ভিত্তিতে মিথস্ক্রিয়া পরিবর্তিত হয়। উদাহরণ হিসেবে, আমাদের বাসাবাড়িতে ব্যবহৃত নিয়ন্ত্রণযোগ্য লাইটের কথা চিন্তা করা যেতে পারে। এটি প্রাপ্ত ভোল্টেজের ভিত্তিতেই নির্ধারিত হয় যে, এই আলোর ঔজ্জ্বল্য কতটা হবে। ![A light dimmed at a low voltage and brighter at a higher voltage](../../../../images/dimmable-light.png) সেন্সরগুলির মতো, প্রকৃত আইওটি ডিভাইস ডিজিটাল সিগন্যালে কাজ করে, এনালগ এ নয়। একটি এনালগ সিগন্যাল প্রেরণ করার জন্য, আইওটি ডিভাইসটির জন্য ডিজিটাল টু এনালগ কনভার্টার (DAC) দরকার হয়। DAC হয় আইওটি ডিভাইসে সরাসরি, বা কোনও সংযোজক বোর্ডের সাহায্যে যুক্ত করতে হবে। এটি 0 এবং 1 গুলি আইওটি ডিভাইস থেকে অ্যানালগ ভোল্টেজকে রূপান্তর করবে যা অ্যাকচুয়েটর ব্যবহার করতে পারে। ✅ আইওটি ডিভাইসটি যদি অ্যাকচুয়েটর এর সহ্যসীমার বেশি ভোল্টেজ প্রদান করে , তাহলে কী ঘটবে বলে মনে হয় ? ⛔️ এটার বাস্তবিক টেস্ট করা থেকে সর্বাবস্থায় বিরত থাকা উচিত। #### পালস-উইথ মড্যুলেশন (PWM) আইওটি ডিভাইস থেকে অ্যানালগ সিগন্যালে রূপান্তর করার জন্য আর একটি বিকল্প হল পালস-উইথ মড্যুলেশন। এর মধ্যে প্রচুর সংক্ষিপ্ত ডিজিটাল পালস সিগন্যাল প্রেরণ করা হয় যা এটি অ্যানালগ সিগন্যাল হিসাবে কাজ করে। উদাহরণস্বরূপ, PWM দ্বারা মোটরের গতি নিয়ন্ত্রণ করা যাবে। কল্পনা করি যে আমরা 5V পাওয়ার সাপ্লাই দিয়ে, মোটরটি নিয়ন্ত্রণ করছি। ভোল্টেজটি ০.০২ সেকেন্ডের জন্য high অর্থাৎ 5V রাখার মাধ্যমে, মোটরে একটি সংক্ষিপ্ত পালস প্রেরণ করি। সেই সময়ে মোটরটি একটি পূর্ণ ঘূর্ণনের দশমাংশ বা 36° ঘুরতে পারে। এর পরে লো সিগন্যাল দিয়ে অর্থাৎ 0V প্রেরণ করে, সিগন্যালটি 0.02 সেকেন্ডের জন্য বিরতি দেয়। তারপরে অন-অফ এর প্রতিটি চক্র 0.04s অবধি চলে। তারপরে আবারও পুনরাবৃত্তি করে। ![Pule width modulation rotation of a motor at 150 RPM](../../../../images/pwm-motor-150rpm.png) তাহলে প্রতি সেকেন্ডে ২৫টি পালস দেয়া হচ্ছে যেখানে ৫ভোল্টের প্রতি সিগন্যালে ০.০২ সেকেন্ডে মোটর ঘুরছে আবার ০ ভোল্টের জন্য ০.০২ সেকেন্ডে মোটর বিরতি নিচ্ছে। প্রতিটি পালস এখানে মোটরকে একটি ঘূর্ণনের দশমাংশে ঘুরায়, যার অর্থ মোটর প্রতি সেকেন্ডে 2.5 ঘূর্ণন সম্পন্ন করে। এখানে ডিজিটাল সিগন্যাল ব্যবহার করে আমরা একটি মোটরকে প্রতি সেকেন্ডে ২.৫টি করে ঘূর্ণন প্রদান করেছি অর্থাৎ ১৫০ আরপিএম বা [revolutions per minute](https://wikipedia.org/wiki/Revolutions_per_minute) এ ঘুরিয়েছি। ```output 25 pulses per second x 0.1 rotations per pulse = 2.5 rotations per second 2.5 rotations per second x 60 seconds in a minute = 150rpm ``` > 🎓 কোন PWM সিগন্যাল যদি অর্ধেক সময় ON থাকে এবং বাকি অর্ধেক সময় OFF থাকে, তবে এই বিষয়টিকে বলা হয় [50% ডিউটি সাইকেল](https://wikipedia.org/wiki/Duty_cycle)। ডিউটি সাইকেল হলো মূলত অন-অফ এই দুই অবস্থার সময়ের দৈর্ঘ্যের তুলনা। ![Pule width modulation rotation of a motor at 75 RPM](../../../../images/pwm-motor-75rpm.png) পালসের আকার পরিবর্তন করে মোটরের গতি পরিবর্তন করা যাবে। উদাহরণস্বরূপ, একই মোটর দিয়ে আমরা 0.04 সেকেন্ডের একই চক্র রাখতে পারবো যেখানে ON পালসটি 0.01 ধরে থাকবে এবং OFF পালসটি 0.03 সেকেন্ড সময় ধরে থাকবে। আমাদের প্রতি সেকেন্ডে পালসের সংখ্যার পরিমাণ একই রয়েছে (25) তবে পালসের ON অবস্থার দৈর্ঘ্য এখন অর্ধেক। একটি অর্ধ দৈর্ঘ্যের পালস মোটরটিকে কেবল একটি ঘূর্ণনের এক বিংশতম পর্যন্ত ঘুরতে দেয় এবং 25 পালস দ্বারা প্রতি সেকেন্ডে 1.25টি ঘূর্ণন সম্পন্ন হব অর্থাৎ ৭৫ আরপিএম । ডিজিটাল সিগন্যালের পালসের গতি পরিবর্তন করে এভাবে অ্যানালগ মোটরের গতি অর্ধেকে নামিয়ে ফেলা যাবে। ```output 25 pulses per second x 0.05 rotations per pulse = 1.25 rotations per second 1.25 rotations per second x 60 seconds in a minute = 75rpm ``` ✅ কীভাবে মোটর রোটেশন (বিশেষত কম গতিতে) মসৃণ রাখা যায় ? এখানে দীর্ঘ বিরতি সহ স্বল্প সংখ্যক লম্বা পালস নাকি খুব সংক্ষিপ্ত বিরতি দিয়ে প্রচুর সংক্ষিপ্ত পালস - কোনটি ব্যবহার করা উচিত ? > 💁 কিছু সেন্সরও PWM ব্যবহার করে অ্যানালগ সিগন্যালগুলিকে ডিজিটাল সিগন্যালে রূপান্তর করে। > 🎓 পালস-উইথ মড্যুলেশন (PWM) এর ব্যপারে আরো জানতে [ঊইকিপিডিয়ার এই আর্টিকেল](https://wikipedia.org/wiki/Pulse-width_modulation) পড়া ভালো হবে। ### ডিজিটাল অ্যাকচুয়েটর ডিজিটাল অ্যাকচুয়েটরও ডিজিটাল সেন্সরগুলর মতো হয় উচ্চ বা নিম্ন ভোল্টেজের দ্বারা নিয়ন্ত্রিত দুটি স্টেট এ থাকে বা একটি DAC বিল্ট-ইন থাকে, যাতে ডিজিটাল সিগন্যালটিকে এনালগকে রূপান্তর করতে পারে। একটি সাধারণ ডিজিটাল অ্যাকচুয়েটর এর উদাহরণ হল একটি এলইডি। যখন কোন ডিভাইস ডিজিটাল সিগন্যাল হিসেবে 1 প্রেরণ করে, তখন একটি উচ্চ ভোল্টেজ প্রেরণ করা হয় যা LED জ্বালায় । আবার 0 এর একটি ডিজিটাল সিগন্যাল প্রেরণ করা হলে, ভোল্টেজ 0V এ নেমে আসে এবং LED বন্ধ হয়ে যায়। ![A LED is off at 0 volts and on at 5V](../../../../images/led.png) ✅ ২-অবস্থা বিশিষ্ট আর কোন অ্যাকচুয়েটর কী আশেপাশে দেখা যায় ? একটি উদাহরণ হলো সলিনয়েড, একটি ইলেক্ট্রোম্যাগনেট যা দ্বারা কোন দরজার নব নিয়ন্ত্রণ করে খোলা-বন্ধ করা যাবে। আরও উন্নত ডিজিটাল অ্যাকচুয়েটর যেমন স্ক্রিনের জন্য ডিজিটাল ডেটা নির্দিষ্ট ফর্ম্যাটে প্রেরণ করা প্রয়োজন। এগুলি সাধারণত প্রোগ্রাম লাইব্রেরিতে থাকে যা এগুলি নিয়ন্ত্রণ করতে সঠিক ডেটা প্রেরণকে সহজ করে। --- ## 🚀 চ্যালেঞ্জ শেষ দুটি পাঠের চ্যালেঞ্জ ছিল বাসস্থান, স্কুল বা কর্মক্ষেত্রে যতগুলি আইওটি ডিভাইস রয়েছে তা তালিকাভুক্ত করা এবং তারা মাইক্রোকন্ট্রোলার বা একক-বোর্ড কম্পিউটার, বা উভয়ের মিশ্রণের দ্বারা নির্মিত কিনা তা সিদ্ধান্ত নেওয়া। এবারের চ্যালেঞ্জ হলো, তালিকাভুক্ত প্রতিটি ডিভাইসের জন্য, তারা কোন সেন্সর এবং অ্যাকচুয়েটর সাথে সংযুক্ত আছে? এই ডিভাইসগুলির সাথে সংযুক্ত প্রতিটি সেন্সর এবং অ্যাকচুয়েটরের উদ্দেশ্য কী? ## লেকচার পরবর্তী কুইজ [লেকচার পরবর্তী কুইজ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/6) ## রিভিউ এবং স্ব-অধ্যয়ন * [ThingLearn](http://thinglearn.jenlooper.com/curriculum/) থেকে ইলেক্ট্রিসিটি ও সার্কিটের ব্যাপারে পড়া। * [Seeed Studios Temperature Sensors guide](https://www.seeedstudio.com/blog/2019/10/14/temperature-sensors-for-arduino-projects/) থেকে বিভিন্ন ধরণের তাপমাত্রা সেন্সরের ব্যাপারে জানা। * এলইডি সম্পর্কে [Wikipedia LED page](https://wikipedia.org/wiki/Light-emitting_diode) থেকে আরো বিস্তারিত ধারণা লাভ করা। ## এসাইনমেন্ট [সেন্সর এবং অ্যাকচুয়েটর নিয়ে গবেষণা ](assignment.bn.md)