আল্ট্রাসাউন্ড দিয়ে দুরত্ব মাপি (রোবোটিক্সে হাতেখড়ি -পর্ব ৩)

পর্ব ০১ ||পর্ব ০২ ||

কেমন হবে যদি এমন একটা রোবট বানাই যে দূরত্ব পরিমাপ করে এলগরিদম অনুযায়ী নিজে নিজে যে কোনো সিদ্বান্ত নিতে পারে? আমরা অনেকেই আল্ট্রাসাউন্ড বা শব্দোত্তর তরঙ্গ ব্যবহার করে বাদুড়ের পথ চলা সম্পর্কে জানি। আল্ট্রাসনিক সেন্সর হলো আল্ট্রাসাউন্ড ব্যবহার করে দূরত্ব পরিমাপ করার একটি বিশেষ সেন্সর। উল্লেখ্য আল্ট্রাসাউন্ড হলো একটি বিশেষ তরঙ্গ দৈর্ঘ্যের শব্দ। এ শব্দ আমরা সাধারণত শুনতে পাই না, কারণ আমাদের শোনার জন্যে যে শ্রাব্যতার সীমা (২০-২০,০০০ হার্জ) আছে সেই সীমার মাঝে এই আল্ট্রাসাউন্ড এর ফ্রিকোয়েন্সি বা কম্পাংক পড়ে না। আবার আমরা জানি যে, শব্দ উৎস হতে তরঙ্গ আকারে চারদিকে ছড়িয়ে পড়ে। যদি উৎসের সামনে কোনো বস্তু থাকে তখন শব্দ সে বস্তুর গায়ে প্রতিফলিত হয়ে পুনরায় উৎসের দিকে ফিরে আসে। যে কারণে বড় পাহাড়ের সামনে কিংবা খালি রুমে দেয়ালের সামনে দাঁড়িয়ে কথা বললে আমরা সে কথা পুনরায় শুনতে পাই – যাকে বলে প্রতিধ্বনি ।

চিত্র ১ঃ আল্ট্রাসাউন্ড ব্যবহার করে বাদুড়ের খাদ্য  শিকার।

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

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

চিত্র ২ঃ আল্ট্রাসনিক সেন্সর

আল্ট্রাসনিক সোনার সেন্সর HC-04 মডিউলটি অধিকাংশ ইলেকট্রনিক্স শপে পাওয়া যায়। এটি 40000 Hz এ একটি আল্ট্রাসাউন্ড নির্গত করে যা বাতাসে ভ্রমণ করে এবং পথে যদি কোনও বস্তুর বাধা পেয়ে থাকে তবে মডিউলটিতে ফিরে  আসে। ভ্রমণ সময় এবং গতি বিবেচনা করে আপনি দূরত্ব মেপে ফেলতে পারবেন।

চিত্র ৩ঃ সেন্সরের ট্রিগারিং ও ইকো পালস।

HC-04 মডিউলটিতে ৪ টি পিন থাকে। Ground, Vcc, Trigger, Echo । মডিউলের Gnd এবং Vcc পিনগুলি যথাক্রমে Arduino বোর্ডের Gnd ও 5v পিনের সাথে সংযুক্ত  হবে এবং Arduino Board- এ যে কোনও ডিজিটাল I / O পিনে trig ও echo pin। আল্ট্রাসাউন্ড জেনারেট করার জন্য ১০ মাইক্রো সেকেন্ড এর জন্য একটি হাই স্টেটে Trig সেট করা প্রয়োজন। এটি একটি ৮ সাইকেল এর  আল্ট্রাসাউন্ড তৈরী করবে যা শব্দের বেগে ভ্রমণ করবে এবং বাধা পেয়ে ফিরে আসলে echo পিন একে রিসিভ করবে।

চিত্র ৪ঃ সেন্সরের সাহায্যে দুরত্ব নির্ণয়

