লেখক: টারন ফক্সওয়ার্থ
মৌলিক স্তরে, একটি মাইক্রোকন্ট্রোলার হলো একটি ছোট কম্পিউটার।
"ছোট কম্পিউটার" বললেই আমাদের অনেক কিছু জানা যায় না। তাই গভীরে যাই। অনেক লোক মাইক্রোকন্ট্রোলারের সাথে আর্ডুইনো (Arduino) সংযুক্ত করে। কিন্তু গুরুত্বপূর্ণ: আর্ডুইনো একটি মাইক্রোকন্ট্রোলার নয়। আর্ডুইনো একটি সম্পূর্ণ প্ল্যাটফর্ম যা সফটওয়্যার ও হার্ডওয়্যারের বিস্তৃত পরিধি কভার করে।
আর্ডুইনো আর্ডুইনো উনো (Arduino Uno) এর মতো ডিভাইস তৈরি করে:
Arduino Uno
আর্ডুইনো উনোও একটি মাইক্রোকন্ট্রোলার নয়। এটি Atmel ATmega328P মাইক্রোকন্ট্রোলার বেসড একটি ব্রেকআউট বোর্ড।
এখানে Atmel মাইক্রোকন্ট্রোলারের চিত্র দেওয়া হলো:
আপনার হাতে শুধু Atmel মাইক্রোকন্ট্রোলার থাকলে, একটি বিগিনারের জন্য সেটি খুব উপকারী নয়। এখানেই ব্রেকআউট বোর্ডের প্রয়োজন হয়।
ব্রেকআউট বোর্ড মাইক্রোকন্ট্রোলারের পিনগুলোকে "ব্রেক আউট" করে একটি বড় ডিভাইসে (যেমন আর্ডুইনো উনো) রূপান্তর করে। এই বড় ডিভাইস মাইক্রোকন্ট্রোলার ব্যবহার করা সহজ করে তোলে।
আর্ডুইনো উনোর জন্য, ব্রেকআউট বোর্ড আপনাকে ইউএসবি কর্ড লাগাতে, পাওয়ার দিতে, ডিভাইস প্রোগ্রাম করতে, এবং আরও অনেক কিছু করতে দেয়।
ব্রেকআউট বোর্ড ছাড়া, একটি বিগিনারের জন্য এটি একটি ভয়ংকর কাজ হত। এই সমস্যাটিই আর্ডুইনোর অস্তিত্বের কারণ—হার্ডওয়্যার শিখতে চাইলে এটি অত্যন্ত সহজ করে দেয়।
আহা, তো কি এটি রাসপবেরি পাই (Raspberry Pi) এর মত?
এই, পুরোপুরি নয়। আর্ডুইনো এবং রাসপবেরি পাই দুটোই সংজ্ঞা অনুযায়ী কম্পিউটার। কিন্তু রাসপবেরি পাই একসিঙ্গেল-বোর্ড কম্পিউটার (single-board computer) বলে বিবেচিত হয়। একটি সিঙ্গেল-বোর্ড কম্পিউটার হলো একটি পূর্ণ কম্পিউটার যা একটি সিঙ্গেল সার্কিট বোর্ডে তৈরি হয়েছে।
A Raspberry Pi
আপনার ল্যাপটপও техниিক্যালি একটি সিঙ্গেল-বোর্ড কম্পিউটার—শুধু একটি শক্তিশালী একটা। রাসপবেরি পাই আপনার ল্যাপটপের হার্ডওয়্যারের একটি সিম্পল ভার্সন। যেমন আপনার ল্যাপটপ একটি অপারেটিং সিস্টেম (Windows, Mac, বা Linux) রান করে, রাসপবেরি পাইও একটি লিনাক্স অপারেটিং সিস্টেম রান করে।
এখন ফিরে যাই মাইক্রোকন্ট্রোলারের দিকে। মাইক্রোকন্ট্রোলার একটি অপারেটিং সিস্টেম রান করতে পারে না। মাইক্রোকন্ট্রোলারের সিপিইউ পাওয়ার বা রিসোর্স সিঙ্গেল-বোর্ড কম্পিউটারের মত নয়।
একটি মাইক্রোকন্ট্রোলার শুধু একটি প্রোগ্রাম বারবার রান করে—না কোনো পূর্ণ অপারেটিং সিস্টেম। আর্ডুইনো প্রোগ্রামে আমরা এটা দেখতে পাই কারণ সেটি শুধু দুটি ফাংশন দরকার করে: Setup এবং loop। Setup একবার রান হয় এবং loop অনির্দিষ্টকাল রান করে।
Setup and Loop
তো, মাইক্রোকন্ট্রোলার কী?
একটি মাইক্রোকন্ট্রোলার হলো একটি ছোট কম্পিউটার যার লো-মেমরি এবং প্রোগ্রামেবল ইনপুট/আউটপুট পেরিফেরাল রয়েছে।
ইনপুট/আউটপুট
আপনি যেনে থাকেন, কম্পিউটারের সাথে সব কিছু বাইনারি (০ বা ১) দিয়ে শুরু হয়।
ইনপুট মানে মাইক্রোকন্ট্রোলার বাইনারি পড়বে। উদাহরণ: একটি সেন্সর।
আউটপুট মানে মাইক্রোকন্ট্রোলার বাইনারি পাঠাবে। উদাহরণ: একটি মোটর বা এলইডি কন্ট্রোল করা।
আমাদের মাইক্রোকন্ট্রোলার কেন দরকার?
এগুলো আজকের কম্পিউটারের ধারণায় আসার আগে "কম্পিউটার" ছিল। মাইক্রোকন্ট্রোলার বাঁচিয়ে আছে কারণ কিছু কম্পিউটিং টাস্ক অত্যন্ত טרিভিয়াল এবং সিম্পল লজিক চায়। উদাহরণস্বরূপ, একটি সুইচ ফ্লিপ করা বা ছোট কম্পোনেন্ট কন্ট্রোল করা—যেমন একটি এলইডি লাইট—দিন দিনের কাজের মত রিসোর্স দরকার নয় (যেমন ইমেইল পাঠানো)।
আমরা আজ এগুলো ব্যবহার করি কারণ এদের লো-পাওয়ার্ড এবং লো মেমরি এদের লো-কস্ট করে তোলে। মাইক্রোকন্ট্রোলারই ইন্টারনেট অফ থিংস (IoT) আজ সম্ভব ও সফল করে তোলার কারণ একটা।
আমি কীভাবে একটি মাইক্রোকন্ট্রোলার পাব?
আপনি কোন মাইক্রোকন্ট্রোলার চান সেটি নির্ভর করে আপনি কোন সমস্যা সমাধান করতে চান। আপনি যদি কিছু সিম্পল করুন—জিনিস অন-অফ করা বা একটি সেন্সর পড়া—তো প্রায় যেকোনো মাইক্রোকন্ট্রোলারই চলবে।
আপনি যদি গেম খেলতে চান বা আরও কমপ্লেক্স আইডিয়া থাকে, তবে আপনাকে বেশি কম্পিউট পাওয়ার লাগবে, তখন আপনাকে সিঙ্গেল-বোর্ড কম্পিউটারের দিকে যেতে হবে, যেমন রাসপবেরি পাই।
Adafruit এবং Sparkfun উভয়ের पास টন কিট এবং হার্ডওয়ার আছে যা সব খুব ভালো। আপনি তাদের টিউটোরিয়ালও ফলো করতে পারেন।
Losant-ও কিছু কুল কিট রেখেছে। আপনি নিজের ডোর সেন্সর বানাতে পারেন—দের খোলা থাকলে নোটিফিকেশন পাওয়ার জন্য।
আপনার কোনো নির্দিষ্ট সমস্যা না থাকলে, শুধু কিছু হার্ডওয়ার নিয়ে খেলুন।
শুরু করার জন্য কী কী কিনবেন:
১. NodeMCU নামে একটি বোর্ড
Node MCU
NodeMCU হলো ESP8266 মাইক্রোকন্ট্রোলার বেসড একটি বোর্ড। এই বোর্ডটি スペシャル কারণ এটি সস্তা এবং ওয়াইফাই-ইনাবলড। অ্যামাজনে এটার দাম প্রায় $৮.৭৯, ইবায়ে আরও কম।
সব মাইক্রোকন্ট্রোলার ওয়াইফাই-ইনাবলড নয়। এটার ওয়াইফাই থাকা অনেক প্রজেক্টের দরওয়াজা খুলে দেয়। উদাহরণস্বরূপ, আপনি ডেটা কালেক্ট করে ক্লাউডে পাঠাতে পারেন ☁️।
২. কিছু সেন্সর লাগবে
Bread Board
সেন্সর ছাড়া হার্ডওয়্যার হয় না। সেন্সর আপনাকে পরিবেশ এবং আপনার চারপাশের জগত ডিটেক্ট করার ক্ষমতা দেয়। এগুলো শিখতেও খুব ভালো টুল।
৩. ব্রেডবোর্ড ও জাম্পার 와য়ার লাগবে:
একটি সেন্সর এবং মাইক্রোকন্ট্রোলার একসাথে কানেক্ট করতে হলে, সেগুলো ব্রেডবোর্ডে প্লাগ করুন এবং জাম্পার ওয়্যার দিয়ে কানেক্ট করুন।
নোট: সব কিছু ইবায় এবং অ্যালিএক্সপ্রেসে সস্তা। শুধু কয়েক সপ্তাহ শিপিংয়ের জন্য অপেক্ষা করতে হয়।
আমি কী বানাব?
আরেকবার বলছি—এটি যত বললেও কম—একটি প্রজেক্ট মনে রেখে শুরু করা অনেক সহজ। এখন আপনি মাইক্রোকন্ট্রোলার কী এবং কীভাবে পেতে হয় সেটি বুঝলেন, তখন আপনার চারপাশের জগতকে ভিন্ন দৃষ্টিতে দেখুন। আপনি কী কন্ট্রোল করতে পারেন? কী অটোমেট করতে পারেন? একবার এই প্রশ্নের উত্তর খুঁজে পেলে, আপনি একটি প্রজেক্ট খুঁজে পাবেন।
প্রজেক্ট চিন্তা করার সময়, Hackster আপনার সেরা বন্ধু। Hackster-এ টন ESP8266 প্রজেক্ট এবং কিছু কুল আর্ডুইনো প্রজেক্ট আছে।
উদাহরণস্বরূপ, আপনি বাচপনের একটি স্বপ্ন পুরন করতে পারেন।
আপনি রোবটও বানাতে পারেন।
মূল কথা হলো, আপনার শুধু একটি আইডিয়া দরকার।
কभी কখন বাস্তব জগত প্রোগ্রাম করা ভার্চুয়াল জগতের চেয়ে বেশি মজাদার।
এখন কী?
মাইক্রোকন্ট্রোলার শুধু শুরু। আপনার সামনে হার্ডওয়্যারের একটি পূর্ণ জগত আছে। হ্যাপি হ্যাকিং! ??
আরও পড়ুন:
The Absolute Beginner's Guide to Arduino
_ক্রিসমাস ব্রেকের সময় আমি কিছু নতুন শিখতে চেয়েছিলাম। আর্ডুইনো নিয়ে কিছুক্ষণ ধরে আগ্রহ ছিল, এবং…_forefront.io
টারন ফক্সওয়ার্থ একটি হার্ডওয়্যার হ্যাকার এবং Losant-এ ডেভেলপার ইভেঞ্জেলিস্ট। তার লক্ষ্য মানুষ শিখতে, ভালোবাসতে, এবং অনুপ্রাণিত হতে টেকনোলজি অনুবাদ করা।
ফ্রি কোড ক্যাম্পের ওপেন সোর্স কারিকুলাম ৪০,০০০+ মানুষকে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন।