বাড়ি ব্লগ পৃষ্ঠা 2

তৈরি করুন সহজ কোড লক সিকিউরিটি সুইচ

1
তৈরি করুন সহজ কোড লক সিকিউরিটি সুইচ
তৈরি করুন সহজ কোড লক সিকিউরিটি সুইচ

কোড লক সিকিউরিটি সুইচ আমরা প্রায়ই মুভিতে দেখি। যেখানে নির্দিষ্ট কোড ঢুকানোর পর কোন সুইচ অন হয়। কিংবা সিকিউরিটি লক টি খুলে যায়। কেমন হয় যদি আমরা নিজেরাও তেমন একটি কোড লক সিকিউরিটি সুইচিং সিস্টেম বানাই। আর যদি তা হয় একদম সহজ কিছু ইলেকট্রনিক পার্টস দিয়ে তাহলে তো কথাই নেই। আজকে তেমনি একটি প্রজেক্ট নিয়ে লিখছি।

কোড লক সুইচ কি

এটি এমন একটি ইলেকট্রনিক সিকিউরিটি ডিভাইস যা কিনা আগে থেকে নির্দিষ্ট একটি কোডের মাধ্যমেই কাজ করে বা চালু হয়। উল্টোপাল্ট বা ভুল নাম্বার চাপলে সেটির আউটপুট অন হবে না। ফলে এর আউটপুটে সংযুক্ত কোন লোড কিংবা ম্যাগনেটিক লক খুলবে না বা সিকিউরিটি ডিভাইস টি চালু হবে না।

এখানে উল্লেখ্য যে ইন্টারনেটে এমন অনেক স্কিমেটিক ডিজাইন আছে। জটিল মাইক্রোকন্ট্রোলার থেকে শুরু করে অনেক আইসি সম্বলিত কোড লক ডিভাইস ও দেখা যায়। কিন্তু আমার এটিতে এত জটিলতা নেই। মাত্র কয়েকটি ট্রানজিস্টর ব্যবহার করেই এটি তৈরি করা হয়েছে। নিচে কিছু অত্যাধুনিক সিকিউরিটি ডিভাইস সিস্টেমের ছবি দেখুন-

অত্যাধুনিক কিছু কোড লক সিস্টেম
অত্যাধুনিক কিছু কোড লক সিস্টেম

স্কিমেটিক ডায়াগ্রাম

আসুন প্রথমেই আমরা এই কোড লকের স্কিমেটিক ডায়াগ্রাম টি দেখি-

কোড লক সিকিউরিটি সুইচের সার্কিট ডায়াগ্রাম
কোড লক সিকিউরিটি সুইচের সার্কিট ডায়াগ্রাম

দেখতেই পাচ্ছেন মাত্র ৪টি BC547 ট্রানজিস্টর আর কিছু খুব কমন পার্টসের সমন্বয়ে এটি তৈরি করা হয়েছে এই সিকিউরিটি সুইচিং ডিভাইস টি। কিন্তু সহজ দেখালেও এর সুবিধাবলী কিন্তু কম নয়।

সুবিধাবলী

  • পরপর নির্দিষ্ট সুইচ প্রেস করলেই (এখানে 257 সেট করা হয়েছে) একমাত্র আউটপুট চালু হবে। এই পদ্ধতির আরেক নাম সিকোয়েন্সিয়াল কোড লক সিস্টেম
  • ভুল সুইচ প্রেস করবার সাথে সাথেই সার্কিট টি রিসেট হয়ে যাবে। অর্থাৎ, আবার প্রথম সঠিক ডিজিট প্রেস করে পর্যায়ক্রমে পরবর্তি সঠিক ডিজিট প্রেস করলেই একমাত্র এটিকে আনলক করা সম্ভব।
  • প্রতিটি ডিজিট প্রেস করবার মাঝে কিছু নির্দিষ্ট সময় সেট করা আছে। যারফলে কেউ যদি ডিজিট প্রেস করে ভাবতে থাকে এর পরের ডিজিট টি কী হবে ততোক্ষনে সার্কিট টি আবার রিসেট হয়ে যাবে। এই সুবিধাটি অত্যাধুনিক ডিজিটাল লক সিকিউরিটি সিস্টেমে দেখা যায়। কিন্তু সেখানে মাইক্রোকন্ট্রোলার থেকে শুরু করে আর অনেক জটিল যন্ত্রপাতি ব্যবহার হয়।
  • এই কোড লকের নির্মান খরচ ও জটিলতা অনেক কম

কার্যপদ্ধতি

এই সিকিউরিটি কোড সুইচটির জন্য ৩টি টাইমার ব্যবহার করা হয়েছে। প্রতিটি টাইমার কে সিকোয়েন্সিয়াল ভাবে প্রেস করতে হবে। নয়ত কাজ করবে না।

এখানে পরীক্ষামূলক ভাবে 2 5 7 কে আমি ব্যবহার করেছি সিক্রেট কোড হিসেবে।

কেউ যদি 2 ডিজিট (সার্কিট এ ব্যবহৃত SW1) কে প্রেস করে তখন কিছু পরিমাণ পজেটিভ চার্জ প্রথম ট্রানজিস্টরটির (Q1) এর বেজে যায় এবং C1 ক্যাপাসিটর টিকে চার্জিত করে। এরফলে প্রথম টাইমার টি চালু হয় ৩ সেকেন্ডের জন্য। অর্থাৎ 2 ডিজিট কে প্রেস করবার পরে 5 ডিজিট কে প্রেস করবার জন্য একজন সময় পাবে মাত্র ৩ সেকেন্ড।

আপাতদৃষ্টে মনে হতে পারে যে এটি অনেক কম সময়। কিন্তু যে কোড জানে এমন একজনের কাছে এটি যথেষ্ট ২য় ডিজিট বা SW2 প্রেস করবার জন্য।

এরপর 5 ডিজিট কে প্রেস করলে (স্কিমেটিকে SW2 হিসাবে নির্দেশিত) C1 থেকে কিছু পরিমাণ পজেটিভ চার্জ নিয়ে C4 পজেটিভ চার্জে চার্জিত হয়। প্রথম সুইচ প্রেস করবার ঠিক ৩ সেকেন্ডের মধ্যে এই ২য় সুইচ কে প্রেস করলে এলইডি D2 জ্বলে উঠবে ২ সেকেন্ডের জন্য। এটি জ্বলবার অর্থ আপনি প্রায় দ্বারপ্রান্তে পৌঁছে গেছেন। আর মাত্র ১টি বাটন প্রেস করতে হবে, তাহলেই সিসিম ফাঁক… 😉

7 ডিজিট কে (ডায়াগ্রামে নির্দেশিত SW3) পরবর্তি ৩ সেকেন্ডের মাঝে প্রেস করলে আউটপুট চালু হবে। এটিও মাত্র ১০ সেকেন্ডের জন্য চালু থাকবে। এই ১০ সেকেন্ড কোন দরজার খোলা থেকে শুরু করে ছোট লোড চালু করবার জন্য যথেষ্ট সময়। আর আউটপুট ট্রানজিস্টর টির কানেকশন দেখে নিশ্চয়ই বুঝতে পারছেন যে এর আউটপুট সিগনাল নেগেটিভ (-V) আসবে।

রিলে চালনা করা

অনেকের মনেই প্রশ্ন জাগতে পারে এই স্বল্প মাত্রার আউটপুট দিয়ে কী এমন আর করা যাবে। হ্যাঁ তার জন্য আউটপুটে একটি রিলে ড্রাইভার লাগানো যেতে পারে। ফলে কোড লক এর মাধ্যমে রিলে কেও সুইচিং করা সম্ভব হবে। নিচে এই সার্কিট টির জন্য উপযুক্ত রিলে ড্রাইভার এর ডায়াগ্রাম দেয়া হলো-

কোড লক সিকিউরিটি সার্কিটের মাধ্যমে রিলে চালনা
কোড লক সিকিউরিটি সার্কিটের মাধ্যমে রিলে চালনা

একটি গুরুত্বপূর্ণ প্রশ্ন

এখন একটি প্রশ্ন হয়ত করতে পারেন যে মাত্র ১০ সেকেন্ডের জন্য কোন লোড চালু করে কী আর এমন কাজ করা যেতে পারে!!

উত্তরটি সহজ, যদি আপনি এটির মাধ্যমে ম্যাগনেটিক লক ব্যবহার করেন তাহলে এই ১০ সেকেন্ড লক টি চালু/অফ থাকবে (সংযোগ অনুযায়ী)। আর কোন লক খোলা দরজা কে ঠেলে খুলতে নিশ্চয়ই ১-২ সেকেন্ডের বেশি সময় লাগবে না! নিচে এমনি একটি ম্যাগনেটিক লক স্থাপিত দরজা দেখানো হলো-

দরজায় লাগানো ম্যাগনেটিক লক সিস্টেম
দরজায় লাগানো ম্যাগনেটিক লক সিস্টেম

কিভাবে কোড পরিবর্তন করবো

সার্কিট টিতে দেখানো কোড পরিবর্তনের জন্য SW1, SW2 এবং SW3 কে নিজের পছন্দ মত নাম্বারের সাথে সংযুক্ত করতে হবে।

যেমন, আমি যদি চাই আমার গোপন নাম্বার হবে  1 6 5 তাহলে –

  • কীপ্যাড এর 1 নাম্বার ডিজিট এর সাথে SW1 কে যুক্ত করতে হবে
  • 6 নাম্বার ডিজিটের সাথে SW2 কে যুক্ত করতে হবে এবং সব শেষে
  • 5 নাম্বার ডিজিটের সাথে SW3 কে সংযুক্ত করে দিলেই কাজ শেষ।

এখন যদি আমি পর্যায়ক্রমে (এবং ৩ সেকেন্ড সময় এর মধ্যে) 1 6 5 প্রেস করি তাহলেই আউটপুট চালু হয়ে যাবে।

আমার তৈরি সার্কিট টি দেখুন

নিচে দেখতে পাচ্ছেন আমার তৈরিকৃত কোড লক সিকিউরিটি ডিভাইসের চিত্র-

আমার তৈরি সিকিউরিটি কোডলক সুইচ সিস্টেম
আমার তৈরি সিকিউরিটি কোডলক সুইচ সিস্টেম

মূলত পোর্টেবল ভার্শন করবার জন্য এটিকে ৯ ভোল্ট ব্যাটারি দ্বারা চালনা করবার ব্যবস্থা করা হয়েছে। এটিকে চাইলে ১২ ভোল্টেও চালনা করা যেতে পারে তবে ৯ ভোল্টই উপযুক্ত।

নিচে দেখতে পাচ্ছেন নষ্ট রিমোট কন্ট্রোলের কীপ্যাড কে এই কাজে ব্যবহার করেছি-

নষ্ট রিমোট কন্ট্রোলের কীপ্যাড এর পুনর্ব্যবহার
নষ্ট রিমোট কন্ট্রোলের কীপ্যাড এর পুনর্ব্যবহার

 

সমাপ্তি

আজকের মত এটুকুই। ভারতের সুদূর আসাম থেকে বাংলাদেশের সকল ইলেকট্রনিক্স প্রেমীদের প্রতি রইলো আমার সশ্রদ্ধ ভালোবাসা। সবাই চেষ্টা করবেন এই কোড লক সিকিউরিটি ডিভাইস টিকে তৈরি করতে। একে চাইলে আরো উন্নত করাও সম্ভব। সবার উৎসাহ ও আগ্রহ দেখলে সামনে হয়ত এমনি আরো মজাদার কিছু নিয়ে হাজির হবো।

মাল্টিমিটার দিয়ে ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর লেগ বের করা

3
মাল্টিমিটার দিয়ে ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর লেগ বের করা
মাল্টিমিটার দিয়ে ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর লেগ বের করা

মাল্টিমিটার দিয়ে কিভাবে কোনো ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর (Base, Emitter & Collector) বের করা যায়? কিংবা আমার কাছে যে ট্রানজিস্টর টি আছে সেটি ভালো আছে কিনা তা মাল্টিমিটার দিয়ে কিভাবে বুঝবো? – এধরনের প্রশ্ন আমাদের ইলেকট্রনিক্সে প্রায় প্রতিদিনই আসে। তাই আজকে মাল্টিমিটার দিয়ে কিভাবে ট্রানজিস্টর এর লেগ বের করা যায় তা নিয়ে লিখছি।

নোটঃ এখানে বলে রাখা ভালো এই পদ্ধতি কাজে লাগাতে হলে মাল্টিমিটার ব্যবহারের নুন্যতম জ্ঞান থাকা লাগবে। অর্থাৎ রেজিস্ট্যান্স, ডায়োড কিভাবে মাল্টিমিটার দিয়ে মাপে এটুকু অন্তত জানা থাকতে হবে।

সহজ উপায়

সাধারণত ট্রানজিস্টর টির গায়ে যদি মডেল নাম্বার লেখা থাকবে কিংবা মডেল জানা থাকে, তাহলে গুগোলে সেটি লিখে সার্চ দিলেই ট্রানজিস্টর টির পিনআউট- অর্থাৎ কোন পিন বেজ, কোন পিন ইমিটার অথবা কালেক্টর জানা যায়। আবার ট্রানজিস্টর এর ডাটাশিটেও পিনআউট লেখা থাকে।

এই সহজ পদ্ধতির সমস্যা

কিন্তু প্রস্তুতকারক কোম্পানি প্যাকেজভেদে ট্রানজিস্টর এর পিনআউট অনেক সময়ই ভিন্ন রকম হয়। নিচের উদাহরণ টি দেখুন-

একই ট্রানজিস্টর মডেলের ভিন্ন লেগ সজ্জা হতে পারে তা দেখানোহয়েছে
একই ট্রানজিস্টর মডেলের ভিন্ন লেগ সজ্জা হতে পারে তা দেখানোহয়েছে

চিত্রে 2N2222 ও BC547 ট্রানজিস্টর দুটির দুই রকম পিনআউট দেখানো হয়েছে। এখানে,

  • E = Emitter,
  • C = Collector
  • B = Base.

এসমস্ত ক্ষেত্রে নব্যহবিস্ট ও ইঞ্জিনিয়ারদের কে খুব বিপাকে পড়তে হয় এই ভেবে যে –“আমার কাছে যে ট্রানজিস্টরটি আছে সেটির লেগ কেমন। কোন পিন কে আমি বেজ, কালেক্টর, ইমিটার ধরে সার্কিটে লাগাবো?!! ভুলভাবে লাগালে তো সার্কিট কাজই করবে না!” :O

আবার কখনও কখনও ট্রানজিস্টরের গায়ে মডেল নাম্বার লেখা থাকেনা অথবা ইন্টারনেটে উক্ত ট্রানজিস্টর টির ডাটাশিট পাওয়া যায়না, তখন কী উপায়??

এসব ক্ষেত্রেই প্রয়োজন হয় মাল্টিমিটার দিয়ে ট্রানজিস্টরের লেগ বের করবার। এর জন্য রেজিস্ট্যান্স বা ডায়োড মাপবার সুবিধা আছে এরকম একটি মাল্টিমিটার দিয়ে সহজেই পিনআউট বের করে নেয়া যায়।

ট্রানজিস্টরের লেগ বের করাবার সুবিধা কী

  1. এরফলে নিশ্চিত হওয়া যায় কোন লেগটি কী। কারন ডাটাশিট ও নেটে প্রাপ্ত তথ্য অনেক সময়ই বেশ জটিল ও বিভ্রান্তিকর। (উপরের 2N2222/BC547 ট্রানজিস্টরটির উদাহরণ দ্রষ্টব্য)
  2. ট্রানজিস্টর টি ভালো আছে কিনা তা নিশ্চিত হওয়া যায়।

শুরু করবো কিভাবে

এনপিএন (NPN) বা পিএনপি (PNP) উভয় ক্ষেত্রেই আমরা এই ধারাবাহিকতা বজায় রাখবো-
• প্রথমেই মাল্টিমিটার দিয়ে ট্রানজিস্টরটির বেজ নির্ণয় করতে হবে
• এরপর বাকি ২টি পা (কালেক্টর ও ইমিটার) নির্ণয় করতে হবে

মাল্টিমিটার দিয়ে কিভাবে ট্রানজিস্টরের লেগ বের করবো

এখন ধাপে ধাপে মাল্টিমিটার দিয়ে ট্রানজিস্টরের লেগ বের করবার পদ্ধতি বর্ণনা করবো। এখানে উল্লেখ্য যে এনপিএন এবং পিএনপি উভয় ধরনের ট্রানজিস্টরের ক্ষেত্রেই একই পদ্ধতির প্রয়োগ হবে। নতুনদের বুঝবার সুবিধার জন্য ধাপে ধাপে তা বর্ণনা করছি।

NPN ট্রানজিস্টরের পিনআউট বের করার ক্ষেত্রে

বেজ নির্নয়

  1. মাল্টিমিটার এর সিলেক্টর নব কে রেজিস্ট্যান্স/ডায়োড মাপার জন্য সেট করতে হবে।
  2. ট্রানজিস্টরের ৩টি প্রান্তের যেকোন একটি কে এনপিএন ট্রানজিস্টরের বেজ অনুমান করে পরীক্ষা করি। তারজন্য-
  3. মাল্টিমিটারের পজেটিভ (লাল রঙের) প্রোব ট্রানজিস্টরের ঐ বেজ অনুমানকৃত পায়ে লাগিয়ে নেগেটিভ প্রোব (কালো রঙের প্রোব) অন্য দুইটি লেগ/প্রান্তে পর্যায়ক্রমে ঠেকিয়ে দেখতে হবে।
  4. একই পরীক্ষা ট্রানজিস্টরের অপর দুটি লেগের ক্ষেত্রেও করতে হবে। অর্থাৎ অপর ২টি লেগ কে “এনপিএন বেজ” অনুমান করে পরীক্ষা করতে হবে। নিচের ছবিটি দেখুন-