উদাহরণস্বরূপ, যদি বস্তুটি সেন্সর থেকে ১০ সেন্টিমিটার দূরত্বে থাকে এবং শব্দের গতিবেগ ৩৪০ মি/সেকেন্ড বা ০.০৩ সেমি/মাইক্রোসেকেন্ডে থাকে তাহলে trig দ্বারা সৃষ্ট তরঙ্গটিকে ২৯৪ মাইক্রোসেকেন্ডে ধরে ভ্রমণ করতে হবে। কিন্তু ইকো পিন থেকে আপনি যা পাবেন তার সংখ্যা দ্বিগুণ হবে, কারণ তরঙ্গটি একবার গিয়ে আবার ফিরে আসছে। তাই সেন্টিমিটারে দূরত্ব পেতে আমরা ০.০৩৪ দ্বারা ভ্রমণের সময় মানকে গুণ করব এবং ২ দ্বারা ভাগ করব।

চিত্র ৫ঃ আল্ট্রাসনিক সেন্সর এর সাথে আর্ডিনো সংযোগ বর্তনী।

প্রোগ্রামের আদ্যোপান্তঃ 
Arduino ide তে কোডিং এর জন্যে প্রথমেই আমাদের Trig এবং Echo পিন নির্ধারণ করতে হবে। এই ক্ষেত্রে আমরা Arduino বোর্ডের পিন সংখ্যা 11 ও 12  নির্বাচন করলাম এবং তাদের নাম দিলাম trigpin ও echopin । তারপর আমাদের প্রয়োজন একটি Long variable , যার নাম দিলাম duration আর distance নাম দিয়ে একটি ইন্টিজার ভেরিয়েবল নির্দেশ করলাম।

Setup অংশে আমরা trigpin কে আউটপুট আর echopin কে  ইনপুট হিসাবে সংজ্ঞায়িত করলাম এবং সিরিয়াল মনিটরে ফলাফল দেখানোর জন্য Serial.begin(9600); লিখলাম। এখানে 9600 দিয়ে বোঝায় Baud Rate বা সেন্সর থেকে আর্ডিনো বোর্ডে ডেটা ট্রান্সমিট এর গতি।

Loop এ প্রথমে আমাদের নিশ্চিত করতে হবে যে trigpin ক্লিয়ার আছে। আর তাই আমরা   কেবল ২ মাইক্রোসেকেন্ড এর জন্য লো-স্টেটে সেট করব। এখন আল্ট্রা সাউন্ড তরঙ্গ উৎপাদনের জন্য trigpin কে ১০ মাইক্রোসেকেন্ড  এর জন্য হাই স্টেটে সেট করব।

PulseIn () ফাংশন ব্যবহার করে আমরা তরঙ্গের ভ্রমণের সময়টি পড়তে পারি এবং সেই   মানটিকে  ভেরিয়েবল duration এ রাখি। এই ফাংশনটির দুটি প্যারামিটার রয়েছে, প্রথমটি হল echo পিনের নাম এবং দ্বিতীয়টি আপনি HIGH বা LOW লিখতে পারেন। দূরত্ব অর্জনের জন্য আমরা ০.০৩৪ এর   দ্বারা দৈর্ঘ্যকে গুণ করব এবং এটি ২ দ্বারা ভাগ করবো ।শেষে আমরা সিরিয়াল মনিটরের দূরত্ব  প্রিন্ট করব।

সম্পূর্ণ প্রোগ্রামঃ

const int trigPin = 11;

const int echoPin = 12;

// defines variables

long duration;

int distance;

void setup()

{

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

Serial.begin(9600); // Starts the serial communication

}

void loop()

{

// Clears the trigPin

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

// Sets the trigPin on HIGH state for 10 micro seconds

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds

duration = pulseIn(echoPin, HIGH);

// Calculating the distance

distance= duration*0.034/2;

// Prints the distance on the Serial Monitor

Serial.print(“Distance: “);

Serial.println(distance);

}

কাজঃ এই পর্বে আমরা দেখলাম আল্ট্রাসনিক সেন্সর দিয়ে কিভাবে দূরত্ব মাপা যায়, এছাড়া এই সেন্সর কাজে লাগিয়ে আরো বেশ কিছু গঠনমূলক কাজ করা যায়। এই যেমন অন্ধদের জন্যে আল্ট্রাসনিক লাঠি বা টুপি (Cap), পানির ট্যাঙ্কের পানির লেভেল মাপার যন্ত্র কিংবা আল্ট্রাসনিক রুলার স্কেলসহ আরো অনেক কিছু। এখন পাঠকদের কাছে প্রশ্ন রইলো – এই সেন্সর দিয়ে পানির নিচের দূরত্ব মাপা যাবে কিনা ? মাপা না গেলে এর সমাধান কি বা বিকল্প হিসেবে কোনটি ব্যবহার করা যাবে?

