ডিসক্লেইমারঃ এটি মাইক্রোকন্ট্রনার নিয়ে বেসিক আলোচনা। যারা নবীশ বা মাক্রোকন্ট্রলার নিয়ে শুরুর প্রক্রিয়ায় আছেন তাদের কৌতুহোলই এই আলোচনার উপজিব্য। কোন একাডেমিক / প্রফেশনাল বা ক্রিটিকাল আলোচনা বা প্রশ্নোত্তরের প্রত্যাশা সঠিক হবেনা। এখানকার অধিকাংশ আলোচনাই ধার করা (adopted) কোন মৌলিক বা নতুন কোন আলোচনা এখানে নেই। তথ্যগত / ধারনাগত অসংগতি থাকতেই পারে তাই এই আলোচনার ভিত্তিতে কোন প্রজেক্ট দাড়া করানো হলে তার লাভ বা ক্ষতির দায় দায়িত্ব লেখকের নয়। সঠিকতার ভিত্তিতে ধারনা/তথ্য দ্রুততম সময়ে সংশোধন করা হবে।
পূর্বাভিজ্ঞতাঃ
এই লেখার পাঠকদের নিচের বিষয়ে পূর্বাভিজ্ঞতা আছে বলে ধরে নেয়া হয়েছে। এই সকল বিষয়ে বিস্তারিত আলোচনা এই লেখার আওতা বহির্ভূত তবে প্রয়োজনে কিছু বিষয়ে আলোচনা করা হবে।
১। ডিজিটাল ইলেকট্রনিক্স সম্পর্কে ধারনা।
২। গনিত,বাইনারি গনিত, BCD। এছাড়া অক্টাল ও হেক্সাডেসিমেল গনিত সম্পর্কে ধারনা থাকা ভাল।
৩। কম্পিউটারের আর্কিটেকচার সম্পর্কে ধারনা।
৪। প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন, C/C++ সম্পর্কে ধারনা
ভূমিকা ও প্রারম্ভিক আলোচনা
কিছু FAQ টাইপ প্রশ্ন উত্তর
মাইক্রোকন্ট্রলারের সংঙ্গা, নামকরন, ইতিহাস, আর্কিটেকচার ইত্যাদি বিষয় ইচ্ছা করলে অবতারনা করা যায় কিন্তু ঐদিকে না গিয়ে প্রাসংগিক কিছু জিনিস যা না জানলেই নয় তা এখানে আলোচনা করা হলো
১। মাইক্রো কন্ট্রলার (MCU= Micro Controller Unit) কিঃ
সিঙ্গেল আই সি বেজড কম্পিউটার সিস্টেম (প্রায়)
২। CPU (=Central Processing Unit, যাকে আমরা শুধু প্রসেসরও বলি) আর MCU এর পার্থক্য কি? কোনটি ভাল ?
CPU হলো কম্পিউটারের সাব সিস্টেম (অংশ বিশেষ) যার শুধু প্রসেসিং পাওয়ার আছে (ব্রেন ) কিন্তু ইনপুট (ইন্দ্রিয়) আওটপুট (সাড়া)-এর জন্য অন্য সাব সিস্টেমের উপর নির্ভর করে। কিন্ত MCU নিজেই একটি সম্পুর্ন সিস্টেম যার ভিতরে CPU ও অন্যান্য ইনপুট আউটপুট সিস্টেম বিল্টইন থাকে।
যার যার ক্ষেত্রে সেই রাজা। সাধারন (Generic) সমস্যায় যে খানে প্রচুর রিসোর্স (পাওয়ার, মেমরী, দ্রুততা) লাগে সেখানে CPU বেসড ফুল কম্পিউটার আর যেখানে সুনির্দিষ্ট কাজে অল্প রিসোর্স লাগে সেখানে MCU-ই যথেষ্ঠ।
৩। কিকি MCU আছে? এদের পার্থক্য কি?
প্রচুর MCU আছে। এখানে বিস্তারিত আছেঃ https://en.wikipedia.org/wiki/List_of_common_microcontrollers। তবে ৮ বিট বিশিষ্ট Microchip
এর PIC, Atmel এর AVR মাইক্রো কন্ট্রোলারগুলি হবিষ্টদের মধ্যে বেশী জনপ্রিয়। ৩২ বিট ARM এর ডিজাইন বেজড মাইক্রোকন্ট্রলারও জনপ্রিয়।
আভ্যন্তরিন গঠন বা আর্কিটেকচারে পার্থক্য হয় উদ্দ্যেশের উপর ভিত্তি করে। কোনটির মেমরী কম/বেশী, CPU কোর ভিন্ন ও গতি (MHz) কম বেশী, রেজিষ্টার কম বেশী।
৪। কোন মাইক্রোকন্ট্রলার ব্যাবহার সহজ/ভালো/সুবিধা
এটা অনেকটা PC না Mac। Android না IPhone টাইপের প্রশ্ন। এর ক্লিয়ার কাট উত্তর নাই। যে যেটায় স্বাচ্ছন্দ বোধ করে। কারন আভ্যন্তরিন আর্কিটেকচার ভিন্ন হলেও একই রকম আউটপুট তৈরী করতে পারে।
৫। ৮ বিট, ১৬ বিট, ৩২ বিট (বা ৬৪ বিট) ইত্যাদি কি?
এর সংক্ষিপ্ত উত্তর এভাবে দেয়া যায় যে, বিট হচ্ছে রেজিষ্ট্রারের পরিমাপক। বিট যত বেশী রেজিষ্টার তত বড় তাতে এবং তত বেশী মেমোরী সংযুক্ত করা যায়। ক্লক স্পিডে বেশী ইনস্ট্রাকশন সম্পন্ন করা যায় ফলে প্রসেসিং দ্রুততর হয়। কিন্তু পাওয়ার খরচ বাড়ে সার্কিটের জটিলতা বৃদ্ধি পায় ফলত খরচও বাড়ে। ছোট খাট কাজে যেমন, এল ই ডি জ্বালানো নিভানো, মটরের স্পিড কন্ট্রলে বা ডিজিটাল ঘড়িতে খুব বেশি স্পিড না হলেউ চলে তাই ৮ বিট প্রসেসরই যথেষ্ঠ। কিন্তু হেভি গ্রাফিক্স ম্যানিপুলেশন বা গেম খেলার ক্ষেত্রে প্রচুর স্পিডের ও অনেক প্রসেসিং পাওয়ার দরকার হয়। সেক্ষেত্রে ৩২ বা ৬৪ বিট মাইক্রোকন্ট্রলার বিশেষ প্রয়োজন।
৬। Arduino কি ধরনের মাইক্রোকন্ট্রলার?
Arduino আসলে নিজে কোন মাইক্রো কন্ট্রলার না। Arduino আসলে একটা ডেভেলপমেন্ট বোর্ড (বা মাদার বোর্ড) যাতে AVR বেসড মাইক্রোকন্ট্রলার ব্যাবহার করা হয়। যেমনঃ ATmega328
৭। রাসবেরি পাই/ব্যানানা ইত্যাদি কি মাইক্রোকন্ট্রলারঃ
না। এই গুলি মাইক্রোপ্রসেসর বেসড কম্পিউটার সিস্টেম। যারা পিসি/ম্যক-এর মতো অপারেটিং সিস্টেম দ্বারা পরিচালিত হয় ও প্রোগ্রাম এক্সিকিউট করে।
অনেক সুন্দর……. keep it touch….
sir, please information me how to write microcontroller program.
plz have patience!
অনেক ভাল , নতুন পর্বের অপেক্ষায় রইলাম।
valo
again a great post….thank you bro…..btw,ami airkm jani je arduino te sd card ttheke program run kra jay na,kno vabe bootloder chng kore ki kaj ta kra jabe?…or xtra eprom theke?
অসম্ভব না তবে জটিল। এখানে দেখুনঃ http://www.github.com/thseiler/embedded/tree/master/avr/2boots
ইনষ্ট্রাকশনঃ https://github.com/thseiler/embedded/blob/master/avr/2boots/README
thank you vai….dekhteci….. 🙂 🙂 🙂
Thx @Sakhawat for your comment, I think Shamim vai can answer your question well…….. Shamim Ahmed
(Y)
এই মাইক্রকন্ট্রলার গুলো দিয়ে ঠিক কিকি কাজ করা যেতে পারে? তা নিয়ে কিছু প্রশ্ন ছিল
প্রায় সব ধরণের কাজই করা সম্ভব….
উদাহরন দিতে পারবেন
http://www.amaderelectronics.com/tag/microcontroller -এখানে অনেক গুলো প্রজেক্ট পাবেন মাইক্রোকন্ট্রোলার নির্ভর… এছাড়াও আরো অনেক রকমই সম্ভব।
Thanks buddy
সামিম ভাইয়া ধন্যবাদ।