ট্রানজিস্টরের বেজ নির্ণয় করা হচ্ছে
ট্রানজিস্টরের বেজ নির্ণয় করা হচ্ছে

যদি-

উভয় লেগ/প্রান্তেই কিছু রেজিস্ট্যান্স দেখায় তাহলে আমাদের অনুমানকৃত ঐ কমন লেগটিই এই ট্রানজিস্টরের “বেজ”। (শর্ট হলে রেজিস্ট্যান্স একদম শূন্য দেখাবে)

কিন্তু যদি-

শুধু একটি পায়ে কিছু রেজিস্ট্যান্স দেখায় আর অন্য পা টিতে কোন কিছুই না দেখায় তাহলে ট্রানজিস্টরটি পিএনপি অথবা নষ্ট। সেটি জানার জন্য নিচে পিএনপি ট্রানজিস্টর পরীক্ষা অংশটি দেখুন।

আমার পরীক্ষিত ট্রানজিস্টটির বাম পায়ে লাল প্রোব এবং মাঝের পায়ে কালো প্রোব ধরলে পরে মাল্টিমিটার টিতে এই মান দেখিয়েছে- (বুঝবার সুবিধার জন্য বড় করে ছবি দেখানো হলো)

প্রথম লেগে প্রাপ্ত মান
প্রথম লেগে প্রাপ্ত মান

এবং, আবারো বাম পায়ে লাল প্রোব এবং ডান পায়ে কালো প্রোব ধরলে নিচের মান টি মাল্টিমিটারে দেখিয়েছে-

২য় লেগে প্রাপ্ত মান
২য় লেগে প্রাপ্ত মান

পিএনপি (PNP) ট্রানজিস্টরের লেগ বের করা

বেজ নির্ণয়

  1. আগের মতোই মাল্টিমিটার এর সিলেক্টর নব কে রেজিস্ট্যান্স/ডায়োড মাপার জন্য সেট করতে হবে।
  2. ট্রানজিস্টরের ৩টি প্রান্তের যেকোন একটি কে পিএনপি (PNP) ট্রানজিস্টরের বেজ অনুমান করে পরীক্ষা করতে হবে। তারজন্য-
  3. মাল্টিমিটারের নেগেটিভ (কালো রঙের) প্রোব ট্রানজিস্টরের ঐ বেজ অনুমানকৃত পায়ে লাগিয়ে পজেটিভ প্রোব (লাল রঙের প্রোব) অন্য দুইটি লেগ/প্রান্তে পর্যায়ক্রমে ঠেকিয়ে দেখতে হবে।
  4. একই পরীক্ষা ট্রানজিস্টরের অপর দুটি লেগের ক্ষেত্রেও করতে হবে। অর্থাৎ অপর ২টি লেগ কে “এনপিএন বেজ” অনুমান করে পরীক্ষা করতে হবে। উপরে প্রদত্ত চিত্রের অনুরূপ কিন্তু প্রোব ২টি উলটো নিতে হবে।

কালেক্টর ও ইমিটার নির্ণয় করা

ট্রানজিস্টর এর বেজ নির্নয় করবার পরেই আসে অন্য দুটি লেগ কোনটি কি তা বের করবার। ডিজিটাল মাল্টিমিটার দিয়ে এটি বেশ সহজ কাজ।

  • বেজ থেকে উভয় লেগের রেজিস্ট্যান্স তুলনা করতে হবে মাল্টিমিটার দিয়ে।
  • যে লেগের রেজিস্ট্যান্স বেশি সেটি উক্ত ট্রানজিস্টরের ইমিটার
  • অপরদিকে যে লেগের রেজিস্ট্যান্স কম দেখাবে সেটি কালেক্টর

তবে এনালগ মাল্টিমিটারের ক্ষেত্রে এটি বেশ দূরূহ কাজ। কারন এই রেজিস্ট্যান্সের মান মাত্র কয়েক ওহম হয়। ফলে এনালগ মাল্টিমিটার এর কাঁটার পরিবর্তন তেমন বোঝা যায় না। কিছু চর্চা ও অনুশীলনের মাধ্যমে এটিকে আয়ত্ব করতে পারবেন। তবে সুখের কথা হলো, এখনকার প্রায় সব এনালগ মাল্টিমিটারেই ট্রানজিস্টর পরীক্ষা করবার আলাদা অপশন আছে।

আমার নির্ণয়কৃত ট্রানজিস্টর টি কি

উপরে আমার তোলা ছবিগুলো খেয়াল করলে দেখা যাবে যে-

  • ট্রানজিস্টর টির বাম পায়ে লাল প্রোব (পজেটিভ) ধরলে বাকি ২ পায়েই রেজিস্ট্যান্স মাপতে পারছি। সুতরাং এটি একটি এনপিএন (NPN) টাইপ ট্রানজিস্টর। এবং বাম পা টিই বেজ
  • ট্রানজিস্টরটির বাম দিকের লেগ (বেজ) থেকে মাঝের লেগের রেজিস্ট্যান্স দেখাচ্ছে ৩৬২। অপরদিকে ডানদিকের লেগে মান দেখাচ্ছে ৩৬৮ যা একটু বেশি।
  • সুতরাং আমার ট্রানজিস্টরটির মাঝের লেগ টি কালেক্টর এবং ডানদিকের লেগ টি ইমিটার
আমাদের অজ্ঞাত ট্রানজিস্টরটির লেগ বের করবার পরে
আমাদের অজ্ঞাত ট্রানজিস্টরটির লেগ বের করবার পরে

মনে রাখার সহজ উপায়

ট্রানজিস্টর কিভাবে কাজ করে সেটি জানলে এই বিষয়টি বোঝা অনেক সহজ। নিচে সংক্ষেপে দিচ্ছি-

  • এনপিএন (NPN) ট্রানজিস্টরের বেজ এ পজেটিভ প্রোব ধরলে বাকি ২টি লেগ এ রেজিস্ট্যান্স দেখাবে। নেগেটিভ প্রোব ধরলে দেখাবে না।
  • পিনপি (PNP) ট্রানজিস্টরের বেজ এ নেগেটিভ প্রোব ধরলে বাকি ২টি লেগ এ রেজিস্ট্যান্স দেখাবে। পজেটিভ প্রোব ধরলে দেখাবে না।
  • কোন কারনে যদি পজেটিভ ও নেগেটিভ উভয় প্রোব ধরলেই রেজিস্ট্যান্স দেখায় তাহলে বুঝতে হবে ট্রানজিস্টরটি নষ্ট।
  • অথবা কোন প্রোব দিয়েই রেজিস্ট্যান্স দেখাচ্ছে না, কিংবা কোন কমন লেগ (বেজ) বের করা যাচ্ছে না সেক্ষেত্রেও ধরে নেয়া যায় ট্রানজিস্টরটি নষ্ট।

আশাকরি মাল্টিমিটার দিয়ে ট্রানজিস্টরের লেগ বের করবার এই সহজ উপায় নতুন ইঞ্জিনিয়ার ও হবিস্টদের উপকার হবে। তাহলেই আমার স্বার্থকতা। 🙂

ট্রায়াক, ডায়াক পরিচিতি ও ইলেকট্রনিক ফ্যান রেগুলেটরের কার্যপ্রণালী

8
ট্রায়াক, ডায়াক পরিচিতি ও ইলেকট্রনিক ফ্যান রেগুলেটরের কার্যপ্রণালী
ট্রায়াক, ডায়াক পরিচিতি ও ইলেকট্রনিক ফ্যান রেগুলেটরের কার্যপ্রণালী

ট্রায়াক, ডায়াক ইলেকট্রনিক যন্ত্রপাতিতে বহুল ব্যবহৃত হয়। ফ্যান রেগুলেটর, লাইট ডিমার, সুইচিং এর কাজে আমরা দৈনন্দিন ব্যবহার করি। আজকে এই ট্রায়াক নিয়েই লিখছি। সাথে সংক্ষিপ্ত আকারে ডায়াক সম্পর্কেও কিছু লিখবো। সেই সাথে ট্রায়াক দিয়ে ইলেকট্রনিক ফ্যান রেগুলেটরের কাজ নিয়েও সংক্ষেপে বর্ণনা করেছি।

ট্রায়াক কি

ট্রায়াক তিনটি তড়িৎদ্বার বা টার্মিনাল বিশিষ্ট একটি সুইচিং সেমিকন্ডাক্টর ইলেকট্রনিক ডিভাইস ৷ ট্রায়াক শুধুমাত্র তখনই পরিবাহী হয় যখন এর গেট (Gate) এ পজেটিভ অথবা নেগেটিভ ভোল্ট/পালস দ্বারা ট্রিগার করা হয়৷

ট্রায়াক নামটি কোথা থেকে এলো

এটি আগে ট্রায়োড ফর অল্টারনেটিং কারেন্ট (TrIode for Alternating Current) নামে সুপরিচিত ছিল যা কিনা SCR বা থাইরিস্টরের (thyristor) উন্নত ভার্শন। কিন্তু থাইরিস্টর (SCR) এর সবচেয়ে বড় অসুবিধা হলো এটি একমুখী অর্থাৎ ডিসি পাওয়ারকে অথবা AC এর লোডে ফরওয়ার্ড বায়াস যুক্ত হাফ-সাইকেলকে কন্ডাক্ট ও নিয়ন্ত্রন করতে পারে ৷ অপরদিকে ট্রায়াক এসি (AC) বা অল্টারনেটিং সাপ্লাইয়ের পজেটিভ ও নেগেটিভ উভয় হাফ-সাইকেলই কন্ডাক্ট ও নিয়ন্ত্রন করতে সক্ষম।

ট্রায়াক ১৯৬৩ সালে আবিষ্কার হয়। এর মূল ধারণাটি আবিষ্কার করেন বিল গুজউইলার (Bill Gutzwiller) এবং নির্মাণ করেন গর্ডন হল (Gordon Hall)। মোট তিনটি ধাপে এর আবিষ্কার সম্পন্ন হয়। তথ্যসূত্রঃ http://www.edisontechcenter.org/semiconductors.html এবং https://sites.google.com/site/transistorhistory/Home/us-semiconductor-manufacturers/general-electric-history

ট্রায়াকের ব্যবহার

নিচে বহুল ভাবে ট্রায়াক ব্যবহৃত হয় এমন কয়েকটি ডিভাইসের নাম উল্লেখ করছি-

  • লাইট ডিমার
  • হিটারের হিট কন্ট্রোলার
  • টাইম ডিলে রিলে সার্কিট
  • বৈদ্যুতিক ফ্যান, মোটর এর গতি নিয়ন্ত্রন
  • পাওয়ার ট্রান্সফরমার এর ট্যাপ-চেঞ্জিং এ
  • উচ্চ শক্তি সম্পন্ন ল্যাম্প এর সুইচ হিসাবে
  • AC কন্ট্রোলের মাধ্যমে উন্নত ব্যাটারি চার্জারের কারেন্ট নিয়ন্ত্রনে
  • আর্ক ওয়েল্ডিং এ কারেন্ট নিয়ন্ত্রনের ক্ষেত্রে
  • ইত্যাদি আরো অনেক ক্ষেত্রে ট্রায়াকের ব্যবহার রয়েছে

ট্রায়াকের প্রতীক চিহ্ন বা সিম্বল

নিচের ছবিতে এর সিম্বল দেখতে পাচ্ছেন-

ট্রায়াকের প্রতীক চিহ্ন বা সিম্বল
ট্রায়াকের প্রতীক চিহ্ন বা সিম্বল

এর বিভিন্ন টার্মিনাল/লেগ গুলোর কাজ

ট্রায়াক এর তিনটি টার্মিনাল আছে, যথা-

  1. মেইন টার্মিনাল ১ (MT1),
  2. মেইন টার্মিনাল ২ (MT2) এবং
  3. গেট (Gate)

MT1 এবং MT2 ব্যবহার করা হয় ফেজ এবং নিউট্রাল লাইনে সংযোগ দেবার জন্য। অন্যদিকে Gate ব্যবহার করা হয় ট্রিগারিং এর জন্য। ক্ষেত্রবিশেষে এই টার্মিনাল গুলোকে A1, A2, T1, T2 প্রভৃতি নামেও অভিহিত করা হয়।

ট্রায়াক সম্পর্কে কিছু সাধারন ধারনা

এটি প্রকৃতপক্ষে থাইরিস্টর/এসসিআর এর উপর ভিত্তি করেই…দ্বি-মুখী সুইচিং এর জন্য দুটি SCR কে পরস্পর বিপরীত মুখী সংযোগের মাধ্যমে ট্রায়াক তৈরি হয়েছে । ট্রায়াক ইলেকট্রিক্যাল সিস্টেম এর জন্য এসি সুইচিং প্রদান করে থাকে। থাইরিস্টর এর মত এটি বিভিন্ন ইলেকট্রিক্যাল সিস্টেমে সুইচিং এর কাজে ব্যবহার করা হয়। থাইরিস্টর ডিসিতে এবং AC এর হাফ-সাইকেলে কাজ করে ৷ কিন্তু ট্রায়াক এসি(AC) পজেটিভ ও নেগেটিভ উভয় হাফ সাইকেলে কাজ করতে পারে।

থাইরিস্টর (SCR) দিয়ে ট্রায়াকের সমতুল্য সার্কিট
থাইরিস্টর (SCR) দিয়ে ট্রায়াকের সমতুল্য সার্কিট

প্রকৃতপক্ষে ট্রায়াক হল ২টি এসসিআর (SCR) এর সমতুল্য।

ট্রায়াকের বিভিন্ন ব্যবহার রয়েছে লাইট ডিমার, ফ্যান রেগুলেটর,মোটরের গতি নিয়ন্ত্রন, বিভিন্ন AC ডিভাইসের কারেন্ট নিয়ন্ত্রন সহ আরও অনেক কিছুতে।

কিভাবে ট্রায়াককে ট্রিগার করতে হয়?

সাধারণত ট্রায়েকে ৪ ধরনের ট্রিগারিং সম্ভবঃ-

  • MT2 তে পজেটিভ ভোল্টেজ এবং Gate এ পজেটিভ পালস
  • MT2 তে পজেটিভ ভোল্টেজ এবং Gate এ নেগেটিভ পালস
  • MT2 তে নেগেটিভ ভোল্টেজ এবং Gate এ পজেটিভ পালস
  • MT2 তে নেগেটিভ ভোল্টেজ এবং Gate এ নেগেটিভ পালস

ট্রায়াক এবং থাইরিস্টর (SCR) এর তুলনা

এসি সুইচিং এর জন্য ট্রায়াক একটি আদর্শ ডিভাইস। কারন এটি একটি আল্টারনেটিং সাইকেল এর উভয় অর্ধেক অর্থাৎ পজেটিভ হাফ ও নেগটিভ হাফ সাইকেল এ প্রবাহিত হওয়া কারেন্টকে কন্ট্রোল করতে পারে। কিন্তু একটি থাইরিস্টর (SCR) দিয়ে শুধুমাত্র যেকোন একটি সাইকেল নিয়ন্ত্রণ সম্ভব।

নিচের চিত্র থেকে আমরা দেখতে পাই যে থাইরিস্টর দিয়ে অবশিষ্ট অর্ধেক সময়ে কোন প্রবাহ ঘটে না তাই অর্ধেক ওয়েভ সাইকেল কে কন্ডাক্ট করা যায়। অপরদিকে ট্রায়াকের ক্ষেত্রে উভয় অর্ধেক ওয়েভ সাইকেল কেই কন্ডাক্ট করানো সম্ভব। নিচের চিত্র লক্ষ করলে বিষয়টি বুঝতে আশাকরি সহজ হবে-

থাইরিস্টর ও ট্রায়াকের ইনপুট আউটপুট ওয়েভ ফর্মের তুলনা
থাইরিস্টর ও ট্রায়াকের ইনপুট আউটপুট ওয়েভ ফর্মের তুলনা

ইলেকট্রনিক ফ্যান রেগুলেটর এর সার্কিট ডায়াগ্রাম

ফ্যান রেগুলেটর সার্কিট এ ব্যবহৃত ট্রায়াক এর গেটে ট্রিগারিং পালসের ওয়াইডথ (Pulse Width) কন্ট্রোল করবার জন্য পটেনশিও মিটার/ভেরিয়েবেল রেজিস্টর ব্যবহার করা হয়।

  • ১। যখন পটেনশিও মিটার এর রেজিস্টেন্স বাড়ানো হয় তখন স্পীড কমে। এবং
  • ২। যখন পটেনশও মিটার এর রেজিস্টেন্স কমানো হয় তখন স্পীড বাড়ে।
সরল এসি ফ্যান/মোটর রেগুলেটর সার্কিট ডায়াগ্রাম
সরল এসি ফ্যান/মোটর রেগুলেটর সার্কিট ডায়াগ্রাম

দেখতে কেমন?

নিচে একটি ইলেকট্রনিক এসি ফ্যান রেগুলেটরের আভ্যন্তরীণ ছবি দেখতে পাচ্ছেন-

ইলেকট্রনিক ফ্যান রেগুলেটরের ভেতরের ছবি
ইলেকট্রনিক ফ্যান রেগুলেটরের ভেতরের ছবি

কিভাবে কাজ করে ইলেকট্রনিক ফ্যান রেগুলেটর

রেগুলেটরের কার্যপ্রণালীঃ ট্রায়াক এর গেটে ক্যাপাসিটর এর ডিসচার্জ এর পরিমান কম-বেশি হয়ে গেট ট্রিগার পালসের ওয়াইডথ্ (Pulse Width) কম-বেশী করে দেয়। এছাড়া সার্কিট এ একটি ডায়াক ও ব্যবহার করা হয়, যার কাজ হল ট্রায়াক এর গেট এ ট্রিগারিং পালস দেওয়া।