বিদ্রঃ প্রয়োজনীয় সফটওয়্যার ডাউনলোড লিঙ্ক  

লেখককে জানুনঃ

Comments

EhsanSuny

বিজ্ঞানের সাথে অনেক আগে থেকেই আমার সখ্যতা। পরবর্তীতে যখন থেকে প্রযুক্তির পথে হাঁটতে শুরু করেছি, ছদ্মনাম রাখলাম নীল বর্তনী বা Blue Circuit. বাস্তবে যদিও বর্তনীর রঙ নীল হয়না, তবে আমার কাছে নীল মানে মুক্ত আকাশ, সীমাহীন সমুদ্রে সেই আকাশের নীল আলোর বিক্ষেপণ, নীল মানে একান্তই আপন, সকলের জন্য নিবেদিত প্রাণ। . এরপর থেকে এখনো প্রযুক্তির পথে হেঁটে চলেছি, সর্বদা নতুন কিছু শিখছি আর অনুজদের শিখিয়ে যাচ্ছি। আমি তখনই পুলকিত হই, যখন ইঞ্জিনিয়ারিং মেথোডলজি ব্যাবহার করে চারপাশের সমস্যার সমাধান করতে পারি। ইচ্ছে আছে নবীনদের বিজ্ঞান ও প্রযুক্তিতে আগ্রহী করে তুলতে এলাকায় একটি সমৃদ্ধ বিজ্ঞান ক্লাব করার। . আশেপাশের নানা সমস্যাগুলোর সমাধান করতে গিয়েই দারুণ দারুণ মানুষের সাথে পরিচয়, আর তাদের অণুপ্রেরণায় অণুপ্রাণিত হয়ে স্বেচ্ছাসেবামূলক কাজে ঝাঁপিয়ে পড়া। অদ্যাবদি ব্যাক্তিগতভাবে বহু স্বেচ্ছাসেবামূলক কাজে অংশ নেয়ার পাশাপাশি “Youth Renaissance” বা “যুবক নবজাগরণ” নামে একটি স্বেচ্ছাসেবী সংগঠনের সাথে সম্পৃক্ত আছি। মানুষের পাশে দাঁড়ানোর মতো, হতাশাগ্রস্থদের পথ দেখানোর মতো মহৎ কাজ আর আছে বলে আমার জানা নেই। . পড়ালেখা, চাকরি-বাকরি, খাওয়া-দাওয়া, ঘুম কিংবা সংসার পরিচালনার পাশাপাশি নিজের সুখ-দুঃখ গুলো সকলের সাথে ভাগ করে নেয়ার মাঝেই তো এই জীবনের সার্থকতা।

আপনার আরো পছন্দ হতে পারে...

মন্তব্য বা প্রতিক্রিয়া জানান

1 মন্তব্য on "আল্ট্রাসাউন্ড দিয়ে দুরত্ব মাপি (রোবোটিক্সে হাতেখড়ি -পর্ব ৩)"

জানান আমাকে যখন আসবে -
avatar
সাজান:   সবচেয়ে নতুন | সবচেয়ে পুরাতন | সর্বোচ্চ ভোটপ্রাপ্ত
Rajib
সদস্য

এই মডেলের সেন্সর গুলোর রেঞ্জ খুবই কম, পানির নিচে অনেক পরের ব্যাপার, এগুলো এক ফুট দূরত্বেও ঠিক মতন রিডিং দিতে পারে না। আর আরডুইনো সাধারণত বড় প্রজেক্টে ব্যবহার করা ভালো। এই ধরণের ছোট প্রজেক্টের জন্য ৮০৫১ মাইক্রো কন্ট্রোলারই যথেষ্ট, দাম ও কম।

wpDiscuz