<![CDATA[বিজ্ঞান ও প্রযুক্তির ব্যবহারের মানুষের দৈনন্দিন জীবন অনেক সহজ হয়ে উঠেছে। যেমন ধরুন, অফিসে বসে আপনার গাড়িটি বর্তমানে কোথায় আছে, কত কিলোমিটার বেগে চলছে তা জানতে অথবা বাসায় থাকা পোষা বিড়ালটি কি করছে তা দেখতে। হতে পারে আপনি তৈরি করতে চান একমন এক ডিভাইস যা ইন্টারনেটের মাধ্যমে মোবাইলে যুক্ত করে দূরবর্তী স্থানে বসে বাসার লাইট, ফ্যান, এসি, ফ্রিজ ইত্যাদি নিয়ন্ত্রণ করা যাবে। এমনই সব জটিল কাজ খুব সহজে মাইক্রোকন্ট্রোলার দিয়ে করা যায়। কিন্তু এই মাইক্রোকন্ট্রোলার জিনিসটা কি, এর কাজ কি কিভাবে এটা ব্যবহার করে ইত্যাদি বিষয়ে আজ আপনাদের জানাবো।
মাইক্রোকন্ট্রোলার কি?
মাইক্রোকন্ট্রোলার হচ্ছে ছোট্ট চিপ বা প্রোগ্রামেবল আইসি যা একটি সিঙ্গেল চিপ মাইক্রোকম্পিউটার নামে পরিচিত। চিপটিকে কোন ইলেকট্রনিক্স যন্ত্রের সাথে ইন্টারফেস করে নির্দেশনার মাধ্যমে পরিচালনা করা যায়। মাইক্রোকন্ট্রোলার বিভিন্ন মেশিন বা যন্ত্রপাতিকে স্বয়ংক্রিয়ভাবে কাজ করানোর জন্য ব্যবহৃত হয়। সহজ ভাবে বলা যায় মাইক্রোকন্ট্রোলার হচ্ছে ইলেকট্রনিক্স যন্ত্রের ব্রেইন। একটি কম্পিউটারে 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()” সেকশন। এই বিভাগে মাইক্রোকন্ট্রোলার এর ফাংশন লেখা হয়। এখানে যেকোনো অ্যাকশন এর জন্য পিন থেকে মান পড়া বা লেখার প্রয়োজন হয়, অথবা বিভিন্ন ভেরিয়েবলের মান গণনা করা হয়ে থাকে।
কম্পাইলিং ও আপলোডিং
এই ধাপটি প্রায় সবসময় IDE দ্বারা পরিচালিত হয়। যখনই কোনো কোড লেখা হয়ে যায়, এটি মাইক্রোকন্ট্রোলার এ আপলোড করতে হবে। বেশিরভাগ এর USB ইন্টারফেস আছে কিন্তু ছোট মাইক্রোকন্ট্রোলার গুলোর প্রোগ্রাম করার জন্য একটি বিশেষ হার্ডওয়্যার প্রয়োজন হয়। সাধারণত যখন মাইক্রোকন্ট্রোলার কে উচ্চ স্তরের ভাষায় প্রোগ্রাম করা হয়, তখন মাইক্রোকন্ট্রোলার নিজে কোনো এসেম্বলি তে রান হয়ে থাকে। একটি মাইক্রোকন্ট্রোলার দ্বারা উইজাবল কোড কে ট্রান্সলেট করতে হলে কম্পাইলার ব্যবহার করতে হবে।
কম্পাইলার একটি সফটওয়্যার টুল যা উচ্চ স্তরের কোড কে গ্রহণ করে এবং এসেম্বলির জন্য এটিকে অপটিমাইজ করে থাকে। এসেম্বলি মাইক্রোকন্ট্রোলার মূলত অরিজিন্যাল কোডের অপারেশনের সাথে মিল রেখে কোনো একটি রেজিস্টারের কি অপারেশন করতে হবে সে সম্পর্কে নির্দিষ্ট নির্দেশনা প্রদান করে। একবার যদি এসেম্বলি কোড তৈরি হয়ে যায় এটি পরীক্ষা করার জন্য তখন মাইক্রোকন্ট্রোলার এ আপলোড করা যেতে পারে।
ডিবাগিং
প্রথম প্রচেষ্টায় সাধারণ আপনার সব কিছু পুরোপুরি কাজ করবে না। ডিবাগিং যেকোনো ডিজাইন প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ এবং প্রোগ্রামিং মাইক্রোকন্ট্রোলার ও এর ব্যতিক্রম কিছু নয়। সৌভাগ্যবশত, কোনোরূপ অতিরিক্ত প্রচেষ্টা ছাড়াই error শনাক্তের জন্য অনেক গুলো পদ্ধতি রয়েছে।
সবচেয়ে মৌলিক পদ্ধতি হলো আপনার তৈরি কৃত মাইক্রোকন্ট্রোলার কে নিয়ন্ত্রণ করার জন্য এটিকে সার্কিটে সংযুক্ত করতে হবে। প্রায়শই আউটপুট পর্যবেক্ষণের মাধ্যমে এর ভুল এবং বিভিন্ন কার্যকারিতা সম্পর্কে বিস্তারিত ধারণা পাওয়া যায়। একে ব্ল্যাক বক্স টেস্টিং বলা হয়ে থাকে। যদিও এই পদ্ধতি অনেক সহজ এবং এতে কোনো অতিরিক্ত সরঞ্জামের প্রয়োজন নেই। এটি খুব সীমিত পরিসরে তাই ব্যবহার করা হয় কারণ এর মাধ্যমে মাইক্রোকন্ট্রোলার এর অভ্যন্তরীণ কাজের কোনো ধারণা পাওয়া যায় না।
ইতোপূর্বে আমরা জেনেছি যে, বেশিরভাগ IDE গুলোতে ডিবাগার থাকে কারণ তা ভেরিয়েবল ও রেজিষ্টার ট্র্যাক করার সময় ধাপে ধাপে কোড গুলোর রান সম্পর্কে ধারণা দিয়ে থাকে। যাতে করে ব্যবহারকারীগণ ঠিক কোন পয়েন্টে প্রোগ্রামটি তার উদ্দেরশের চেয়েও ভিন্নভাবে আচরণ করে তা শিখতে পারে। এটি সাধারণত হোয়াইট বক্স পরীক্ষার একটি ফরম। একটি ত্রুটিপূর্ণ প্রোগ্রামের কারণ নির্ণয় করতে এটি ব্যবহার করা যেতে পারে। এছাড়াও এটি অনেক গুরুত্বপূর্ণ তথ্য প্রদান করে থাকে।
মাইক্রোকন্ট্রোলার নিতে বিস্তারিত কিছু তথ্য উল্লেখ করার চেষ্টা করেছি। পরবর্তীতে এই বিষয়ে আরও ব্লগ পোস্ট পেতে টেকশপবিডি’র ব্লগের সাথেই যুক্ত থাকুন। এছাড়া ইলেকট্রনিক্সে বিভিন্ন কোর্স করতে পাই ল্যাবস একাডেমিতে যোগাযোগ করতে পারেন, এখানে বেসিক ইলেকট্রনিক্স, আরডুইনো, পিসিবি ডিজাইন, সি-প্রোগ্রাম, পাইথন, মাইক্রোকন্ট্রোলার, আই ও টি, রোবটিক্স কোর্সের ব্যবস্থা রয়েছে।]]>