মূলত এই ধরনের ইলেকট্রনিক ফ্যান রেগুলেটর গুলোতে ভেরিয়েবল রেজিস্টরক্যাপাসিটর মিলে একটি RC Timer সার্কিট তৈরি করে যার মূল কাজ হচ্ছে ভেরিয়েবল রেজিস্টরের মান অনুযায়ী ডায়াকের মাধ্যমে ট্রিগারিং পালস কে ট্রায়াকে পাঠানো।

সরল এসি ইলেকট্রনিক রেগুলেটরের কার্যপ্রণালী
সরল এসি ইলেকট্রনিক রেগুলেটরের কার্যপ্রণালী

ভেরিয়েবলের মান বেশি থাকলে ক্যাপাসিটর টি ধীরে ধীরে চার্জ হয় ফলে ট্রিগারিং পালসের ওয়াইডথ (প্রসস্থতা) কমে কিছুটা সময় নিয়ে ধীরে ধীরে ট্রিগার পালস ডায়াকের মাধ্যমে গেটে যায়। তাই ফ্যানের গতি কম হয়।

অপরদিকে পটেনশিও মিটার বা ভেরিয়েবলটির মান কমিয়ে দিলে ক্যাপাসিটর খুব দ্রুত চার্জ হয়ে ট্রিগার পালসের ওয়াইডথ বাড়িয়ে দিয়ে ট্রিগারিং পালসকে ডায়াকের মাধ্যমে দ্রুত ট্রায়াকের গেট পিনে পাঠিয়ে দেয়। এতে ট্রায়াকটি দ্রুত অন হয়। যার ফলেই ফ্যান জোরে ঘুরে বা লাইট উজ্জ্বল ভাবে জ্বলে। এবার ডায়াক সমন্ধে জানবো।

ডায়াক (DIAC) কি

ডায়াক (Diac) হচ্ছে ২ টার্মিনাল বিশিষ্ট একপ্রকার ট্রিগারিং ডিভাইস যা নির্দিষ্ট ব্রেকডাউন ভোল্টেজে পৌঁছালে এটি কন্ডাক্ট করে ৷ ডায়াকের দুটো টার্মিনালই পরস্পরের মধ্যে ডিরেকশন পরিবর্তন করে উভয় হাফ সাইকেলেই এনোড বা ক্যাথোড হিসেবে কাজ করে ট্রিগার করতে পারে৷ নিচে ডায়াকের সিম্বল দেখতে পাচ্ছি-

ডায়াক এর সিম্বল
ডায়াক এর সিম্বল

সহজ ভাবে বললে জেনার ডায়োডের যেমন নির্দিষ্ট ব্রেকডাউন ভোল্টেজ থাকে (3.6V, 5.6V, 9.6V, 12V) তেমনি ডায়াকের ও এমনি একটি ভোল্টেজ সীমা থাকে যে ভোল্টেজে সীমায় পৌঁছালে সেটি কন্ডাক্ট করতে শুরু করে। তবে জেনার ডায়োড শুধু ডিসি তেই কাজ করে কিন্তু ডায়াক এসি তেও কাজ করতে পারে। আর ডায়াকের ব্রেকডাউন ভোল্টেজ সাধারণত 30 volt এর উপরে হয়।

কিছু জনপ্রিয় ডায়াকের নাম্বার- DB3, DB4, DB3A, DB6 ইত্যাদি। নিচে জনপ্রিয় একটি ডায়াক DB3/DB697 এর সত্যিকারের চিত্র দেখতে পাচ্ছি। এটির আকৃতি মাত্র ৩ মিলি মিটার যা কিনা সাধারন 1N4148 ডায়োডের আকৃতির মতোই।

জনপ্রিয় ডায়াক DB3 এর আসল ছবি
জনপ্রিয় ডায়াক DB3 এর আসল ছবি

উপরে প্রদত্ত ইলেকট্রনিক ফ্যান রেগুলেটরের যে ডায়াগ্রাম টি দিয়েছি সেটি আমি Proteus সফটওয়্যার দিয়ে সিমুলেশন করে দেখছি আসলে এটি কিভাবে এসি ভোল্টেজকে কন্ট্রোল করে। এখানে পটেনশিও মিটার এর ভেলু কমিয়ে-বাড়িয়ে নির্ধারণ করে দেওয়া যায় যে কতক্ষণ পর ট্রায়াক এর গেট এ ট্রিগার হবে। ট্রিগার এর পর থেকেই আমরা আঊটপুট এ ভোল্টেজ পাব। আপনাদের বোঝার সুবিধার্থে নিচে সিমুলেশান এর একটি চিত্র দেওয়া হল। আশা করি চিত্রটি দেখলে বিষয়টা মোটামুটি পরিষ্কার হয়ে যাবে।

এসি তে ট্রায়াকের ট্রিগারিং সিমুলেশন
এসি তে ট্রায়াকের ট্রিগারিং সিমুলেশন

আপনারা চাইলে লিংক থেকে সিমুলেশান ফাইলটি ডাউনলোড করে নিতে পারেন। ডাউনলোড লিংক

এসি ফেজ কন্ট্রোল করতে ট্রায়াকের ব্যবহার

আশা করি উপরের পয়েন্ট গুলো থেকে ট্রায়াক সম্পর্কে আপনাদের মোটামুটি একটা ধারনা হয়েছে। এখন আমরা শিখব ট্রায়াক ব্যবহার করে কিভাবে এসি ফেজ কন্ট্রোল করা যায়। এটি আমরা দুই ভাবে করতে পারি

সাধারন পদ্ধতির একটা উদাহরণ আমি আগেই দিয়ে ফেলছি (ফ্যান রেগুলেটর)। অন্যটি হচ্ছে আমরা UJT(ইউজেটি) ট্রিগারিং সার্কিট ব্যবহার করে ট্রায়াক এর গেট এ ট্রিগার দিতে পারি এবং কতক্ষণ পর ট্রিগারটি হবে সেটা ট্রিগারিং সার্কিট এর রেজিস্টর (R) এবং ক্যাপাসিটর (C) এর মানের উপর নির্ভর করবে।

ইউজেটি (UJT) ট্রিগারিং সার্কিট
ইউজেটি (UJT) ট্রিগারিং সার্কিট

মাইক্রোকন্ট্রোলার দিয়ে ট্রায়াক নিয়ন্ত্রণ

অন্যদিকে আমরা যদি এটা মাইক্রোকন্ট্রোলার এর সাহায্যে করতে চাই তাহলে প্রথমেই আমাদের দরকার হবে জিরো ক্রস (Zero Cross) ডিটেক্টর সার্কিট এর। তার আগে আমাদেরকে বুঝতে হবে এসি তে জিরো ক্রসিং কি জিনিস। কারন ট্রায়াকের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ বিষয়।

এসি তে জিরো ক্রস (Zero Cross) কি

যখন একটি সাইন ওয়েভ পজেটিভ হাফ সাইকেল থেকে নেগেটিভ হাফ সাইকেলে আথবা নেগেটিভ হাফ সাইকেল থেকে পজেটিভ হাফ সাইকেলে স্থানান্তরিত হয় তখন শূন্য (Zero) ভোল্টেজ অতিক্রম করে। এই শূন্য ভোল্টেজ অতিক্রম করাটা যে সার্কিট এর সাহায্যে নির্ণয় করা হয় তাকে জিরো ক্রস (Zero Cross) ডিটেক্টর সার্কিট বলে।

ট্রায়াকে জিরো ক্রসিং ডিটেক্টর কেন ব্যবহার হয়

  • এরফলে ট্রায়াকে কম চাপ পড়ে ফলে তা দীর্ঘস্থায়ী হয়
  • ইলেকট্রো ম্যাগনেটিক ইন্টারফেয়ারেন্স বা EMI (electromagnetic interference) অনেক কম হয়। ফলে সাপ্লাই লাইনে ইলেকট্রিক্যাল নয়েজ (Noise) কমে।
  • ব্যবহৃত ক্যাপাসিটরের উপরে চাপ কম পড়ে

কিভাবে জিরো ক্রসিং ডিটেক্টর তৈরি করা যায়

জিরো ক্রস (Zero Cross) ডিটেক্টর সার্কিট অনেক ভাবেই করা যায় যেমনঃ-

  • অপ-এম্প (Op-amp) ব্যবহার করে,
  • ট্রানজিস্টর (Transistor) ব্যবহার করে,
  • অপ্টোকাপলার (Optocouplar) ব্যবহার করে।

ইন্টারনেট এ সার্চ করলে জিরো ক্রস (Zero Cross) ডিটেক্টর এর অনেক সার্কিট পাওয়া যাবে। নিচে এমনি একটি সার্কিট ও MOC আইসি এর চিত্র দেয়া হলো-

জিরো ক্রসিং ডিটেক্টর সার্কিট (নেট থেকে প্রাপ্ত)
জিরো ক্রসিং ডিটেক্টর সার্কিট (নেট থেকে প্রাপ্ত)

এখন কাজের কথায় আসি, মাইক্রোকন্ট্রোলার এর সাহায্যে কীভাবে আমরা ফেজ কন্ট্রোল করব। এই পোস্টটিতে এটা নিয়ে আমি খুব সংক্ষেপে লিখছি।

  • জিরো ডিটেক্ট এর পর সেই সিগনালটি আমরা মাইক্রোকন্ট্রোলার এ পাঠাতে হবে।
  • এখন মাইক্রোকন্ট্রোলারে সিগনালটি পাওয়ার পর আমরা যতক্ষণ না পর্যন্ত ট্রায়াক এর গেট এ ট্রিগার করব ততক্ষণ ট্রায়াক চালু (ON) হবে না।
  • মনেকরি জিরো ডিটেক্ট এর কিছু সময় পর আলফা (α) টাইমে ট্রায়াক এর গেট এ ট্রিগার করি (মানে ট্রায়াক অন) তাহলে ওই ট্রিগার এর পর থেকেই আউটপুট এ আমরা ভোল্টেজ পাব। নিচের চিত্রটি দেখলে আপনাদের বুঝতে অনেকটাই সুবিধা হবে।
ট্রায়াক ব্যবহার করে এসি ফেজ এঙ্গেল নিয়ন্ত্রণ ব্যবস্থা
ট্রায়াক ব্যবহার করে এসি ফেজ এঙ্গেল নিয়ন্ত্রণ ব্যবস্থা

ট্রায়াকের গেটে ট্রিগারিং টাইম ডিলে যত বেশি হবে আউটপুট এ আমরা ততই কম ভোল্টেজ পাব। এই ট্রিগারিং টাইম এরও একটা লিমিট আছে যা এই পোস্টে যুক্ত করে লেখা আর বড় করছি না। পরবর্তী মাইক্রোকন্ট্রোলার নিয়ন্ত্রিত এসি ফেজ কন্ট্রোল বা ফ্যান রেগুলেটর সংক্রান্ত পোস্টে সব কিছু বর্ণনা দেব। এবং আমার বানানো ট্রায়াক দিয়ে ফ্যান স্পিড কন্ট্রোলার বা লাইট ডিমার দেখাবো। আশাকরি ট্রায়াক ও ডায়াকের মুল কার্যপ্রণালী সেই সাথে ইলেকট্রনিক ফ্যান রেগুলেটরের কার্যপ্রণালী কিছুটা হলেও তুলে ধরতে পেরেছি। সবাই ভালো থাকবেন।

বিশেষ কৃতজ্ঞতাঃ লুতফর রহমান বাবুল ভাই ও সৈয়েদ রাইয়ান ভাই

এনিমেশন তৈরি করুন সহজেই – প্রসেসিং প্রোগ্রামিং টিউটোরিয়াল ৫ (ভিডিও সহ)

2
প্রোগ্রামিং দিয়ে এনিমেশন তৈরি করুন সহজেই - প্রসেসিং টিউটোরিয়াল ৫
প্রোগ্রামিং দিয়ে এনিমেশন তৈরি করুন সহজেই - প্রসেসিং টিউটোরিয়াল ৫

এনিমেশন দারুণ মজার একটি বিষয়। আর তা যদি কোডিং বা প্রোগ্রামিং করে তৈরি করা যায় তাহলে তো কথাই নেই। আজকে আমরা শিখবো এনিমেশন কি এবং কীভাবে প্রসেসিং দিয়ে এনিমেশন তৈরি করতে হয়। যদিও এনিমেশন সফটওয়্যার দিয়ে করা সম্ভব কিন্তু প্রোগ্রামিং এর মাধ্যমে করতে পারার মজাই আলাদা। আর আপনি যদি এনিমেশন ক্যারিয়ার তৈরি করবার চিন্তা করে থাকেন তাহলেও এ লেখার মাধ্যমে বেসিক কিছু ধারনা পাবেন। আর কোডিং এর মাধ্যমে এই এনিমেশন গুলো আয়ত্ব করতে পারলে আপনার তৈরি করা সফটওয়্যারেও আনতে পারেন দারুণ সব চমক!

এনিমেশন কি

আশাকরি এনিমেশন কী তা সবাই জানেন। তারপরও যারা জানেন না তাদের জন্য বলছি – টিভিতে যে বাচ্চাদের কার্টুন দেখানো হয়, সেরকম কম্পিউটারে তৈরি ভিডিওকেই এনিমেশন বলে। তবে প্রাচীনকালে হাতে এঁকেও এনিমেটেড ছবি বানানো হতো।

প্রাচীন কালে হাতে আঁকা এনিমেশন স্ট্রিপ
প্রাচীনকালে হাতে আঁকা এনিমেশন স্ট্রিপ

উপরের ছবিতে একটি হাতে আঁকা মল্লযুদ্ধের এনিমেশন স্ট্রিপ (অনেকগুলো ছবির গুচ্ছ) দেখা যাচ্ছে। প্রত্যেকটা ছবিতে দৃশ্য পরিবর্তন হয়ে যাচ্ছে। আমরা পরপর ছবিগুলো দেখতে থাকলে মনেহবে একটা ভিডিও থেকে এই ছবিগুলো নেয়া হয়েছে। এই এনিমেশন স্ট্রিপ টি প্রাচীন মিশরের দেয়ালে খোদাই করা ছিল।

এনিমেশনে ফ্রেম কি

উপরে আমরা যে মল্লযুদ্ধের এনিমেশন স্ট্রিপ টি দেখলাম, এই প্রত্যেকটা ছবিগুলোকে আলাদা ভাবে বলা হয় ফ্রেম (Frame)

ছবিতে লাল চিহ্নিত অংশটি একটি এনিমেশন ফ্রেম (Frame)
ছবিতে লাল চিহ্নিত অংশটি একটি এনিমেশন ফ্রেম (Frame)

এনিমেশন কিভাবে কাজ করে?

মানুষের চোখের সামনে থেকে কোন বস্তু সরে যাওয়ার পরেও ০.১ সেকেন্ড দেখা যায়। এই নীতির ওপর ভিত্তি করেই এনিমেশন কাজ করে। এনিমেশনে, স্ক্রিনে খুব দ্রুত (সেকেন্ডে ১৫ – ২৫বার) পরপর ফ্রেম পরিবর্তন করে দেখানো হয়। সেকেন্ডে ২৫বার ফ্রেম পরিবর্তন হলে মানুষের চোখ সেটাকে চলন্ত ছবি বা ভিডিও হিসেবে দেখে। তাই আমাদের মনেহয় এনিমেশনের বস্তুগুলো নড়াচড়া করছে।

ছোট একটা উদাহরণ দেয়া যেতে পারে- আপনি যদি সিলিং ফ্যানের দিকে তাকান তাহলে আপনার মনে হবে যে একটি গোল ব্লেডের ফ্যান ঘুরছে। ফ্যানে ৩টা ব্লেড থাকে, কিন্তু ওগুলো এত জোরে ঘুরে যে আপনার চোখ ৩টা ব্লেডের বৃত্তাকার গতিপথকে একটি গোল ব্লেড বলে মনেহয়।

মূলত এটিই সকল প্রকার এনিমেশনের মূল ভিত্তি। এবং আমরা আজকে এই পদ্ধতিতেই প্রোগ্রামিং কোড ব্যবহার করে এনিমেশন তৈরি করবো।

প্রসেসিং এ কিভাবে এনিমেশন তৈরি করবো?

আমরা যদি প্রসেসিং এ একই ভাবে খুব দ্রুত একটি বস্তুর অবস্থান পরিবর্তন করে স্ক্রিনে দেখাই, তাহলে সেটাও এনিমেশন হয়ে যাবে। কীভাবে? সেটাই আমরা এখন দেখবো।

প্রথমেই এই কোডটি লিখে রান করাই-


int circleX = 50, circleY = 50;
void setup(){size (800,400);}

void draw()

{
background (0);
fill(255);
ellipse(circleX,circleY, 50,50); /*drawing an ellipse*/ 
circleX++; /* incrementing the value of circleX by 1*/
}

রান করানোর পরে স্ক্রিনে দেখা যাবে একটি সাদা রঙের বল ডানদিকে সরে যাচ্ছে। অভিনন্দন! আপনি সফলভাবে প্রসেসিং এ নিজের প্রথম এনিমেশন করতে পেরেছেন। 😀

কোড ব্যাখ্যা

কোডে, প্রথমে একটি এলিপ্সের স্টেটমেন্ট লেখা হয়েছে, যেখানে পজিশনের জায়গায় circleX ও circleY ভেরিয়েবল ব্যবহার করা হয়েছে। এরপরের লাইনে circleX এর ভ্যাল্যু ১ করে বাড়ানো হয়েছে।

