মাইক্রোকন্ট্রোলার কি? মাইক্রোকন্ট্রোলার হচ্ছে ছোট্ট চিপ বা প্রোগ্রামেবল আইসি যা একটি সিঙ্গেল চিপ মাইক্রোকম্পিউটার নামে পরিচিত। চিপটিকে কোন ইলেকট্রনিক্স যন্ত্রের সাথে ইন্টারফেস করে নির্দেশনার মাধ্যমে পরিচালনা করা যায়। মাইক্রোকন্ট্রোলার বিভিন্ন মেশিন বা যন্ত্রপাতিকে স্বয়ংক্রিয়ভাবে কাজ করানোর জন্য ব্যবহৃত হয়। সহজ ভাবে বলা যায় মাইক্রোকন্ট্রোলার হচ্ছে ইলেকট্রনিক্স যন্ত্রের ব্রেইন। একটি কম্পিউটারে RAM, CPU, IO Pins, Hard disk ইত্যাদি থাকে। মাইক্রোকন্ট্রোলারে এসবই রয়েছে কিন্তু খুবই সীমিত আকারে। মূলত দুটি অংশে ভাগ করা যায় মাইক্রোকন্ট্রোলারকেঃ
- কন্ট্রোল ইউনিট: এই ইউনিট মেমোরি থেকে ডেটা আনতে ব্যবহার করা হয়।
- এক্সিকিউশন ইউনিট: এই ইউনিট ডেটা এক্সিকিউট বা রান করার জন্য ব্যবহার করা হয়ে থাকে।
মাইক্রোকন্ট্রোলার এর সংক্ষিপ্ত ইতিহাস
আমেরিকান কোম্পানি ইন্টেল কর্পোরেশন প্রথম মাইক্রোকন্ট্রোলার তৈরি করে ১৯৭১ সালে। এটি i4004 নামের একটি 4-bit মাইক্রোকন্ট্রোলার ছিল। পরবর্তীকালে ইন্টেল সেই সময়ে একটি 8-bit মাইক্রোকন্ট্রোলার সহ আরো একটি অত্যাধুনিক মডেল তৈরি করেছিল এবং পরে Toshiba দ্বারা 12-bit এর আরো একটি উন্নত মডেল তৈরি করা হয়। মাইক্রোকন্ট্রোলারের ভালো কিছু ব্র্যান্ডের নাম যেমনঃ Microchip (PIC/dsPIC), Atmel (AVR/ARM), Arduino (মাইক্রোকন্ট্রোলার নয় কিন্তু AVR মাইক্রোকন্ট্রোলার দিয়ে তৈরি), Samsung/Toshiba/Intel ইত্যাদি আরও অনেক ব্যান্ডের আছে।মাইক্রোকন্ট্রোলারের প্রকারভেদ
প্রসেসিং ওয়ার্ডের আকার, নির্দেশনা সেট, মেমরি গঠন, মেমরি ডিভাইসের উপর ভিত্তি করে মাইক্রোকন্ট্রোলারকে নিম্নলিখিত ভাগে বিভক্ত করা যায়ঃ- মেমরি ডিভাইসের উপর ভিত্তি করেঃ
- সংযোজিত মেমরি মাইক্রোকন্ট্রোলার
- বাহ্যিক মেমরি মাইক্রোকন্ট্রোলার
- প্রসেসিং ওয়ার্ডের আকারের উপর ভিত্তি করেঃ
- ৪-বিট মাইক্রোকন্ট্রোলার
- ৮-বিট মাইক্রোকন্ট্রোলার
- ১৬-বিট মাইক্রোকন্ট্রোলার
- ৩২-বিট মাইক্রোকন্ট্রোলার
- মেমরি গঠনের উপর ভিত্তি করেঃ
- ভন-নিউম্যান আর্কিটেকচার মাইক্রোকন্ট্রোলার
- হার্ভার্ড আর্কিটেকচার মাইক্রোকন্ট্রোলার
- নির্দেশনা সেটের উপর ভিত্তি করেঃ
- কমপ্লেক্স নির্দেশনা সেট কম্পিউটার
- রিডাকড নির্দেশনা সেট কম্পিউটার
মাইক্রোকন্ট্রোলার এর ব্যবহার
ইলেকট্রনিক্স ডিভাইসের অভ্যন্তরে মাইক্রোকন্ট্রোলারের উপস্থিতি ডিভাইসকে আরও আধুনিক করে। নিচে মাইক্রোকন্ট্রোলারের ব্যবহার সমূহ উল্লেখ করা হলোঃ- সুপার মার্কেটে ক্যাশ রেজিস্টার ও ওজন মাপার যন্ত্রে।
- শিল্প কারখানায় স্বয়ংক্রিয় ব্যবস্থাপনায় নিরাপত্তা দেওয়া, অটোমেটিক পাম্প নিয়ন্ত্রণ, অপটিক্যাল মডিউলে, অপটিক্যাল নেটওয়ার্কিং ইত্যাদি কাজে ব্যাপক ব্যবহার হয়ে থাকে।
- বাসাবাড়িতে ওভেন, এসির তাপমাত্রা নিয়ন্ত্রনে, মাইক্রোওভেনে ও ওয়াশিং মেশিনে।
- অফিসে ফটোকপির মেশিনে, লিফটে ও প্রিন্টারে ইত্যাদি।
- এছাড়া বাচ্চাদের খেলনায়, টেলিভিশনে ,মিউজিকাল ইন্সট্রুমেন্টে কিংবা হাসপাতালের বিভিন্ন ডিভাইসে মাইক্রোকন্ট্রোলার এর ব্যবহার দেখা যায়।
মাইক্রোকন্ট্রোলার কিভাবে প্রোগ্রাম করে?
ইলেকট্রনিক্স ডিভাইসের অভ্যন্তরে মাইক্রোকন্ট্রোলার বসালেই কাজ করবে এমন না, এটা প্রয়োজন অনুযায়ী প্রোগ্রাম লোড করে ডিভাইস পরিচালনা করা হয়। মাইক্রোকন্ট্রোলার কি এই বিষয়ে তো আমরা জেনেছি, এখন চলুন জেনে নেই সিঙ্গেল চিপ মাইক্রোকম্পিউটারকে কিভাবে প্রোগ্রাম করতে হয়। মাইক্রোকন্ট্রোলার গুলোতে সাধারণত উচ্চ স্তরের ভাষা যেমন: C++ বা Java প্রোগ্রাম ব্যবহার করা হয়। একটি মাইক্রোকন্ট্রোলার প্রোগ্রাম করার জন্য প্রয়োজনীয় সরঞ্জাম গুলোর মধ্যে একটি হল Integrated Development Environment (IDE)। এই সফটওয়্যারটি সাধারণত মাইক্রোকন্ট্রোলার নির্মাতাদের দ্বারা তৈরী করা হয় এবং এতে মাইক্রোকন্ট্রোলার কে সাহায্য করার জন্য দরকারী টুল রয়েছে। IDE তে পাওয়া সাধারণ সরঞ্জাম গুলোর মধ্যে রয়েছে কোড এডিটর, কম্পাইলার, ডিবাগার। এছাড়াও মাইক্রোকন্ট্রোলার গুলোর প্রয়োগের উপর নির্ভর করে অতিরিক্ত বৈশিষ্ট্য ও যোগ করা যেতে পারে। একবার একটি উপযুক্ত IDE প্রাপ্ত হলে, কোড লেখা শুরু করতে পারবে। নিচে একটি সাধারণ Arduino program এর উদাহরণ দেয়া হলো যা 1 Hz ফ্রিকোয়েন্সি তে একটি LED blink অন এবং অফ করে থাকে। কোডটি ৪ টি ভিন্ন বিভাগে বিভক্তঃ- ১. কোডটি শুরু করার আগে সাধারণত একটি বিবরণ সম্বলিত মন্তব্য দেওয়া হয় যা কোডটি সম্পর্কে বিস্তারিত ধারণা প্রদান করে। যদিও এই বিভাগের কার্যকারিতার উপর কোনো প্রভাব নেই তবুও ভবিষ্যতের রেফারেন্সের জন্য এটি সহায়ক হিসেবে কাজ করে। ব্যবহারকারীর নির্দেশনাবলী, কোম্পানি এবং কপিরাইট তথ্য ও সাধারণত স্থাপন করা হয়ে থাকে।
- ২. দ্বিতীয় বিভাগটি একটি পরিবর্তনশীল ডেকোরেশন হিসেবে কাজ করে। এই ভ্যারিয়েবল গুলো সর্বজনীন ও বিশ্বব্যাপী যেকোনো বিভাগে ব্যবহার করা যেতে পারে। সাধারণত ভ্যারিয়েবল গুলো প্রতিটি পিনের ফাংশন বর্ণনা এবং কোডিং কে আরো স্বজ্ঞাত করতে বোর্ডের পিন নম্বরের সমান সেট করা হয়ে থাকে।
- ৩. তৃতীয় বিভাগে সাধারণত “Void Setup ()” সেকশন আসে। মাইক্রোকন্ট্রোলার গুলোতে ডিজিটাল পিন সাধারণত ইনপুট বা আউটপুট হিসাবে ব্যবহৃত হয়, তবে খুব কমই উভয় ফাংশন ব্যবহার করা হয়। এই সেকশনে ব্যবহারকারী সংজ্ঞায়িত করে কোন পিন গুলো ইনপুট বা আউটপুট হিসেবে কাজ করে সেই সাথে অন্য প্যারামিটার ও আরম্ভ করা আবশ্যক। যদিও এই পদ্ধতি বিভিন্ন মাইক্রোকন্ট্রোলার এর জন্য পরিবর্তিত হয় কিন্তু প্রায় সকল মাইক্রোকন্ট্রোলার এর অভ্যন্তরীণ সার্কিটরি কনফিগার করার জন্য একই স্টেপের প্রয়োজন হয়।
- ৪. সবশেষে, “Void Loop()” সেকশন। এই বিভাগে মাইক্রোকন্ট্রোলার এর ফাংশন লেখা হয়। এখানে যেকোনো অ্যাকশন এর জন্য পিন থেকে মান পড়া বা লেখার প্রয়োজন হয়, অথবা বিভিন্ন ভেরিয়েবলের মান গণনা করা হয়ে থাকে।