circleX এর ভ্যাল্যু প্রথমে ৫০ ছিল। যেহেতু circleX এর ভ্যাল্যু বাড়ানোর অংশটি void drawতে করা হয়েছে, তাই কম্পিউটার খুব দ্রুত বারবার circleX এর ভ্যাল্যু বাড়াতে থাকায় মনে হচ্ছে এলিপ্সটি আস্তে আস্তে ডানদিকে সরে যাচ্ছে।

আমরা যদি circleX এর জায়গায় circleY এর ভ্যাল্যু বাড়াতাম তাহলে এলিপ্সটি নিচের দিকে যেতো। আবার যদি circleX ও circleY দুটির ভ্যাল্যু একসাথে বাড়াতাম তাহলে এলিপ্সটি স্ক্রিনের ডানদিকের নিচের কোণার দিকে যেতো।

আপনি যদি circleX++ এর জায়গায় circleX+=1 লেখেন তাহলেও একই কাজ হবে, যেহেতু circleX++ ও circleX+=1 একই কাজ করে। আবার, circleX+=speed লিখে স্পিডের জায়গায় পছন্দমত সংখ্যা বসিয়ে এলিপ্সটি কত স্পিডে জায়গা পরিবর্তন করবেন তা ঠিক করতে পারবেন।

তবে স্পিডের জায়গায় ৫ এর বেশি দিলে মনেহবে এলিপ্সটি লাফিয়ে লাফিয়ে যাচ্ছে। তাই সাবলীল এনিমেশন এর জন্য একবারে ৫ এর বেশি ভ্যাল্যু বাড়ানো উচিত নয়।

উল্লেখ্য – স্পিডের মান দশমিক থাকলে (0.5/1.5) থাকলে অবশ্যই ফ্লোট ভ্যারিয়েবল ব্যবহার করতে হবে।

আপনি একইভাবে অন্যান্য শেপ/অবজেক্ট যেমন ত্রিভুজ, চতুর্ভুজ ইত্যাদিও প্রসেসিংএ এনিমেট করতে পারবেন। এমনকি এসব শেপ দিয়ে মানুষ বা অন্য কিছু বানিয়ে সেটা এনিমেট করে নিজের কার্টুন ফিল্মও বানাতে পারবেন! 😀

আমরা এখন আরও একটি জিনিস দেখবো, যা এনিমেশনের জন্য খুব গুরুত্বপূর্ণ। তা হচ্ছে, যুক্তি বা লজিক।

এই এনিমেশন টিউটোরিয়াল কোডিং এর ভিডিও

নিচের টিউটোরিয়াল ভিডিওতে দেখতে পাচ্ছেন আমার তৈরি করা এনিমেশনের ভিডিও-

প্রোগ্রামিং দিয়ে এনিমেশনের গুরুত্বপূর্ণ লজিক

আমরা আমাদের চারপাশের পৃথিবীতে যা দেখি, এনিমেশন ফিল্মের বস্তু যদি তার সাথে সঙ্গতিপূর্ণ না হয় তবে তা আমাদের চোখে বিসদৃশ বা অদ্ভুত মনে হতে পারে।

যেমন, আমরা জানি সাইকেল চালানোর সময়ে সামনের চাকা ডানদিকে ঘোরালে সাইকেল ডানে যায়, সামনের চাকা বামদিকে ঘোরালে সাইকেল বামে যায়। কিন্তু আপনার এনিমেশনে যদি দেখা যায় সাইকেলের চাকা ঘুরছে ডানদিকে, অথচ সাইকেল যাচ্ছে বামদিকে, তাহলে সেটা দেখতে ভাল লাগবেনা।

তাই, এনিমেশন বানানোর সময় কিছু সাধারণ নিয়মকানুন মেনে চলতে হয়, তাহলে এনিমেশনগুলো দেখে অবাস্তব মনে হয়না।

এ নিয়মকানুন আবার যা এনিমেট করছেন তার উপর নির্ভর করে, অর্থাৎ এনিমেটরের উপর নির্ভরশীল।

ধরুন, আপনি যদি একটি প্লেন এনিমেট করতে চান, তাহলে আপনাকে মাধ্যাকর্ষণ ও ফিজিক্সের কিছু নিয়ম মেনে চলতে হবে।

একটি বাস্তব উদাহরণ – বাউন্সিং বল এনিমেশন

আমরা এখন একটি বল মাটিতে ড্রপ খাচ্ছে, এরকম একটি এনিমেশন বানাবো। সেজন্য আমাদের বলটি এনিমেট করার সময় মাধ্যাকর্ষণ এর নিয়ম মেনে চলতে হবে।
নিচের কোডটি লিখে ফেলি –


int circleX = 50; int circleY = 50;
int direction = 1;
void setup(){size (800,400);}
void draw(){
background (0);
fill(255);
ellipse(circleX,circleY, 50,50);
circleY+=direction;
if (circleY >= 375){
direction = (-1);
}
}

কোড ব্যাখ্যাঃ এই কোড টি আগের কোডটির মতই, তবে কিছু নতুন জিনিস যোগ করা হয়েছে। int direction = 1; এই লাইন দিয়ে direction নামে একটি ভেরিয়েবল ডিক্লেয়ার করা হয়েছে, যার কাজ একটু পরেই দেখবো।

void setup(){size (800,400);}

void draw(){
background (0);
fill(255);
ellipse(circleX,circleY, 50,50);

আশাকরি এই লাইনগুলো কী কাজ করছে তা বোঝানো লাগবেনা।

circleY+=direction; এখানে circleY এর ভ্যাল্যুর সাথে direction এর মান যোগ করা হচ্ছে। যেহেতু direction এর মান ১, তাই এলিপ্সটি নিচের দিকে যাচ্ছে।

if (circleY >= 375){
direction = (-1);
}

এই লাইনটি দিয়েই এলিপ্স বা বলটি ড্রপ খাওয়ানো হচ্ছে।

বলটি যখন স্ক্রিনের ঠিক নিচের দিক স্পর্শ করে, তখন circleY এর মান হয় ৩৭৫, তখন if statement এর ভেতরে direction এর মান (-1) এসাইন (assign/declare) করা হয়। এতক্ষন direction এর মান +1 থাকায় circleY এর মান ১ করে বাড়ছিল। এখন direction এর মান (-1) হয়ে যাওয়ায় যখন circleY এর মান এর সাথে direction এর মান যোগ হবে, তখন আসলে circleY এর মান ১ করে কমা শুরু করবে, এবং বলটি উপরের দিকে ওঠা শুরু করবে। ঠিক বাস্তব জীবনে যেমন করে একটি বল বাউন্স করে তেমনি 😉

বলটি কখন স্ক্রিনের নিচেরদিক স্পর্শ করবে তা সহজেই একটি সূত্র দিয়ে বের করে নিতে পারবেন। সেই সূত্রটি হচ্ছে – screenHeight-(ellipseHeight/2)

এখানে, screenHeight হচ্ছে আপনার স্ক্রিনের উচ্চতা, যা এ কোডের ক্ষেত্রে ৪০০। এলিপ্সের উচ্চতাকে ২ দিয়ে ভাগ করলে কেন্দ্র থেকে নিচের পৃষ্ঠের দূরত্ব পাওয়া যায়। এই কেন্দ্র যখন স্ক্রিনের উচ্চতার মান থেকে এলিপ্সের উচ্চতার ১/২ উপরে থাকবে, তখন ধরে নেয়া যেতে পারে যে এলিপ্সটির নিচের পৃষ্ঠ ভূমি স্পর্শ করেছে।

আপনি ইচ্ছা করলে উপরে সূত্রটিতে মান বসিয়ে দেখতে পারেন, ৩৭৫ই আসবে।

প্রোগ্রামটি কিছুক্ষন চালিয়ে রাখলে দেখা যাবে বলটি ড্রপ খেয়ে উঠতে উঠতে স্ক্রিনের বাইরে চলে যাবে। কিন্তু আমরা একটি বল মাটিতে ফেললে তা কিছুক্ষণ ড্রপ খেয়ে থেমে যায়। তাই এটিও আমাদের কোডে করে নিতে হবে।

নিচের কোডটি লিখে ফেলি –

(উল্লেখ্য – এই কোডে বলের ড্রপ স্পিড বাস্তবসম্মত করার জন্য ৫ দেয়া হয়েছে। বলটিকে আকর্ষণীয় করে তোলার জন্য বলের উচ্চতার সাথে সাথে যেন রঙ পরিবর্তন হয় সে ব্যবস্থা করা হয়েছে)


int circleX = 50; int circleY = 50;
int dir = 5;
int droplimit = 150;
void setup(){size (800,400);}

void draw()
{
background (0);
fill(circleY,circleY*0.5,255);ellipse(circleX,circleY, 50,50);
circleY+=dir;
if (circleY >= 375){
dir = (-5);
}
if (circleY <= droplimit && dir == (-5)){
if (droplimit<=350)
{droplimit +=100; dir = 5;}
else {dir=0;}

}
}

int droplimit = 150;

এখানে নতুন আরেকটি ভ্যারিয়েবল ডিক্লেয়ার করেছি droplimit নামে। বলটি ড্রপ করে কতটা উপরে উঠবে তা এখানে ডিক্লেয়ার করা হয়েছে।

if (circleY <= droplimit && dir == (-5))
{
if (droplimit<=350)
{droplimit +=100; dir = 5;}
else {dir=0;}
}

এই if statementটি দিয়েই বলটি বাস্তবসম্মতভাবে ড্রপ খাওয়ানো হয়েছে। এখানে, একটি if statement এর ভেতরে আরেকটি if statement ব্যবহার করা হয়েছে। এধরণের if statementকে বলা হয় nested if statement। অর্থাৎ, একাধিক if statement একটির ভেতরে আরেকটি ব্যবহার করলে তাকে nested if statement বলা হয়। if statement এর মত nested for loop, nested while loop ও হয়, যা আমরা পরের পর্বগুলোতে দেখবো।

if (circleY <= droplimit && dir == (-5))

এখানে circleY অর্থাৎ এলিপ্সটির পজিশন ড্রপলিমিট এর নিচে কিনা তা পরীক্ষা করা হয়েছে এবং এলিপ্সটি উপরের দিকে যাচ্ছে কিনা তা পরীক্ষা করা হয়েছে।

if (droplimit<=350)

এখানে ড্রপলিমিট এর মান ৩৫০ এর চেয়ে ছোট কিনা তা পরীক্ষা করা হয়েছে। যেহেতু এলিপ্সটির সাইজ ৫০, তাই ড্রপলিমিট এর মান ৩৫০ এর বেশি হয়ে গেলে এলিপ্সটি স্ক্রিনের বাইরে বের হয়ে যাবে।

{droplimit +=100; dir = 5;}

যদি ড্রপলিমিট পূর্ববর্তী শর্তটি পূরণ করে তাহলে ড্রপলিমিট এর মান ১০০ বেড়ে যাবে, অর্থাৎ বলটির ড্রপ খাওয়ার পরিমাণ ১০০ কমে যাবে। এবং তখন dir=5 হয়ে যাবে, তাতে বলটি ড্রপ খেয়ে উপরে ওঠা শুরু করবে।

এভাবে প্রতিবারে ড্রপ খেলে বলটির ড্রপ খাওয়ার পরিমাণ ১০০ করে কমতে থাকবে।

else {dir=0;}

যখন ড্রপলিমিট বেড়ে ৩৫০ এর বেশি হয়ে যাবে,অর্থাৎ বলটি আর ড্রপ খাওয়ার পরিমাণ একেবারেই কমে যাবে, তখন এই else statementটি রান হবে এবং dir=0 হয়ে যাবে। তখন বলটি স্থির হয়ে যাবে।

প্রসেসিং সংক্রান্ত অন্যান্য লেখাগুলো পড়তে চাইলে এখানে ক্লিক করুন – প্রসেসিং টিউটোরিয়াল

চেষ্টা করলে এই এনিমেশনটি আরও সুন্দর ও বাস্তবসম্মত করে তোলা যায়। কীভাবে করবেন তা আপনাদের ওপরই ছেড়ে দিলাম। তাহলে প্রোগ্রামার বন্ধুরা লেগে পরুন কোডিং দিয়ে এনিমেশন তৈরি করতে। আর হ্যাঁ প্রোগ্রামিং এনিমেশনে ক্যারিয়ার গড়তে চাইলে অবশ্যই আপনাকে দক্ষ এনিমেটর হতে হবে। আর জানেন নিশ্চয়ই একজন মোটামুটি কাজ জানা এনিমেশন ক্যারিয়ার হোল্ডার এর বেতন লাখ টাকার কাছাকাছিও হয় 😉

ডিজিটাল হার্টবিট কাউন্টার তৈরি – আরডুইনো প্রজেক্ট (ভিডিও সহ)

1
ডিজিটাল হার্টবিট কাউন্টার তৈরি - আরডুইনো প্রজেক্ট (ভিডিও সহ)
ডিজিটাল হার্টবিট কাউন্টার তৈরি - আরডুইনো প্রজেক্ট (ভিডিও সহ)

হার্টবিট কাউন্টারের মাধ্যমে হৃদপিন্ড কতবার পালস দিচ্ছে জানতে পারি। অনেক গুরুতর রোগ যেমন বুক ধড়ফড় করা, অনিয়মিত হৃদস্পন্দন হতে শুরু করে অনেক মানসিক সমস্যা থেকে মুক্তির উপায় ও বের করা সম্ভব। কারণ সুস্থ ও নীরোগ দেহের পূর্বশর্ত হচ্ছে সুস্থ হার্ট। আজকে আরডুইনো দিয়ে তেমনি একটি ডিজিটাল হার্টবিট মনিটর তৈরি করা শিখবো।

পালস বা হার্টবিট কি

হৃদপিন্ড আমাদের শরীর থেকে শিরার সাহায্যে রক্ত সংগ্রহ করে তাকে পরিশুদ্ধ করে আবার তা ধমনীর মাধ্যমে শরীরে ছড়িয়ে দেয়। যখন হৃদপিন্ড রক্ত শোষন করে তখন শরীরে রক্তের প্রবাহ কমে যায় এবং যখন রক্ত পাম্প করে তখন শরীরে রক্তের প্রবাহ বেড়ে যায়। এ জন্যই বুকে স্টেথোস্কোপ ধরলে ঢিপঢিপ শব্দ শোনা যায়। অথবা হাতের ধমনীতে কিংবা ঘাড়ের শীরায় আঙ্গুল ধরলে কিছুক্ষণ পরপর একটু চাপ অনুভব হয়। একেই হার্টবিট বা পালস বলে।

বিপি/বিপিএম (BP/BPM) কি?

BPM = Bits Per Minute, অর্থাৎ প্রতি মিনিটে কত সংখ্যক বিট/পালস দিচ্ছে তার পরিমাণ। এই Bits Per Minute এর প্রতি শব্দের প্রথম অক্ষর নিয়ে সংক্ষেপে বলা হয় BPM বা আরো সংক্ষেপে BP.

যদিও BP এর আরেক প্রতিশব্দ ব্লাড প্রেশার তবে ক্ষেত্র বিশেষে একে বিটস পার মিনিটের (BPM) সংক্ষেপ ও বলাহয়।

পালস রেট এর স্বাভাবিক মাত্রা কত?

স্বাভাবিক অবস্থায় হার্টের পালস রেট নিম্নরূপ-

  • গর্ভজাত শিশু/ভ্রুণের স্বাভাবিক পালস ১৪০-১৫০
  • নবজাতক শিশুর স্বাভাবিক পালস ১৩০ – ১৪০
  • শিশুর স্বাভাবিক পালস ৮০ – ১২০
  • প্রাপ্ত-বয়ষ্ক স্বাভাবিক লোকের পালস ৬০-৯০
  • বৃদ্ধ লোকের স্বাভাবিক পালস ৭৫-৪০

নিচের টেবিলে চিত্রে আমরা বিভিন্ন বয়স ও স্বাস্থ্যের অধিকারীদের আনুমানিক পালস রেট চিত্র দেখতে পাচ্ছি-

বয়স অনুযায়ী বিভিন্ন মানুষের হার্টবিট পালস সংখ্যা
বয়স অনুযায়ী বিভিন্ন মানুষের হার্টবিট পালস সংখ্যা

পালস/হার্টবিট সেন্সর পরিচিতি

যে যন্ত্র দ্বারা পালস সেন্স করা যায় তাকেই পালস সেন্সর বলে। ইসিজি যন্ত্রে এই কাজটিই করা হয়। বিশ্বব্যাপি সিনেমায় পালস প্রদর্শন একটা প্রতিনিয়ত ঘটনা। সিনেমায় কেউ হসপিটালে থাকলে মনিটর যে গ্রাফটা দেখা যায় এইটাই পালস গ্রাফ (Pulse Graph)। হার্টবিট পালস গ্রাফ

পালস সেন্সর তৈরীর তত্ত্ব

হৃদপিন্ডের সংকোচন প্রসারণের জন্য বিদ্যুৎ প্রয়োজন হয়। হৃদপিন্ডের এই অনবরত সংকোচন ও সম্প্রসারনের কাজ চালাবার জন্য তার নিজস্ব অত্যন্ত শক্তিশালী ও স্থিতিশীল বিদ্যুৎ উৎপাদন কেন্দ্র রয়েছে। কিন্তু বাইরে থেকে সাধারন মাল্টিমিটার বা ভোল্ট মিটার দ্বারা এই বিদ্যুৎ নির্নয় করা যায় না। কারণ এটি অনেক স্বল্প মাত্রার। কিন্তু এর দ্বারাই হৃদপিন্ড তালে তালে অনবরত সংকোচন ও সম্প্রসারন করে। যারফলে আমরা হার্টবিট পালস পাই।

এই বিদ্যুত উৎপাদন কেন্দ্রের নাম SINOATRIAL NODE (SA)। এটা হৃদপিন্ডের ডান পার্শের উপরি প্রকোষ্ঠের উপর অংশে অবস্থিত। এটাকে পেস মেকার (PACE MAKER) ও বলে। এই বিদ্যুৎ প্রতিবার পাম্পের সময় সমস্ত শরীরে ছড়িয়ে পড়ে। এই বিদ্যুৎ বিশ্লেষণ করেই ELECTRO CARDIOGRAPH,(ECG) মেশিনে পালস গণনা করা হয়।

কিন্তু আমরা এই পদ্ধতিতে তৈরী করবোনা। এই বিদ্যুৎ/ভোল্টেজ খুবই কম মানের হয় যা ফিল্টার করতে হলে খুব ভালো মানের ব্যান্ড পাস ফিল্টার প্রয়োজন। যা হবিস্টদের জন্য অত্যন্ত ঝামেলা জনক ও দুরূহ চ্যালেঞ্জ।

আমরা আলোর প্রতিফলন পদ্ধতি কাজে লাগিয়ে তৈরী এই ডিজিটাল হার্টবিট মনিটর টি তৈরি  করবো।

যখন হৃদপিন্ড দ্বারা পাম্প কৃত রক্ত শরীরের বিভিন্ন নালীতে প্রবাহের পরিমাণ বেশি হবে তখন এর ভিতর দিয়ে অতিবাহিত আলোর প্রতিফলন ও বেশি হবে। এই তত্ত্ব ব্যবহার করে আমরা একটা সেন্সর ডিজাইন করবো।

মূল সেন্সর তৈরী

হার্টবিট মনিটর ডিভাইসের জন্য ব্যবহৃত TCRT5000 সেন্সর
হার্টবিট মনিটর ডিভাইসের জন্য ব্যবহৃত TCRT5000 সেন্সর

সেন্সর তৈরী করতে আমি TCRT1000 ব্যবহার করেছি। এইটা আসলে IR tx rx pair ছাড়া আর কিছুই না আপনারা TCRT5000 অথবা যে কোনো ইনফ্রা রেড ট্রান্সমিটার/রিসিভার (IR TXRX) এলইডি ব্যবহার করে কাজ করতে পারবেন।

হার্টবিট মনিটর ডিভাইসের জন্য ব্যবহৃত TCRT1000 সেন্সর
হার্টবিট মনিটর ডিভাইসের জন্য ব্যবহৃত TCRT1000 সেন্সর

এই সেন্সর ভোল্টেজ ডিভাইডার রুল অনুযায়ী কাজ করে। তাই এর সাথে আমাদের একটা ১০ কিলো ওহম রোধ সিরিজে লাগাতে হবে। আর TX এলইডি জ্বালানোর জন্য একটা ১৫০-৩০০ ওহম মানের রোধ লাগাতে হবে নাহলে ৫ভোল্ট এই এলইডি টি ফিউজ হয়ে যাবে।

সেন্সরে উপযুক্ত পাওয়ার দেবার ডায়াগ্রাম
সেন্সরে উপযুক্ত পাওয়ার দেবার ডায়াগ্রাম

এই সেন্সর ভোল্টেজ ডিভাইডার রুল অনুযায়ী কাজ করে। তাই এর সাথে আমাদের একটা ১০ কিলো ওহম রোধ সিরিজে লাগাতে হবে। আর TX এলইডি জ্বালানোর জন্য একটা ১৫০-৩০০ ওহম মানের রোধ লাগাতে হবে নাহলে ৫ ভোল্ট এ এই এলইডি টি ফিউজ হয়ে যাবে।

ব্যান্ডপাস ফিল্টার ডিজাইন

এরপর সেন্সর থেকে প্রাপ্ত ভোল্টেজকে অবশ্যই একটা ব্যান্ডপাস ফিল্টার দিয়ে ফিল্টার করতে হবে। কারণ ভোল্টেজের পরিবর্তন খুবই সূক্ষ্ম হয়। একই সাথে এই ব্যান্ডপাস ফিল্টার দ্বারা অপ্রয়োজনীয় সিগনাল সমূহকেও বাদ দেয়া যায়।

ডিজিটাল হার্টবিট মনিটর ডিভাইসের জন্য ডিজাইনকৃত ব্যান্ডপাস ফিল্টারের স্কিমেটিক ডায়াগ্রাম
ডিজিটাল হার্টবিট মনিটর ডিভাইসের জন্য ডিজাইনকৃত ব্যান্ডপাস ফিল্টারের স্কিমেটিক ডায়াগ্রাম

উপরে দেখানো হলো ফিল্টার সার্কিট এর স্কিমেটিক ডায়াগ্রাম। আমি একই ব্যান্ডপাস ফিল্টার কে দুইবার ব্যবহার করেছি নিখুঁত ফিল্টারিং এর জন্য। আউটপুটে একটা এলইডি ব্যবহার করা হয়েছে পালস ইন্ডিকেটর হিসেবে।

এখানে উল্লেখ্য যে আরডুইনোতে ডিজিটাল ইনপুট নিয়ে কাজ করলে অবশ্যই সেন্সরের আউটপুট আর গ্রাউন্ডের সাথে একটা ১০ কিলো ওহম বা বড় মানের একটা রোধ লাগাতে হবে। কারণ কম্পারেটর কখনোই ০ ভোল্ট আউটপুট দেয়না। কিছু ছোট মানের ভোল্টেজ সবসময় থাকে। যার জন্য digitalRead নিলে HIGH দেখাবে। প্রোটিয়াস ডিজাইন টি ডাউনলোড করতে এখানে ক্লিক করুন

পিসিবি ডিজাইন

প্রজেক্টের পিসিবি ডিজাইন (কপার সাইড)
প্রজেক্টের পিসিবি ডিজাইন (কপার সাইড)
পিসিবি এর কম্পোনেন্ট সাইড বা টপ সিল্ক
পিসিবি এর কম্পোনেন্ট সাইড বা টপ সিল্ক

উপরে ছবিতে আমরা পিসিবি ডিজাইন দেখতে পাচ্ছি। পিসিবি ডিজাইন করতে আমি প্রোটিয়াস সফটওয়্যার ব্যবহার করেছি। এবং টোনার ট্রান্সফার পদ্ধতিতে পিসিবি প্রিন্ট করেছি। পিসিবি তৈরি করবার ও প্রিন্ট করার সহজ পদ্ধতি জানতে এখানে ক্লিক করুন – টোনার ট্রান্সফার পদ্ধতিতে পিসিবি তৈরি

পালস মনিটর তৈরি

এক মিনিটে হার্ট কয়টা বিট দেয় সেটা গুনে আপনি নিজেই পালস রেট মাপতে পারেন।

এখন আমরা আরডুইনো ব্যবহার করে ডিজিটাল ডিসপ্লে দিয়ে পালস মনিটর বানাব। আরডুইনো দিয়ে প্রোগ্রাম করা যায় এমন যেকোন ডিসপ্লে ব্যবহার করতে পারবেন।

আমি Nokia 5110 সেটের ডিসপ্লে ব্যবহার করেছি। কারণ এই ডিসপ্লেটা ওপেন-সোর্স এবং এই ডিসপ্লের আরডুইনো লাইব্রেরী আছে। স্পার্কফান এই ডিসপ্লে মডিউল আকারে বিক্রি করে ও সহজলভ্য।

ডিসপ্লে প্রোগ্রাম করতে হলে আগে অবশ্যই ডিসপ্লে লাইব্রেরী সম্পর্কে জানা জরুরী ।

  • ডিসপ্লে লাইব্রেরী ডাউনলোড করতে এখানে ক্লিক করুন – https://drive.google.com/file/d/0Bw49d4iXnF-qYlFFV1Zzb1ZHTHc/view?usp=sharing
  • লাইব্রেরী ডাটাশিট ডাউনলোড করতে এখানে ক্লিক করুন

আরডুইনোর সাথে ডিসপ্লে সংযোগ দিতে হবে নিচের চার্ট অনুযায়ী

  • SCK – Pin 8
  • MOSI – Pin 9
  • DC – Pin 10
  • RST – Pin 11
  • CS – Pin 12

এখন আসি প্রোগ্রামিং এ। হার্ডওয়্যার আরডুইনো ব্যবহার করেছি প্রোগ্রামিংও আরডুইনো আইডিএ দিয়ে করবো।
নিচের কোড আরডুইনোতে কপি পেস্ট করলেই কাজ হবে

#include <LCD5110_Graph.h> 
#include<StopWatch.h> 
StopWatch myTime(StopWatch::SECONDS); 
LCD5110 myGLCD(8,9,10,11,12); 
extern uint8_t BigNumbers[];

extern uint8_t SmallFont[]; 
extern unsigned char TinyFont[]; 
extern uint8_t heart[]; 
extern uint8_t diu[]; 
extern uint8_t The_End[]; 
int a=5, b=41; c=-3, sa=0, sb=0,buttonDelay=200,countBit=0,rate=72;
float j=0.00;

void setup() 
{
pinMode(7,0); 
pinMode(6,0); 
myGLCD.InitLCD(); 
myGLCD.clrScr(); 
myGLCD.setFont(SmallFont); 
myGLCD.update();
delay(50);
} 
}


void loop() { 

homeScreen(); delay(50); 
for(int k=11;k>10; k++)
{
sb=digitalRead(2); 
if(sb==1) 
{
calculatorScreen(); 
sb=0; 
delay(buttonDelay); 
break; 
}
delay(10);
}
a=0;
myTime.start(); 
int t=0;
for(int k=11;k>10; k++){
sa=digitalRead(6);
sb=digitalRead(2);

if(sa==1)
{
drawBit();
countBit++; 
}
else if(sb==1){delay(buttonDelay); sb=0; t=myTime.elapsed();myTime.reset(); break;}
else if(a>83){a=0; clearUpdate(); }
else {myGLCD.setPixel(a,40);a=a+2; myGLCD.update();delay(10);
}
t=myTime.elapsed();
j=((countBit*100)/t)*0.60;
rate=j;
writeRate();
}

j=((countBit*100)/t)*0.60;
rate=j;
countBit=0;

result();delay(1000);
for(int k=20; k>10; k++){
sb=digitalRead(2);
if (sb==1){delay(50); sb=0; endScreen(); break;}
}
}
// all function can be found below this line
//****************************************************************************************

void drawBit(){
Serial.println("drawBit");
int count=0;
for(b=38; b<45; b=b+c){
myGLCD.setPixel(a,b);a++; myGLCD.update();delay(10);
if(b==44 ){c=-c;}
if(b==29){c=-c;}

count++;
if( count==10){count=0; break;}
}
}

void writeRate(){ 
Serial.println("writeRate");
if(rate<100){
myGLCD.setFont(BigNumbers);
myGLCD.printNumI(rate,50,1);
myGLCD.setFont(SmallFont);
myGLCD.print("Heart",17,5);
myGLCD.print("Rate",18,15);
myGLCD.update();
}
else{
myGLCD.setFont(BigNumbers);
myGLCD.printNumI(rate,41,1);
myGLCD.setFont(SmallFont);
myGLCD.print("Heart",17,5);
myGLCD.print("Rate",18,15);
myGLCD.update();
}
}


void clearUpdate(){
Serial.println("clearUpdate");
Serial.println("clearUpdate");
int m=1;int n=27;int o=82;int p=46;
for(int x=0; x<10;x++){ 
myGLCD.clrRect(m,n,o,p);
m++; n++, o--; p--;
}

myGLCD.update();
}

void homeScreen(){
Serial.println("homescreen");

myGLCD.clrScr();
myGLCD.drawBitmap(0,0, diu, 83,34);

myGLCD.setFont(SmallFont);
myGLCD.print("Press to start",CENTER,35);
myGLCD.update();
}
void result(){
Serial.println("result");
myGLCD.clrScr();
myGLCD.setFont(BigNumbers);
myGLCD.printNumI(rate,20,10);
myGLCD.setFont(SmallFont);
myGLCD.print("BPM",65,30);
myGLCD.print("Press B to end",CENTER,40);
myGLCD.update();
}

void calculatorScreen(){
Serial.println("calculatorScreen");
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myGLCD.drawBitmap(1,5, heart, 17,16);
myGLCD.setFont(BigNumbers);
myGLCD.printNumI(0,50,1);
myGLCD.setFont(SmallFont);
myGLCD.print("Heart",17,5);
myGLCD.print("Rate",18,15);
myGLCD.drawRect(0, 0, 83, 47);
myGLCD.drawLine(0, 26, 84, 26);
myGLCD.update();
}

void endScreen(){
Serial.println("endScreen");
myGLCD.clrScr();
for (int i=0; i<35; i++)
{
myGLCD.clrScr();
myGLCD.drawBitmap(0, i-24, The_End, 84, 24);
myGLCD.update();
delay(30);
}
delay(500);
myGLCD.invert(true); delay(500); 
myGLCD.invert(false); delay(500); 
myGLCD.invert(true); delay(500);
myGLCD.invert(false); delay(500);
}

এই কোড ব্যবহার করতে হলে অবশ্যই graphics.c নামে একটা আলাদা ফাইল দরকার হবে। আরডুইনোতে নতুন পেজ খুলে তাতে কোড দিয়ে সেভ করতে হবে। নিচের চিত্রগুলো দেখুন-

আরডুইনোতে কোড আপলোড করার চিত্র
আরডুইনোতে কোড আপলোড করার চিত্র
আরডুইনো তে নিউ ট্যাব ওপেন করা
আরডুইনো তে নিউ ট্যাব ওপেন করা
আরডুইনো স্কেচ এর জন্য নাম টাইপ করা
আরডুইনো স্কেচ এর জন্য নাম টাইপ করা

প্রথমে স্ক্রিনশটের মতো এই বাটনে ক্লিক করে , তারপর new tab অপশনে ক্লিক করে তারপরে পছন্দমতো নাম দিয়ে সেভ করতে হবে।

#include <avr/pgmspace.h>
const uint8_t heart[] PROGMEM={
0x00, 0x00, 0xF0, 0xF8, 0x9C, 0x0C, 0x0C, 0x1C, 0x38, 0x38, 0x18, 0x0C, 0x0C, 0x1C, 0xF8, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E, 0x1C, 0x38, 0x70, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03,
0x00, 0x00, 0x00, 0x00, 
};
const uint8_t The_End[] PROGMEM={
0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x60, 0x00, 0x00, // 0x0010 (16) pixels
0x80, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, // 0x0020 (32) pixels
0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, // 0x0030 (48) pixels
0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x00, 0x00, // 0x0040 (64) pixels
0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF0, 0x60, 0x40, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, // 0x0050 (80) pixels
0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x81, 0xFC, 0xFF, 0x0F, 0x03, 0x00, 0x00, 0x00, // 0x0060 (96) pixels
0xEE, 0x6F, 0x67, 0xFF, 0xFF, 0x7F, 0x71, 0x30, 0xF0, 0xFF, 0x3F, 0x39, 0x38, 0x18, 0x00, 0x01, // 0x0070 (112) pixels
0x00, 0xF8, 0xFF, 0x1F, 0x0F, 0x0C, 0x0D, 0x8D, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // 0x0080 (128) pixels
0x00, 0xC0, 0xFF, 0x7F, 0x0F, 0x0C, 0x0D, 0x0D, 0x84, 0x80, 0x80, 0x07, 0x07, 0x83, 0xFF, 0xFF, // 0x0090 (144) pixels
0x1F, 0x3F, 0xFE, 0xF8, 0xF8, 0xFE, 0xDF, 0x03, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x1F, 0x00, // 0x00A0 (160) pixels
0x00, 0x80, 0x81, 0xC3, 0xE7, 0x7F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x07, 0x03, 0x00, // 0x00B0 (176) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x0F, 0x0F, 0x07, 0x00, // 0x00C0 (192) pixels
0x00, 0x06, 0x06, 0x3F, 0x1F, 0x0F, 0x0F, 0x0E, 0x06, 0x06, 0x06, 0x07, 0x07, 0x03, 0x00, 0x00, // 0x00D0 (208) pixels
0x00, 0x00, 0x06, 0x1F, 0x3F, 0x1F, 0x0F, 0x0E, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x03, 0x00, // 0x00E0 (224) pixels
0x06, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x18, 0x1C, 0x1F, // 0x00F0 (240) pixels
0x0F, 0x07, 0x06, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 
};

const uint8_t diu[] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x80,
0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80,
0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xE0, 0x80, 0x00,
0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x1F, 0x1C, 0x03, 0x1F, 0x18, 0x07, 0x00, 0x0F, 0x1F, 0x12, 0x1B, 0x0B, 0x00, 0x1F, 0x1F,
0x00, 0x0F, 0x1F, 0x10, 0x19, 0x09, 0x00, 0x0F, 0x1F, 0x10, 0x1F, 0x0F, 0x00, 0x1F, 0x1F, 0x00,
0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x0F, 0x1F, 0x12, 0x1B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0F,
0x1F, 0x10, 0x00, 0x0F, 0x1F, 0x10, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0x0E, 0x0E, 0x1E, 0xFE, 0xFC, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x0E, 0xFE,
0xFE, 0xFE, 0xFE, 0xFE, 0x0E, 0x00, 0x0E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x0E, 0x00, 0x0E, 0xFE,
0xFE, 0xFE, 0x0E, 0x00, 0x00, 0x0E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x8E, 0x8E, 0x8E, 0xFE, 0xFE,
0xFE, 0xFC, 0x78, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0x1E, 0x0E, 0x0E, 0x1C, 0x3E,
0x3E, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x38, 0x38, 0x3C, 0x3F, 0x1F, 0x1F, 0x0F, 0x03, 0x00, 0x00,
0x00, 0x38, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x38, 0x00, 0x00, 0x07, 0x1F, 0x1F, 0x3F, 0x3F, 0x38,
0x38, 0x3C, 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x38, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x39, 0x01,
0x07, 0x1F, 0x3F, 0x3F, 0x3E, 0x3C, 0x38, 0x00, 0x03, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x3C, 0x38,
0x38, 0x3C, 0x3F, 0x1E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xE0, 0x20, 0x20, 0x20, 0xC0, 0x20, 0xE0, 0x40, 0x20,
0x00, 0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x40, 0xA0, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x20, 0x00,
0x00, 0x00, 0x00, 0x20, 0xF8, 0x20, 0x20, 0xC0, 0x20, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x40, 0xA0, 0x20, 0x00, 0x20, 0xF8, 0x20, 0x20, 0x20, 0xA0, 0xA0, 0xC0, 0x00, 0x20, 0xE0,
0x40, 0x20, 0x00, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, 0x12, 0x02, 0x02, 0x01, 0x02,
0x03, 0x02, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x02,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01,
0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x03,
0x02, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 
};

হয়ে গেল আমাদের প্রোগ্রামিং করা। এখন কোড আপলোড করে ডিসপ্লে সংযোগ দিলেই আমাদের পালস মনিটর হয়ে যাবে। চলুন তাহলে এখন দেখে আসি কেমন হবে এই পালস মনিটর।

ভিডিও লিঙ্ক

নিচে আমার তৈরি করা ডিজিটাল হার্টবিট মনিটর এর বিস্তারিত কর্মপদ্ধতি দেখানো হলো-

পরিশিষ্ট

ভিডিও টিউটোরিয়াল ও বিস্তারিত তথ্যদিয়ে লেখাটিকে সাজানোর চেষ্টা করা হয়েছে। যথাস্থানে উপযুক্ত ছবি, কোড দেবার চেষ্টা করেছি। তাই আমার মনেহয় এই ডিজিটাল হার্টবিট পালস মনিটর যন্ত্রটি তৈরি করতে কারো অসুবিধা হবার কথা নয়। তবু কোন সমস্যা হলে নিচে কমেন্ট বক্স তো রইলোই। অবশ্যই জানাবেন আর তৈরি করবেন আরডুইনো দিয়ে এই ডিজিটাল হার্টবিট পালস মেশিন। প্রসঙ্গক্রমে জানিয়ে রাখি, এই মেশিনটি হার্টবিট কমানো কিংবা বুক ধরফর করা কমানোর সহজ উপায় ও কিন্তু হতে পারে।

Arduino ও ডিজিটাল ইলেক্ট্রনিক্স। (২য় পর্ব)

9
https://www.amaderelectronics.com/wp-content/uploads/2017/04/url.jpg

আমরা গত পর্বে শিখেছিলাম আরডুইনো কি এবং কেন ব্যবহার করবো। আজকে “Arduinoডিজিটাল ইলেক্ট্রনিক্স” এর ২য় পর্ব  আমরা শিখব কিভাবে সি ল্যাংগুয়েজ ব্যবহার করে আরডুইনোর জন্য একটা প্রোগ্রাম লেখা যায়।

যেহেতু আমরা প্রোগ্রামিং ল্যাংগুয়েজ হিসাবে সি ল্যাংগুয়েজ ব্যবহার করবো তাই এই সি ল্যাংগুয়েজ সম্পর্কে আমাদের কিছুটা ধারণা থাকা দরকার। আমরা নিচে একটা লিংক দেখতে পাচ্ছি এখানে সি ল্যাংগুয়েজ এর ওপর একটা টিউটোরিয়াল আছে।

সি প্রোগ্রামিং টিউটোরিয়াল

http://www.freebanglapdfstore.com/2014/01/tamim-shariar-bangla-programming-ebook.html

আপনাদের সবাইকে আমি বলব আমার বাকি লেখনিটুকু পড়বার আগে এই লিংক থেকে একবার ঘুরে আসুন এবং সি ল্যাংগুয়েজ এর ওপর একটা মোটামুটি ধারনা নিয়ে নিন।

মনে করছি আপনারা যথাযথ ভাবে ওপরের টিউটোরিয়ালটা অনুসরন করেছেন এবং সি ল্যাংগুয়েজ সম্পর্কে আপনাদের মোটামুটি একটা ধারনা তৈরী হয়েছে। এবার আমরা জানব যে, আমাদের কাজের জন্য কি কি সফ্টওয়্যার লাগবে।

প্রয়োজনিয় সফটওয়্যার

আমাদের কাজের জন্য আপাতত ২টি সফটওয়্যার হলেই চলবে। সফটওয়্যার ২টি হলো-

  • ১. Arduino I.D.E
  • ২. Proteus

Arduino I.D.E: Arduino IDE সফটওয়্যার টিকে মূলত এমনভাবে তৈরী করা হয়েছে যে এটি দিয়ে একই সাথে একটি কোড কম্পাইল ও সরাসরি আরডুইনোতে আপলোড করা যায়। এতে আরডুইনোর জন্য built in অবস্থায় প্রচুর পরিমান example ও library সংযুক্ত করা হয়েছে। এক কথায় নতুনদের কথা মাথায় রেখে এর নির্মাতা এটাকে খুবই সহজ করে সাজিয়েছেন।

Proteus: এরপর আমাদের লাগবে Proteus। এই সফটওয়্যারটির নাম হয়ত আমরা অনেকেই শুনেছি। প্রোটিয়াস হলো এমন একটি শক্তিশালি সফটওয়্যার যেটা দিয়ে ভার্চুয়ালি খুব সহজে একটা ইলেকট্রনিক সার্কিট তৈরি করা ও সিম্যুলেশন করা যায়।

অর্থাৎ এর মাধ্যমে সার্কিটটি সঠিকভাবে কাজ করবে কিনা তা পরিক্ষা করা যায়। এছাড়াও এটি দিয়ে খুব সুন্দর পিসিবি ডিজাইনও করা যায় এবং এর 3D output ও পাওয়া যায়। যেহতু্ আরডুইনোতে একটা প্রোগ্রাম লেখার পর সেটি সঠিকভাবে কাজ করছে কিনা তা জানার প্রয়োজন পড়বে তাই এটি আমাদের খুবই সহায়ক হবে।

আসুন প্রথমেই আমরা নিচের লিংক থকে আমাদের প্রয়োজনিয় সফটওয়্যার ২টি ডাউনলোড করে নিই।

Arduino IDE Download

https://downloads.arduino.cc/arduino-1.8.2-windows.zip

Protious Download

 1.http://www.mediafire.com/file/qcgr80t8axzba44/Proteus+8.4.0+SP0+Professional.7z

 2.http://diphons.blogspot.com/2016/05/proteus-84-pro-full-crack.html

arduino ide সফটওয়্যার টি পোর্টেবল যার কারনে এটাকে ইন্সটল করার ঝামেলা নেই।
প্রথমেই আমরা arduino.exe ফাইলটি ওপেন করবো। এখন আমরা নিচের মতো একটা উইন্ডো দেখতে পাচ্ছি।

আরডুইনোতে নতুন স্কেচ (Sketch) ওপেন করলে এমন আসবে
আরডুইনোতে নতুন স্কেচ (Sketch) ওপেন করলে এমন আসবে

এখানে আমরা void setup () { } ও void loop () { } এইরকম ২ টি ফাংশন দেখতে পাচ্ছি। যেহেতু আমরা পুর্বেই সি ল্যাংগুয়েজ টিউটোরিয়াল থেকে

variable, loop, function ইত্যাদি সম্পর্কে জেনেছি তাই এখানে আরা এই বিষয়ের ওপর কোনো বিস্তারিত আলোচনা করবনা। আমরা আজকে এমন একটা প্রোগ্রাম লিখব যেটা দিয়ে আরডুইনোর যে কোন একটা পিন ব্যবহার করে একটা এল,ই,ডি কে নির্দিষ্ট সময় পরপর জ্বালানো এবং নিভানো যাবে। তো আসুন আরডুইনোর জন্য একটা led blinking program লিখে ফেলি।

Led blinking program

int led = 13;

এখানে আমরা led নামে একটা ভেরিয়েবল নিয়েছি যার মান 13.

এরপর আমরা যে কমান্ডগুলো লিখব সেগুলো লিখব void setup ফাংশন এর ভিতরে। void setup ফাংশনটি মূলত আরডুইনোর mode setup এর জন্য ব্যবহৃত হয়।

অর্থাৎ কোনো পিনকে আমরা ইনপুট হিসাবে না আউটপুট হিসাবে ব্যবহার করব তা এখানেই নির্ধারিত করে নিতে হবে।
যেহেতু আমরা আরডুইনোর ১৩ নং পিনকে ব্যবহার করে একটা এল,ই,ডি জ্বালাবো তাই আমরা ১৩ নং পিনকে output mode এ সেট করবো।

void setup ()
{
pinmode(led, OUTPUT);
}

আমরা pinmode select করার পর ওই পিনটিকে ব্যবহার করে একটা led কে কতক্ষন পর পর জ্বলা নিভা করাতে চাই সেই কমান্ডগুলো লিখব void loop ফাংশন এর ভিতরে।

একটা বিষয় আমাদের জানা দরকার যে, void setup ফাংশনটি আরডুইনো power up করার পর শুধুমাত্র একবারের জন্যই রান হয়। কিন্তু void loop ফাংশনটি পর্যায়ক্রমিকভাবে নির্দিষ্ট cycle এ রান হতেই থাকে তাই একটি প্রোগ্রাম এর মূল অংশ হিসাবে void loop ফাংশন ব্যবহৃত হয়।

void loop ()

{

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000);

}

আরডুইনোর কোন পিনকে ডিজিটালি হাই বা লো করতে চাইলে digitalWrite কমান্ড ব্যবহার করা হয়। আমাদের প্রোগ্রাম এর প্রথম লাইন এ আমরা এই কমান্ড ব্যবহার করে led কে অর্থাৎ ১৩ নং পিনকে হাই করেছি।

২য় লাইন এ আমরা ১০০০ মিলি সেকেন্ড এর জন্য একটা delay দিয়েছি অর্থাৎ আমরা ১০০০ মিলি সেকেন্ড এর জন্য ১৩ নং পিনকে হাই অবস্থায় রাখতে চাই।

একইভাবে ৩য় এবং ৪র্থ লাইনে digitalWrite এবং delay কমান্ড ব্যবহার করে আমরা ১০০০ মিলি সেকেন্ড এর জন্য ১৩ নং পিনকে লো করেছি।

এখন সম্পুর্ন প্রোগ্রামটিকে এক জায়গায় করলে এইরকম পাওয়া যাচ্ছে

int led = 13; void setup ()

{

pinmode(led, OUTPUT);

}

void loop ()

{

digitalWrite(led, HIGH);

(1000);

digitalWrite(led, LOW);

delay(1000);

নিচের চিত্রে দেখুন-

এবার আমরা arduino ide এর sketch অপশন থেকে verify/compile select করব ঠিক নিচের ছবির মতো করে-

আরডুইনো তে কোড ভেরিফাই করা
আরডুইনো তে কোড ভেরিফাই করা
ভেরিফাইকৃত কোড কম্পাইল হবার পরে
ভেরিফাইকৃত কোড কম্পাইল হবার পরে

done compile……

হুররে…………
আমরা আরডুইনোর জন্য একটা এলইডি প্রোগ্রাম তৈরী করতে পেরেছি এবং সেটা সফলভাবে কম্পাইল করতে সক্ষম হয়েছি।

আমরা আগামী দিন শিখব কিভাবে Proteous Software ব্যবহার করে আরডুইনোর জন্য একটা সার্কিট তৈরী করা। এবং আমাদের লেখা প্রোগ্রামটি ঐ সার্কিটে সঠিকভাবে কাজ করছে কিনা তা পরিক্ষা করা।

সেই পর্যন্ত সকলেই ভাল থাকবেন এই প্রত্যাশায় আল্লাহ হাফেজ।

বিঃদ্রঃ (একজন লেখকের সবচাইতে বড় প্রত্যাশা হলো পাঠকের মতামত। তাই আপনাদের সকলের কাছেই আমার কামনা যে, আপনাদের মূল্যবান মতামত দিয়ে আমার লেখনি গুলোকে আরও সুন্দর ও পরিমার্জিত করতে সহায়তা করুন)

ব্যাটারি টিকবে ৪০০ বছর – বিজ্ঞানের চমক

2
ব্যাটারি টিকবে ৪০০ বছর - বিজ্ঞানের চমক
ব্যাটারি টিকবে ৪০০ বছর - বিজ্ঞানের চমক

ব্যাটারি ছাড়া আজকের দুনিয়া অচলই বলা যায়। মোবাইল এর রিচার্জেবল ব্যাটারি, আই পি এস এর ব্যাটারি, এমনকি ব্যাটারী চালিত সাইকেল ও আবিষ্কার হয়েছে। সম্প্রতি বিজ্ঞানীরা ৪০০ বছর টিকে থাকতে পারে এমন ব্যাটারিআবিষ্কার করেছেন। তাও সেটি আবিষ্কার হয়েছে ভুল করে! জ্বী হ্যাঁ, আপনি ঠিকই শুনছেন।

সাধারণত দুর্ঘটনা কখনোই ভাল কিছু হতে পারে না, বিশেষ করে একটি গবেষণাগারে। যেখানে ছোট একটি দুর্ঘটনা সহজেই বড় একটি দুর্ঘটনা ঘটতে সাহায্য করতে পারে। কিন্তু কখনও কখনও দুর্ঘটনাক্রমেই বড় বড় আবিষ্কার এর পথ খুলে যায়। নিচে ভুল করে আবিষ্কার হওয়া কিছু জিনিসের নাম দেখি-

বিজ্ঞানের ভুল করে আবিষ্কার হওয়া কিছু জিনিস-

  • সুপার গ্লু
  • স্যাকারিন
  • ব্যাকেলাইট
  • পেনিসিলিন ওষুধ
  • মাইক্রোওয়েভ ওভেন
  • এক্স-রে বা রঞ্জন রশ্মি
  • হার্টের রোগীদের পেসমেকার
  • টেফলন বা ননস্টিক ফ্রাই প্যানের বিশেষ আবরণ

এমনকি “বিগ ব্যাং” থিওরির আবিষ্কারও হয়েছিল একটি দুর্ঘটনার মাধ্যমে। সুতরাং দেখতেই পারছেন বিজ্ঞানে ভুলের কোন স্থান না থাকলেও ভুল করে আবিষ্কার হওয়া অনেক কিছুই আমরা ব্যবহার করছি 😛

মূল ঘটনা

ইউনিভার্সিটি অফ ক্যালিফোর্নিয়ার গবেষকরাও তেমনি দুর্ঘটনাক্রমে এমন একধরণের ব্যাটারী আবিষ্কার করেছেন, যা থিওরিটিক্যালি ৪০০ বছর টেকার কথা! এর নাম তাঁরা দিয়েছেন ইরভিন (Irvin) ব্যাটারি।

রেজিনাল্ড পেনার, ইরভিন টিমের একজন গবেষক জানান- “মিয়া লে থাই (Mya Le Thai) খেলাচ্ছলে আমাদের ব্যাটারী নিয়ে বিভিন্ন পরীক্ষা করছিল, সেটির অংশ হিসাবেই সে পুরো ব্যাটারিকে খুব পাতলা জেল এর একটি আবরণ দিয়ে ঢেকে দেয় এবং সাইকেল করা শুরু করে।”

“সাইকেল করতে করতেই সে আবিষ্কার করলো, কয়েকশত হাজার বার সাইকেল করার পরও ব্যাটারির কোনও ক্ষতি হচ্ছেনা।”

“যেটা আমাদের কাছে খুব আশ্চর্যজনক ছিল, কারণ সাধারণ ব্যাটারি ৫০০০-৭০০০ বারের বেশি সাইকেল করলে নষ্ট হয়ে যায়। কিন্তু ওই ব্যাটারিটিকে ২০০,০০০ বার পর্যন্ত সাইকেল করলেও কোনও সমস্যা হচ্ছিল না।”

ব্যাটারি সম্পূর্ণ চার্জ করে তাকে সম্পূর্ণ ডিসচার্জ করার প্রক্রিয়াকে সাইকেল বলে

গবেষণাগারে তৈরি করা ব্যাটারি যা ৪০০ বছর টিকতে সক্ষম
গবেষণাগারে তৈরি করা ব্যাটারি যা ৪০০ বছর টিকতে সক্ষম

ইরভিন প্রজেক্টের মূল উদ্দেশ্য ছিল লিথিয়াম ব্যাটারি ভেতরে ব্যবহৃত তরলের বদলে আরও ঘন একটি ইলেকট্রোলাইট জেল ব্যবহার করে একটি সলিড স্টেট ব্যাটারি তৈরি করা। তারা আরও ভাল পারফর্মেন্স পাওয়ার জন্য ব্যাটারির ভেতরের লিথিয়ামও পরিবর্তন করে সোনার তৈরি খুব ক্ষুদ্র ন্যানোওয়্যার ব্যবহার করেছিলেন।

এখানে উল্লেখ্য যে সাধারণত আমরা আই পি এস এ যেসকল ব্যাটারি ব্যবহার করি সেগুলো লেড এসিড টাইপ। আবার মোবাইলে ব্যবহার করি লিথিয়াম আয়ন টাইপের ব্যাটারি।

“আমরা ব্যাটারিটি বিভিন্ন ডিভাইসে লাগিয়ে সাইকেল করা শুরু করলাম, এবং আবিষ্কার করলাম যে তারা নষ্ট হয়ে যাচ্ছে না।” – বলেন রেজিনাল্ড পেনার। “আমরা এখনও এটা কেন হচ্ছে বের করতে পারিনি।”

কীভাবে এই ব্যাটারি ৪০০ বছর টিকবে

ইরভিন ব্যাটারির রিসার্চারদের ধারণা জেল এর আবরণ ব্যাটারির মেটাল অক্সাইডকে প্লাস্টিসাইজ হতে সাহায্য করছে, যা সোনার তৈরি ন্যানো ওয়্যার (Nano wire) গুলোর নমনীয়তা ও আয়ু বাড়াচ্ছে।

যদি এই ব্যাটারী বানিজ্যিকভাবে ব্যবহার করা হয়, তাহলে এটি সাধারণ লিথিয়াম ব্যাটারির তুলনায় ৪০০ গুন বেশি সময় টিকবে, এবং ব্যাটারি জাতীয় ই-ওয়েস্ট (নষ্ট ইলেক্ট্রনিক ডিভাইস) কমাতেও ভূমিকা রাখবে।

কবে পাবো এই ব্যাটারী

ইরভিন ব্যাটারি এখনও গবেষণার পর্যায়ে রয়েছে, এবং আপাতত নিকট ভবিষ্যতে এটির বাণিজ্যিকভাবে উৎপাদন হবার সম্ভাবনা নেই। তবে বিশেষজ্ঞদের ধারণা, ইরভিন ব্যাটারি যখন বাণিজ্যিকভাবে উৎপন্ন করা হবে, তখন এটি প্রচলিত লিথিয়াম ব্যাটারির জনপ্রিয়তাকে ছাড়িয়ে যাবে।

সুতরাং এরপর কেউ যদি আপনাকে আপনার ভুল নিয়ে খোঁটা দেয় তাহলে তার হাতে পটেটো চিপসের প্যাকেট ধরিয়ে দিয়ে বলবেন – ভুল থেকে যদি দারুণ কিছু হয় তাহলে ভুলই ভালো। কারণ পটেটো চিপসও ঐ ব্যাটারির মত ভুল করেই জনপ্রিয় হয়েছিল।

তথ্যসূত্র-

https://www.techworm.net/2016/09/battery-invented-accident-ability-last-400-years.html

http://www.mnn.com/earth-matters/energy/blogs/this-rechargeable-battery-lasts-400-years

https://www.upworthy.com/a-student-accidentally-created-a-rechargeable-battery-that-could-last-400-years-rp

সম্পাদনায় – সৈয়দ রাইয়ান 

পিসিবি তে সোল্ডার মাস্ক বা গ্রীন কোটিং দেবার বিস্তারিত পদ্ধতি

2
পিসিবি তে সোল্ডার মাস্ক বা গ্রীন কোটিং দেবার বিস্তারিত পদ্ধতি
পিসিবি তে সোল্ডার মাস্ক বা গ্রীন কোটিং দেবার বিস্তারিত পদ্ধতি

সোল্ডারিং মাস্ক হচ্ছে পিসিবি’র এক প্রকার সুরক্ষা ব্যবস্থা। অনেকেই পিসিবি বানাতে পারেন কিন্তু সোল্ডার মাস্ক দিতে পারেন না। সাধারণত সিসিবি থেকে পিসিবি করলে পরে বাতাসের আদ্রতা উপরের কপার কে ধীরে ধীরে কালো করে দেয়। তা যেন না হয় তাই উপরে সোল্ডার মাস্ক (Solder Mask) ব্যবহার করা হয়। এছাড়াও পিসিবি কে প্রোফেশনাল লুক আর সৌন্দর্য বর্ধনের কাজ ও করে এই সোল্ডারিং মাস্ক। আজকের এই লেখায় সোল্ডারিং মাস্ক কীভাবে দিতে হয়, এর সুবিধা, অসুবিধা, বিকল্প বুদ্ধি ইত্যাদি নিয়েই লিখছি।

সোল্ডারিং মাস্ক কি

বাজারে প্রাপ্ত পিসিবি গুলোতে আমরা দেখে থাকি এক ধরনের সবুজ রঙের প্রলেপ দেয়া থাকে। তাকেই সোল্ডারিং মাস্ক বলা হয়। যদিও বিভিন্ন ক্ষেত্রে এই রঙ কে লাল, নীল ও দিতে দেখা যায় তবে সবুজ মাস্ক টিই সবচেয়ে বেশি জনপ্রিয়। এই সবুজ সোল্ডারিং মাস্ক এর প্রচলিত নাম গ্রীন সোল্ডারিং মাস্ক বা গ্রীন কোট (Green Coat)

কেন সোল্ডারিং মাস্ক ব্যবহার করা হয়?

আমরা জানি সিসিবি (CCB) থেকে পিসিবি (PCB) করা হয়। আর কে না জানে যে এই পিসিবি’র উপরের পাতলা তারের মতন লাইন গুলো কপার বা তামার তৈরি হয়ে থাকে। এখন কপারের ধর্ম অনুযায়ী এই সোল্ডার করবার কপার গুলোর উপরে বাতাসের আদ্রতা, বিভিন্ন গ্যাসীয় অণুর কারনে কপার অক্সাইড জমা হয়। আর এটি মোটেও সুখপ্রদ কিছু নয়। এর কারণে কপারের কন্ডাক্টিভিটি কমে যায়। সোল্ডার বা রাং লাগতে চায়না, ড্রাই সোল্ডার হয়। ইত্যাদি বিভিন্ন প্রকার ঝামেলা এড়াতে সোল্ডারিং মাস্কের ব্যবহার চালু হয়েছে।

এছাড়াও সোল্ডারিং মাস্কের আরেকটি দারুন ব্যবহার আছে। এই সোল্ডারিং মাস্ক গুলো হীট রেজিস্টিভ বা তাপ নীরধি। অর্থাৎ, এটি অন্যান্য সাধারন পেইন্ট বা রং এর মতো গলে যায় না। ফলে যারা ইন্ডাস্ট্রিয়াল লেভেলে প্রচুর পিসিবি উৎপাদন করেন তারা এই মাস্ক ব্যবহার করে এক সাথে অনেক অনেক পিসিবি অত্যন্ত দ্রুততার সাথে ঝালাই করতে পারেন।

নতুন যারা পিসিবি বানাতে পারেন না তারা পিসিবি তৈরি করার সহজ উপায় -এই পোস্ট টি দেখতে পারেন। ভিডিও সহ পিসিবি বানানোর বিস্তারিত দেয়া আছে। এছাড়াও যারা সোল্ডারিং এ দূর্বল, রাং লাগাতে গিয়ে অনেক ঝামেলার সম্মুখীন হন তারা এই লেখাটি পড়ুন- নতুনদের জন্য সোল্ডারিং। একই সাথে সোল্ডারিং এর ধোঁয়া থেকে বাঁচতে পড়তে পারেন- সোল্ডারিং এর ধোঁয়া দূর করবার সহজ উপায়

সোল্ডার মাস্কের জন্য প্রয়োজনীয় উপকরণ

সোল্ডার মাস্ক করতে যা যা লাগবে…

  • ১. UV Curable Solder Mask
  • ২. PCB
  • ৩. ল্যামিনেটেড শিট
  • ৪. ট্রেসিং পেপার
  • ৫. হ্যান্ড গ্লাভস (প্রয়োজন মনে করলে)

প্রথম ধাপ – পিসিবি কম্পোনেন্টের পা গুলো প্রিন্ট করা

প্রথমেই ট্রেসিং পেপারে কম্পোনেন্ট এর পিন গুলো এভাবে প্রিন্ট করে নিতে হবে। এরফলে এই জায়গা গুলো মাস্ক হবেনা। পরবর্তি ধাপ গুলো পড়লেই বুঝতে পারবেন এর কারণ। নিচের ছবি দেখুন-

ট্রেসিং পেপারে পিসিবি কম্পোনেন্টের পা গুলো প্রিন্ট করা হয়েছে
ট্রেসিং পেপারে পিসিবি কম্পোনেন্টের পা গুলো প্রিন্ট করা হয়েছে

অবশ্যই লেজার প্রিন্টার দিয়ে প্রিন্ট করতে হবে না হলে কাজ করবে না।

দ্বিতীয় ধাপ – সোল্ডার মাস্ক দ্রবণ প্রয়োগ

অল্প পরিমাণে এইভাবে সোল্ডার মাস্ক ঢালুন। ফোঁটা ফোঁটা আকারে সমস্ত পিসিবি জুড়েই ঢালবেন। নিচের ছবি দেখুন-

সোল্ডার মাস্ক দ্রবণ কে পিসিবি তে ঢালা হচ্ছে
সোল্ডার মাস্ক দ্রবণ কে পিসিবি তে ঢালা হচ্ছে

তৃতীয় ধাপ – ল্যামিনেটেড শীট কে মাস্কের উপরে স্থাপন

মাস্ক ঢালার পর তার উপরে একটি ল্যামিনেটেড শিট দিতে হবে। এটি দেয়া হচ্ছে যেন সোল্ডারিং এই মাস্ক টিকে চাপ দিয়ে সর্বত্র সমান ভাবে ছড়িয়ে দেয়া যায়। অবশ্যই এটি পানি নিরোধি হতে হবে। ঠিক এইভাবে-

ল্যামিনেটেড পেপার কে মাস্কের উপরে রাখা হচ্ছে
ল্যামিনেটেড পেপার কে মাস্কের উপরে রাখা হচ্ছে

চতুর্থ ধাপ – মাস্ক কে সম্পূর্ণ পিসিবি তে ছড়িয়ে দেয়া

একটি কাগজের কার্ড দিয়ে ভালভাবে পুরো পিসিবি তেই মাস্ক ছড়িয়ে দিতে হবে। খেয়াল রাখবেন যেন ল্যামিনেটেড পেপার টি ক্ষতিগ্রস্থ না হয়। এইভাবে করতে হবে-

কাগজের কার্ড দিয়ে সোল্ডার মাস্ক কে ছড়িয়ে দেয়া হচ্ছে
কাগজের কার্ড দিয়ে সোল্ডার মাস্ক কে ছড়িয়ে দেয়া হচ্ছে

পঞ্চম ধাপ – পূর্বে প্রিন্ট করা ট্রেসিং পেপার কে এর উপরে স্থাপন

ট্রেসিং পেপারে আগে প্রিন্ট করা কম্পোনেন্টে ঝালাই এর স্থানের লে- আউট টিকে খুব সাবধানে ল্যামিনেটেড শীট এর উপরে দিতে হবে যেন সঠিক জায়গা মত বসে। নিচের ছবিতে দেখুন-

কম্পোনেন্ট ঝালাই করবার স্থানের ট্রেসিং প্রিন্ট টিকে সাবধানে জায়গামত বসাতে হবে
কম্পোনেন্ট ঝালাই করবার স্থানের ট্রেসিং প্রিন্ট টিকে সাবধানে জায়গামত বসাতে হবে

ষষ্ঠ ধাপ – ইউভি (UV) অথবা সূর্যের আলোতে কিছুক্ষণ রাখা

উপরে একটি কাঁচ দিয়ে ঢেকে দিতে হবে যেন প্রিন্ট গুলো না নড়ে যায়। এরপর সূর্যের আলোতে অথবা ইউভি (UV – Ultra violet) লাইটের নিচে ২-৩ মিনিট রাখতে হবে। ঘড়ি ধরেই যে হিসাব করতে হবে তা নয়। আমি মনে মনে ১ থেকে ১০০ পর্যন্ত গুনি। তাতেই বেশ কাজ হয়।

উপরে কাঁচ দিয়ে সমগ্র ব্যবস্থাটিকে সূর্যের আলোতে কিছুক্ষন রাখতে হবে
উপরে কাঁচ দিয়ে সমগ্র ব্যবস্থাটিকে সূর্যের আলোতে কিছুক্ষন রাখতে হবে

সপ্তম ধাপ – বোর্ড পরিষ্কার করা

২-৩ মিনিট পরে ট্রেসিং পেপার, ল্যামিনেটেড শিট তুলে নিতে হবে। একটি টিস্যু পেপারে কিছু পরিমাণ থিনার নিয়ে বোর্ড টি মুছে দিতে হবে।

থিনার দিয়ে সদ্য গ্রীন কোটিংদেয়া পিসিবি কে পরিষ্কার করা হচ্ছে
থিনার দিয়ে সদ্য গ্রীন কোটিংদেয়া পিসিবি কে পরিষ্কার করা হচ্ছে

অষ্টম ধাপ – আরো কিছুক্ষন সূর্যের আলোতে বোর্ডকে রাখা

পরিষ্কার করা হয়ে গেলে আবার ৫-১০ মিনিট সূর্য অলোতে অথবা UV লাইটের নিছে রাখতে হবে। এরফলে গ্রীন কোটিং টি পিসিবি বোর্ডের সাথে ভালো মতো বসে যাবে। ব্যস কাজ শেষ।

আমার তৈরি করা গ্রীন কোটিং যুক্ত পিসিবি এর ছবি

নিচে দেখুন আমার তৈরি করা পিসিবি। পাশে আমার নাম ও লেখা আছে 😉

আমার তৈরি করা সোল্ডার মাস্ক কৃত পিসিবি
আমার তৈরি করা সোল্ডার মাস্ক কৃত পিসিবি

এখানে উল্লেখ্য যে উপরের বেশিরভাগ ছবি নেট থেকে গৃহীত। কারণ কাজ করবার সময় উপযুক্ত ক্যামেরা আমার কাছে ছিলো না 🙁 আশাকরি আমার এই অক্ষমতা পাঠকগণ ক্ষমা সুন্দর দৃষ্টিতে দেখবেন। 😀


কিছু জরুরী বিষয় যা না জানলেই নয়

কোথায় পাবো এই সোল্ডার মাস্ক

এই UV Curable Solder Mask সাধারণত আমাদের দেশে পাওয়া যায় না। আমি এটি আলি এক্সপ্রেস থেকে আনিয়েছি। আমাদের দেশে যে মাস্ক গুলো পাওয়া যায় সেগুলো ব্যাবহার করা বেশ জটিল। কারণ সেগুলো ব্যবহার করতে হলে আগে স্কিন প্রিন্ট করে নিতে হয়, যা ১/২ টা পিসিবির জন্য অনেক বিরক্তিকর।

তবে আশাকরি আমাদের ইলেকট্রনিক্সের এই লেখা পড়ে হবিস্ট ও ইঞ্জিনিয়াররা এই ধরনের সহজে প্রয়োগ যোগ্য গ্রীন কোটিং বা সোল্ডার মাস্কের প্রতি আগ্রহী হলে দোকানদার রা এটি আনবেন। 

সোল্ডারিং মাস্কের বিকল্প বুদ্ধি কি

এই মাস্ক এর একটা সহজ বিকল্প হচ্ছে প্লাস্টিক পেইন্ট। প্লাস্টিক পেইন্ট কে থিনারে গুলিয়ে নিয়ে পিসিবি এর উপর প্রয়োগ করলে দেখতে সুন্দর লাগে। তবে এর একটি বড় রকমের অসুবিধা আছে। এই প্লাস্টিক পেইন্ট গুলো হীট রেজিস্ট্যান্ট নয়। ফলে সোল্ডারিং আয়রনের গরম অগ্রভাগের ছোঁয়ায় সহজেই উঠে যায়।

Arduino ও ডিজিটাল ইলেক্ট্রনিক্স । পর্ব—১

6
https://www.amaderelectronics.com/wp-content/uploads/2017/04/url.jpg

https://www.amaderelectronics.com/wp-content/uploads/2017/04/url.jpgআস্সালামু আলাইকুম।

আমাদের ইলেক্ট্রনিক্স এর সকল ভাই বন্ধু ও শ্রদ্ধেও বড় ভাইদের প্রতি আন্তরিক শুভেচ্ছা ও
অভিনন্দন জানিয়ে শুরু করতে যাচ্ছি Arduinoডিজিটাল ইলেক্ট্রনিক্স এর উপর চেইন টিউন এর প্রথম পর্ব ।

আমি প্রথমেই বলে নিচ্ছি আমার এই টিউটোরিয়াল টা শুধুমাত্র তাদের জন্য যাদের বেসিক ইলেক্ট্রনিক্স সম্পর্কে মোটামুটি ধারনা আছে ।

প্রথমেই আমরা জানব Arduino কি? এবং Arduino কেন ব্যবহার করব ?

Arduino কি ?

আরডুইনো হলো ডিজিটাল ইলেক্ট্রনিক্স এ মাইক্রকন্ট্রলার ভিত্তিক একটা ডেভলপমেন্ট বোর্ড। এখন প্রশ্ন আসতে পারে মাইক্রকন্ট্রলার কি? মাইক্রকন্ট্রলার হল একটা ছোট্ট চিপ বা আইসি, যেটাকে আমরা একটা সম্পুর্ন কম্পিউটারের এর সাথে তুলনা করতে পারি। কম্পিউটারের যেমন র্্যাম,রম,প্রসেসর,ইনপুট,আউটপুট ইত্যাদি থাকে তেমনি একটি মাইক্রকন্ট্রলার এরও র্্যাম,রম,প্রসেসর,ইনপুট,আউটপুট ইত্যাদি আছে। আমরা কম্পিউটার দিয়ে যখন কোনো কাজ করতে চাই তখন কম্পিউটার কে কাজের উপযোগি করে তোলার জন্য সাধারনত বিভিন্ন সফটত্তয়্যার বেবহার করি তেমনি মাইক্রকন্ট্রলার কে দিয়ে কোনো কাজ করাতে চাইলে মাইক্রকন্ট্রলার এর জন্য ওই কাজের ওপর একটা সফটত্তয়্যার তৈরি করে নিতে হয়। কিভাবে আমরা আরডুইনোর জন্য একটা সফটত্তয়্যার তৈরি করব সেটা ধাপে ধাপে শিখব।

কম্পিউটার বা মাইক্রকন্ট্রলার একটা নিজস্ব ভাষা আছে এই ভাষাকে বলা হয় “মেশিন ল্যাংগুয়েজ” । কম্পিউটার বা মাইক্রকন্ট্রলার কে যদি এই ভাষাতে কিছু বুঝাতে হয় তাহলে আমাদের অন্য একটা ভাষার সাহায্য নিতে হবে।

যেমন, একজন আফ্রিকার লো্ককে যদি আমি কিছু বুঝাতে চাই তাহলে আমাকে ইংরেজি ভাষা বেবহার করতে হবে। কম্পিউটার বা মাইক্রকন্ট্রলার কে বোঝানো্র জন্য এই ভাষাগুলকে বলা হয় প্রোগ্রামিং ল্যাংগুয়েজ । উচ্চমানের প্রোগ্রামাররা প্রোগ্রামিং এর জন্য অনেক ধরনের ভাষা ব্যবহার করে থাকে তার মধ্যে উল্লেখযোগ্য হলো সি, সি++,পাইথন,বেসিক ইত্যাদি ইত্যাদি । এর মধ্যে সবচেয়ে জনপ্রিয় হল “সি” । 

আর তাই আরডুইনতে আমরা সি ল্যাংগুয়েজ ই ব্যবহার করব।

Arduino কেন ব্যবহার করব ?

আরডুইনো হলো এমন একটা ডেভলপমেন্ট বোর্ড যার সমস্ত সোর্স কোড ও লাইব্রেরি আরডুইন এর নিরমাতা সকলের জন্য উন্মুক্ত করে দিয়েছে, আর এ কারনেই আরডুইনকে open source hardware ও বলা হয় । আমরা চাইলেই এর সোর্স কোডকে ইচ্ছা মত পরিবর্তন বা পরিবর্ধন করতে পারি। এ কারনে আরডুইনকে আমরা আমাদের প্রগ্রামিং শেখার ট্রেইনার বোর্ড হিসাবে ব্যবহার করব

Arduino পরিচিতি।

বাজারে অনেক ধরনের আরডুইন পাওয়া যায় যেমন, Arduino uno, Arduino mega,Arduino lionardo ইত্যাদি ইত্যাদি । এর মধ্যে সবচেয়ে জনপ্রিয় হল আরডুইন ইউ,এন,ও । এর কারন হল এটা বাজারে সহজলভ্য এবং দামেও সস্তা ।

আর সে জন্যই আমরা Arduino uno ই ব্যবহার করব

Arduino uno পরিচিতি।

 

 

 

উপরে আমরা একটা Arduino uno ও এর পিন বিবরন দেখতে পাচ্ছি। Arduino uno তে মুলত এটিমেল সিরিজ এর atmega328p মাইক্রকন্ট্রলার ব্যবহার করা হয়েছে, যার পিন সংখ্যা ২৮ । আর এ কারনেই আমরা Arduino uno তে প্রায় ২০ টার মত ইনপুট ও আউটপুট পিন পাবো । আসুন পিন গুলোর কাজ একে একে জেনে নিই।

Arduino uno এর ০ ও ১ নং পিনকে যথাক্রমে RX ও TX পিন বলা হয় । এই পিন দুইটি  সাধারনত কম্পিউটার কিংবা অন্য কোন ডিভাইস এর সাথে সিরিয়াল কমিউনিকেশন এর জন্য ব্যবহার হয়।

এরপর যথাক্রমে ২ থেকে ১৩ নং পিন গুলোকে বলা হয় ডিজিটাল পিন এই পিন গুলোকে ডিজিটাল ইনপুট বা আউটপুট পিন হিসাবে ব্যবহার করা যায় ।

যথাক্রমে A0 থেকে A5 পিন গুলোকে বলা হয় এনালগ ইনপুট পিন এই পিন গুলোকে মুলত এনালগ ভ্যালু রিড করার জন্য ব্যবহার করা হয় এছাড়াও এই পিন গুলোকে আউটপুট হিসাবেও ব্যবহার করা যায় ।

এ বাদেও বিশেষ কিছু কাজের জন্য যথাক্রমে ৩,৫,৬,৯ ও ১১ নং পিন দিয়ে PWM signal তৈ্রি করা যায় । এ সম্পর্কে বিস্তারিত আমরা পরে জানতে পারব।

এই পিন গুলো বাদেও Arduino uno তে আছে  Re্set পিন, 5vপিন, Gnd পিন এবং ICSP পিন,

 

এই হল মোটামুটি ভাবে Arduino uno পরিচিতি ।

আজকে আমরা এই পরজন্তই শিখব, আগামি দিন শিখব কিভাবে “আরডুইন আই,ডি,ই” ও “সি ল্যাংগুয়েজ” ব্যবহার করে আরডুইনর জন্য একটা প্রোগ্রাম লেখা বা একটা সফটওয়্যার তৈরি করা যায় ।

সে পর্যন্ত সকলেই ভাল থাকবেন, আল্লাহ হাফেজ।

হাই ভোল্টেজ প্লাজমা গ্লোব/ল্যাম্প তৈরি – মজার বিজ্ঞান প্রজেক্ট

2
হাই ভোল্টেজ প্লাজমা গ্লোব/ল্যাম্প তৈরি - মজার বিজ্ঞান প্রজেক্ট
হাই ভোল্টেজ প্লাজমা গ্লোব/ল্যাম্প তৈরি - মজার বিজ্ঞান প্রজেক্ট

হাই ভোল্টেজ প্লাজমা গ্লোব বা প্লাজমা ল্যাম্প বিজ্ঞান মেলার জন্য দারুণ একটি প্রজেক্ট। এটি একটি গোলোকের মধ্যে খেলাকরা কিছু প্লাজমা যেগুলা আসলে হাই ভোল্টেজ স্পার্ক। অনেকটা যেন ছোট গোলকের ভেতরে বজ্রপাতের কৃত্রিম দৃশ্য! আবার কিছু ভুতুড়ে মুভিতেও আমরা প্লাজমা গ্লোব দেখেছি। ডাইনীরা ওগুলা দিয়ে ভবিষ্যৎ বলে দিচ্ছে এমন দৃশ্য আমরা অহরহ মুভিগুলোতে দেখি। আজকের এই টিউটোরিয়াল এ আমরা শিখব কিভাবে একটি টাংস্টেন বাল্ব দিয়ে নিজেই একটি সহজ প্লাজমা গ্লোব তৈরি করতে পারি।

বিশেষ সতর্ক বার্তাঃ এই প্রজেক্ট এর সাথে হাই ভোল্টেজ সম্পর্কিত তাই বিশেষ সাবধানতা নিতে হবে। প্লাজমা গ্লোব/ প্লাজমা ল্যাম্প বানানোর সময় আপনার শক খেয়ে ক্ষতিগ্রস্ত হওয়ার সম্ভাবনা আছে তাই হাতে রাবার এর গ্লাভাস পড়লে ভালো হয়।  হাই ভোল্টেজ ট্রান্সফরমার এর সাথে কানেকশন দেওয়ার সময় কিংবা প্রজেক্ট এ মেইন লাইন দেয়া অবস্থায় যেন এর উন্মুক্ত অংশ গুলোর সাথে কোন ভাবেই হাতের স্পর্শ না লাগে সে দিকে বিশেষ নজর দিতে হবে। প্লাজমা গ্লোব বানানোর শেষ হলে গ্লোব স্পর্শ করা যাবে না কারণ এখানে অনেক শক্তিশালী বিদ্যুৎ প্রবাহিত হয় তাই এটি বিপদজনক।

প্রয়োজনীয় উপকরণঃ

প্লাজমা গ্লোব/ল্যাম্প টি বানাতে হলে আমাদের প্রথমে একটি হাই ভোল্টেজ উৎস তৈরি করতে হবে। এই প্রজেক্ট এর প্রাণই হলো হাই ভোল্টেজ। তাই এখানে উপকরণ গুলোর সিংহভাগই হলো হাই ভোল্টেজ এর জন্য। এর জন্য যা ব্যবহার করতে হবে সেগুলো নিচে দেয়া হলো-

  • ১. মোটরসাইকেল এর ইগনিশন কয়েল
  • ২. এসি ফ্যান এর গতি নিয়ন্ত্রক রেগুলেটর
  • ৩. 3.5uf ক্যাপাসিটর (450V AC)
  • ৪. কিছু তার এবং একটি প্লাগ
  • ৫. একটি টাংস্টেন বাল্ব এবং হোল্ডার
  • ৬. লোহার বা এ্যালুমিনিয়ামের নেট বা এ্যালুমিনিয়াম ফয়েল।
  • ৭. একটি গ্লু গান
  • ৮. একটি বক্স যেটাতে স্থাপন করবেন
প্লাজমা গ্লোব/ল্যাম্প তৈরির প্রয়োজনীয় মূল উপকরন সমূহ
প্লাজমা গ্লোব/ল্যাম্প তৈরির প্রয়োজনীয় মূল উপকরন সমূহ

উপরের ছবিগুলো উপকরণ গুলো নির্দেশ করে যেভাবে তৈরি করবেন :

ধাপ ১ – হাই ভোল্টেজ পাওয়ার সাপ্লাই তৈরি

এখন আমরা হাই ভোল্টেজ পাওয়ার সাপ্লাই তৈরি করব। প্রথমে প্লাগটি নিন এবং ওতে তার জুড়ে দিন।

ধাপ ২ – প্লাগ ও রেগুলেটর সংযুক্তকরণ

এবার প্লাগ এর দুটি তার এর একটি নিয়ে রেগুলেটর এর সাথে জুড়ে দিন এবং রেগুলেটর বক্স এর উপরে ছিদ্র করে গ্লু দিয়ে জুড়ে দিন। বক্স এর ভিতর তার প্রবেশ করার সময় দুটো ছিদ্র করে নিন।

ধাপ ৩ – ক্যাপাসিটর সংযুক্তকরণ

এখন রেগুলেটর এর আরেকটি তার ক্যাপাসিটর এর এক প্রান্তের সাথে জুড়ে দিন এবং ক্যাপাসিটর টি গ্লু দিয়ে বক্সে স্থাপন করুন।

ধাপ ৪ – ইগনিশন কয়েল সংযুক্তি

এবার ক্যাপাসিটর এর আরেক প্রান্ত জুড়ে দিন ইগনিশন কয়েল এর একটি পিন এ। নিচের ছবি অনুসরণ করুন

ইগনিশন কয়েল এর সাথে তারের সংযোগ চিত্র
ইগনিশন কয়েল এর সাথে তারের সংযোগ চিত্র

কালো তারটি ক্যাপাসিটর থেকে নীল তার যুক্ত পিন টির সঙ্গে যুক্ত হয়েছে। নীল তারটির কাজ পরের ধাপে বোঝাবো

ধাপ ৫ – ইগনিশন কয়েলের সাথে অন্য তারটি সংযুক্তি

এখন প্লাগ থেকে দুটি তার এর একটি আমরা আগেই রেগুলেটর এর সাথে লাগিয়েছি। বাকি রইল আর একটি। আমরা সেটি ইগনিশন কয়েল এর যেই প্রান্তে ছোট পিন এর সাথে কালো তার টি লাগিয়েছি তার বিপরীত প্রান্তের বড় ছিদ্র যুক্ত পিনের সংগে লাগাবো।

ইগনিশন কয়েল এর সাথে তারের সংযোগ চিত্র - ২
ইগনিশন কয়েল এর সাথে তারের সংযোগ চিত্র – ২

ধাপ ৬ – হাই ভোল্টেজ আউটপুট লাইন বের করা

আমাদের হাই ভোল্টেজের কাজ প্রায় শেষ। এখন আমরা শুধু আউটপুট লাইন বাইরে এনে গ্লু করব। মনে আছে ওই নীলরং এর তারটি? আমরা ওটা এবং ইগ্নিশন কয়েল এর সবচেয়ে বড় তারটি বক্স এর ঢাকনার সাথে ফুটো করে জুড়ে দেব।

প্লাজমা গ্লোবের হাই ভোল্টেজ তার দুটিকে কাছে আনলে এমন স্পার্ক দেখা যাবে
প্লাজমা গ্লোবের হাই ভোল্টেজ তার দুটিকে কাছে আনলে এমন স্পার্ক দেখা যাবে

এখন প্লাগটি আপনি যেকোনো সকেট এ ঢুকিয়ে দিন এবং রেগুলেটর দিয়ে ভোল্টেজ ও ফ্রিকুয়েন্সি ঠিক করে নিন। এরপর আপনি তার দুটিকে কাছাকাছি আনলে তাদের মাঝে স্পার্ক দেখবেন।

কিন্ত সতর্ক থাকবেন। কাজটি বিপদজনক। আপনার হাই ভল্টেজ তৈরি হয়েগেল। এটি আপনার অন্যান্য প্রেজেক্ট এও কাজে লাগতে পারে। এখন আমরা প্লাজমা গ্লোব টি তৈরি করি-

ধাপ ৭ – প্লাজমা গ্লোব/ল্যাম্প তৈরি

বালব টি নিন। ওটা হোল্ডারে স্থাপন করুন। আমি পুরানো ফিউজ হয়ে যাওয়া বাল্ব ব্যবহার করেছি। আপনি চাইলে ভালো বাল্ব ও ব্যবহার করতে পারেন। তাতেও কাজ হবে। মনে রাখবেন এই প্রজেক্টের জন্য অবশ্যই টাংস্টেন বাল্বই ব্যবহার করতে হবে।

প্লাজমা ল্যাম্প/গ্লোব প্রজেক্টে ব্যবহারের জন্য বাল্ব ও হোল্ডার
প্লাজমা ল্যাম্প/গ্লোব প্রজেক্টে ব্যবহারের জন্য বাল্ব ও হোল্ডার

ধাপ ৮ – প্লাজমা ল্যাম্পের উপর ধাতব নেট স্থাপন

এখন একটি ধাতব নেট নিয়ে বাল্ব এর আকার অনুযায়ী কাটুন এবং বাল্বের উপর চিত্র অনুযায়ী স্থাপন করুন। মশা মারার ব্যাট এ এমন সুক্ষ নেট থাকে। সেগুলোও ব্যবহার করতে পারেন।

হাই ভোল্টেজ প্লাজমা ল্যাম্প প্রজেক্টের জন্য বাল্বের উপরে ধাতব নেট স্থাপন
হাই ভোল্টেজ প্লাজমা ল্যাম্প প্রজেক্টের জন্য বাল্বের উপরে ধাতব নেট স্থাপন

প্লাজমা ল্যাম্প/গ্লোব কানেকশন ডায়াগ্রাম

বুঝবার সুবিধার্থে উপরোক্ত ধাপ গুলোকে ডায়াগ্রাম আকারে নিচে দেখানো হলো-

হাই ভোল্টেজ প্লাজমা গ্লোব প্রজেক্টের কানেকশন/সার্কিট ডায়াগ্রাম
হাই ভোল্টেজ প্লাজমা গ্লোব প্রজেক্টের কানেকশন/সার্কিট ডায়াগ্রাম

শেষ ধাপ:

আমাদের কাজ এখন শেষ। আমরা এখন বালব এর হল্ডারের নিচের টারমিনালের সাথে বড় তার এর সংযোগ দিব এবং নেট এর সাথে নিল তারটি যুক্ত করব। তারপরই বিদ্যুতিক সংযোগ দিলে আমরা বালব এর মধ্যে প্লাজমা দেখতে পাব।

মনে রাখবেন। এই প্লাজমায় কিন্তু হাত দিবেন না।

প্লাজমা ল্যাম্প এর ভেতরে দৃশ্যমান হাই ভোল্টেজের কারণে সৃষ্ট প্লাজমা
প্লাজমা ল্যাম্প এর ভেতরে দৃশ্যমান হাই ভোল্টেজের কারণে সৃষ্ট প্লাজমা

আশা করি আমার প্রজেক্ট আপনাদের ভালো লাগল। আরো প্রজেক্ট নিয়ে আবারো আপনাদের সাথে দেখা হবে। আজকে এখানেই সমাপ্ত করলাম। ভালো থাকবেন।

প্রস্তুতকরণে- আহমেদ সাদাত রেজা (আদিত্য)

হাই ভোল্টেজ প্লাজমা ল্যাম্প/গ্লোব প্রজেক্টের সচল ভিডিও দখুন

সবার বুঝবার সুবিদার্থে আমাদের ইলেকট্রনিক্স ইউটিউব চ্যানেলে এই প্লাজমা গ্লোবের ভিডিও দেয়া হয়েছে। আশাকরি ভিডিও টিউটোরিয়াল টি দেখলে সকলের বুঝতে অনেক বেশি সুবিধা হবে-

পাদটিকা-

প্লাজমা

পদার্থের তথাকথিত চতুর্থ অবস্থা। কঠিন, তরল, বায়বীয় অবস্থা ছাড়াও উচ্চতাপে কোন গ্যাস এর বিশেষ আয়নিত অবস্থাকে প্লাজমা বলে। এটি প্রায় সম সংখ্যক মুক্ত ইলেকট্রন ও ধনাত্মক আয়নের সমন্বয়ে গঠিত হয়। সাধারণ গ্যাস বায়বীয় কিন্তু আয়নিত নয়। অপরদিকে প্লাজমা আয়নিত এবং এই বৈশিষ্ঠ্যের জন্য একে বিশেষ শ্রেণিভুক্ত করা হয়েছে যাকে পদার্থের চতুর্থ অবস্থা বা Fourth state of matter আখ্যা দেয়া হয়েছে।