আরডুইনো ব্যবহার করে দুটি পয়েন্টের মধ্যে দূরত্ব কীভাবে পরিমাপ করবেন?

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



আরডুইনো ব্যবহার করে দূরত্ব পরিমাপ করা

এখানে ব্যবহৃত প্রযুক্তিটি ছোট স্কেল সিস্টেমে কেবল দরকারী যেখানে একটি ছোট দূরত্ব খুঁজে পাওয়া যায়। এটি একটি বৃহত আকারে বাস্তবায়নের জন্য অবশ্যই কিছু পরিবর্তন প্রয়োজন ifications এই প্রকল্পটি সম্পাদন করার সময় যে সমস্ত চ্যালেঞ্জগুলি সম্মুখীন হয়েছিল সেগুলি নীচে আলোচনা করা হয়েছে।



দূরত্ব পরিমাপ করতে কীভাবে আরডুইনো এবং আল্ট্রাসোনিক সেন্সর ব্যবহার করবেন?

আমরা যেমন প্রকল্পের পেছনের সংক্ষিপ্তসারটি জানি, আসুন আমরা এগিয়ে চলি এবং প্রকল্পটি শুরু করতে আরও তথ্য সংগ্রহ করি।



পদক্ষেপ 1: উপাদানগুলি সংগ্রহ করা (হার্ডওয়্যার)

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



  • জাম্পারের তারগুলি
  • ডিসি অ্যাডাপ্টারে 5 ভি এসি (x2)

পদক্ষেপ 2: উপাদান সংগ্রহ (সফ্টওয়্যার)

  • প্রোটিয়াস 8 পেশাদার (এখান থেকে ডাউনলোড করা যেতে পারে) এখানে )

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

পদক্ষেপ 3: এইচসিআর -05 এর কাজ

যেহেতু আমরা এখন আমাদের প্রকল্পের মূল বিমূর্ত জিনিসটি জানি, আসুন আমরা এগিয়ে চলি এবং এর কাজকর্মের একটি সংক্ষিপ্ত অধ্যয়নের মধ্য দিয়ে যাই এইচসিআর -05 । এই সেন্সরটির মূল কাজটি আপনি নিম্নলিখিত চিত্র দ্বারা বুঝতে পারবেন।

এই সেন্সরে দুটি পিন রয়েছে, ট্রিগার পিন, এবং ইকো পিন যে দুটি বিশেষ পয়েন্ট মধ্যে দূরত্ব পরিমাপ করতে ব্যবহৃত হয়। সেন্সর থেকে একটি অতিস্বনক তরঙ্গ প্রেরণ দ্বারা প্রক্রিয়া শুরু করা হয়। এই কাজটি 10us এর জন্য ট্রিগার পিনটি ট্রিগার করে সম্পন্ন হয়। এই 8 টাস্কটি সম্পন্ন হওয়ার সাথে সাথে ট্রান্সমিটার থেকে একটি 8 সোনার বিস্ফোরণ প্রেরণ করা হয়। এই তরঙ্গটি বাতাসে ভ্রমণ করবে এবং এটি যখন কোনও বস্তুকে তার পথে আঘাত করবে, তখনই এটি ফিরে যাবে এবং সেন্সরে নির্মিত রিসিভার দ্বারা গ্রহণ করবে।



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

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

এ হিসাবে অতিস্বনক সেন্সর তৈরি করার কোনও উপায় নেই কেবল রিসিভার কারণ ECO পিনের উত্থানটি মাইক্রোকন্ট্রোলার দ্বারা নিয়ন্ত্রিত হতে পারে না কারণ এটি সেন্সরের ট্রিগ পিনের সাথে সম্পর্কিত। তবে একটি জিনিস যা আমরা করতে পারি তা হ'ল, আমরা এই অতিস্বনক সেন্সরের ট্রান্সমিটারটিকে নালী টেপ দ্বারা আবরণ করতে পারি যে কোনও ইউভি তরঙ্গ বেরিয়ে আসে না। তাহলে এই ট্রান্সমিটারের ECO পিন ট্রান্সমিটার দ্বারা প্রভাবিত হবে না।

চতুর্থ ধাপ: সার্কিটের কাজ করা

এখন যেমন আমরা উভয় সেন্সরকে ট্রান্সমিটার এবং রিসিভার হিসাবে আলাদাভাবে কাজ করার জন্য তৈরি করেছি, এখানে একটি বড় সমস্যা রয়েছে। ট্রান্সমিটার থেকে রিসিভারে ভ্রমণের জন্য অতিস্বনক তরঙ্গ গ্রহণের সময়টি রিসিভার জানতে পারবে না কারণ কখনই এই তরঙ্গ সংক্রমণ হয়েছিল তা সঠিকভাবে জানে না।

এই সমস্যাটি সমাধান করার জন্য, আমাদের যা করতে হবে তা একটি পাঠাতে হবে উচ্চ ট্রান্সমিটার সেন্সর থেকে আল্ট্রাসোনিক তরঙ্গ সংক্রমণ হওয়ার সাথে সাথে রিসিভারের ইসিওতে সংকেত দিন। বা সহজ কথায়, আমরা বলতে পারি যে রিসিভারের ইসিও এবং ট্রান্সমিটারের ট্রিগার একই সময়ে এইচএইচটিতে প্রেরণ করা উচিত। সুতরাং, এটি অর্জন করার জন্য, আমরা ট্রান্সমিটারের ট্রিগারটি তত দ্রুত বাড়ার সাথে সাথে রিসিভারের ট্রিগারটিকে আরও বাড়িয়ে তুলব। ইসি পিন না যাওয়া পর্যন্ত প্রাপকের এই ট্রিগারটি উচ্চ থাকবে কম । যখন একটি অতিস্বনক সিগন্যালটি রিসিভারের ইসিও পিন দ্বারা প্রাপ্ত হবে, তখন এটি নিচে চলে যাবে। এর অর্থ হ'ল ট্রান্সমিটার সেন্সরের ট্রিগার সবেমাত্র একটি উচ্চ সংকেত পেয়েছে। এখন, ইসিও কম হয়ে যাওয়ার সাথে সাথে আমরা ज्ञात বিলম্বের জন্য অপেক্ষা করব এবং রিসিভারের ট্রিগার HIGH রাখব। এটি করার মাধ্যমে, উভয় সেন্সরের ট্রিগারগুলি সিঙ্ক হবে এবং তরঙ্গ ভ্রমণের সময় দেরি করে দূরত্ব গণনা করা হবে।

পদক্ষেপ 5: উপাদান একত্রিত

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

  1. দুটি অতিস্বনক সেন্সর নিন। প্রথম সেন্সরটির রিসিভার এবং দ্বিতীয় সেন্সরের ট্রান্সমিটারটি কভার করুন। এই উদ্দেশ্যে সাদা নালী টেপ ব্যবহার করুন এবং নিশ্চিত করুন যে এই দুটি পুরোপুরি আচ্ছাদিত রয়েছে যাতে কোনও সংকেত দ্বিতীয় সেন্সরের ট্রান্সমিটারটি না ফেলে এবং কোনও সংকেত প্রথম সংবেদকের রিসিভারে না যায়।
  2. দুটি আলাদা রুটিবোর্ডে দুটি আরডুইনো সংযুক্ত করুন এবং তাদের সাথে তাদের সম্পর্কিত সেন্সরগুলি সংযুক্ত করুন। আরডুইনোর পিন 10 এ আরডুইনো এবং ইকোপিনের ট্রিগার পিনটি সংযুক্ত করুন। আলড্রোনিক সেন্সরটি আরডুইনো এবং সাধারণ সমস্ত ভিত্তিতে 5 ভি দিয়ে পাওয়ার আপ করুন।
  3. রিসিভার কোডটি রিসিভারের আরডুইনোতে এবং ট্রান্সমিটারের কোডটি ট্রান্সমিটারের আরডুইনোতে আপলোড করুন।
  4. এখন গ্রহণের দিকের ক্রমিক মনিটরটি খুলুন এবং মাপানো দূরত্বটি নোট করুন।

এই প্রকল্পের সার্কিট ডায়াগ্রামটি দেখে মনে হচ্ছে:

বর্তনী চিত্র

পদক্ষেপ।: আরডুইনো দিয়ে শুরু করা

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

  1. আরডুইনো IDE এর সর্বশেষতম সংস্করণটি ডাউনলোড করুন আরডুইনো।
  2. আপনার আরডুইনো ন্যানো বোর্ডটিকে আপনার ল্যাপটপে সংযুক্ত করুন এবং কন্ট্রোল প্যানেলটি খুলুন। কন্ট্রোল প্যানেলে ক্লিক করুন হার্ডওয়্যার এবং শব্দ । এখন ক্লিক করুন যন্ত্র ও প্রিন্টার. এখানে, আপনার মাইক্রোকন্ট্রোলার বোর্ডটি সংযুক্ত আছে এমন পোর্টটি সন্ধান করুন। আমার ক্ষেত্রে এটি হয় COM14 তবে এটি বিভিন্ন কম্পিউটারে ভিন্ন।

    বন্দর সন্ধান করা

  3. টুল মেনুতে ক্লিক করুন। এবং বোর্ড সেট আরডুইনো ন্যানো ড্রপ-ডাউন মেনু থেকে।

    বোর্ড নির্ধারণ

  4. একই সরঞ্জাম মেনুতে, পোর্ট নম্বরে পোর্টটি সেট করুন যা আপনি আগে দেখেছিলেন যন্ত্র ও প্রিন্টার

    পোর্ট স্থাপন করা

  5. একই সরঞ্জাম মেনুতে, প্রসেসরটি এতে সেট করুন এটিমেগ 328 পি (পুরানো বুটলোডার )।

    প্রসেসর

  6. নীচে সংযুক্ত কোডটি ডাউনলোড করুন এবং এটি আপনার আরডুইনো আইডিইতে পেস্ট করুন। ক্লিক করুন আপলোড আপনার মাইক্রোকন্ট্রোলার বোর্ডে কোড বার্ন করতে বোতাম।

    আপলোড করুন

কোডটি ডাউনলোড করতে, এখানে ক্লিক করুন.

পদক্ষেপ 7: কোড বোঝা

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

ট্রান্সমিটার সাইডের জন্য কোড

1. শুরুতে, আরডুইনো বোর্ডের পিনগুলি সূচনা করা হয় যা আল্ট্রাসোনিক সেন্সরের সাথে সংযুক্ত হবে। তারপরে ভেরিয়েবলগুলি ঘোষিত হয় যা কোডের চলমান সময় সময় এবং দূরত্ব গণনার জন্য মানগুলি সংরক্ষণ করতে ব্যবহৃত হবে।

// পিন সংখ্যা নির্ধারণ করে কনট ট্রিগপিন = 9; // আলড্রোনসিক সংবেদকের ট্রিগ পিনকে আরডুইনো কনস্ট ইনট ইকোপিন = 10 এর পিনের সাথে সংযুক্ত করুন; // আলড্রোনসিক সেন্সরের ইকো পিনটিকে আরডুইনোর পিন 10 এ সংযুক্ত করুন // ভেরিয়েবল দীর্ঘ সময়কাল সংজ্ঞায়িত করে; // অতিস্বনক তরঙ্গ টি ভ্রমণ int দূরত্ব দ্বারা গৃহীত সময় storore পরিবর্তনশীল; // দূরত্ব গণনা করতে ভেরিয়েবল

ঘ। অকার্যকর সেটআপ() বোর্ডটি চালিত হয় বা সক্ষম বোতামটি চাপ দিলে শুরুতে কেবল একবারে সঞ্চালিত হয় এমন একটি ফাংশন। এখানে আরডুইনোর দুটি পিনই ব্যবহার করা হবে বলে ঘোষণা করা হয়েছে ইনপুট এবং আউটপুট । এই ফাংশনে বাউড্রেট সেট করা আছে। বাউড হার হ'ল প্রতি সেকেন্ডে বিটগুলির গতি যার মাধ্যমে মাইক্রোকন্ট্রোলার অতিস্বনক সংবেদকের সাথে যোগাযোগ করে।

অকার্যকর সেটআপ () {পিনমোড (ট্রিগপিন, OUTPUT); // ট্রিপপিনকে একটি আউটপুট পিনমোড হিসাবে নির্ধারণ করে (ইকোপিন, ইনপুট); // ইকোপিনকে একটি ইনপুট সিরিয়াল.বেগিন (9600) হিসাবে সেট করে; // সিরিয়াল যোগাযোগ শুরু করে}

ঘ। অকার্যকর লুপ () এমন একটি ফাংশন যা বার বার লুপে চলে। এখানে আমরা মাইক্রোকন্ট্রোলারকে কোডিং দিয়েছি যাতে এটি অতিস্বনক সংবেদকের ট্রিগার পিনে একটি উচ্চ সংকেত প্রেরণ করে, 20 মাইক্রোসেকেন্ডের জন্য মজাদার এবং এটিতে একটি কম সংকেত প্রেরণ করে।

অকার্যকর লুপ () {// 10 মাইক্রো সেকেন্ডের ডিজিটাল রাইটের জন্য ট্রিগপিন সেট করে (ট্রিগপিন, এইচআইটি); // প্রথম সেন্সর বিলম্বের মাইক্রোসেকেন্ডস (10) এর ট্রিগারটিতে একটি উচ্চ সংকেত প্রেরণ করুন; // 10 মাইক্রো সেকেন্ডের জন্য ডিজিটাল লিখনের জন্য অপেক্ষা করুন (ট্রিগপিন, LOW); // প্রথম সেন্সর বিলম্ব (2) এর ট্রিগারে একটি নিম্নতর সংকেত প্রেরণ করুন; // 0.2 সেকেন্ডের জন্য অপেক্ষা করুন}

প্রাপ্তি সাইডের জন্য কোড

1. শুরুতে, আরডুইনো বোর্ডের পিনগুলি সূচনা করা হয় যা আল্ট্রাসোনিক সেন্সরের সাথে সংযুক্ত হবে। তারপরে ভেরিয়েবলগুলি ঘোষিত হয় যা কোডের চলমান সময় সময় এবং দূরত্ব গণনার জন্য মানগুলি সংরক্ষণ করতে ব্যবহৃত হবে।

// পিন সংখ্যা নির্ধারণ করে কনট ট্রিগপিন = 9; // আলড্রোনসিক সংবেদকের ট্রিগ পিনকে আরডুইনো কনস্ট ইনট ইকোপিন = 10 এর পিনের সাথে সংযুক্ত করুন; // আলড্রোনসিক সেন্সরের ইকো পিনটিকে আরডুইনোর পিন 10 এ সংযুক্ত করুন // ভেরিয়েবল দীর্ঘ সময়কাল সংজ্ঞায়িত করে; // অতিস্বনক তরঙ্গ টি ভ্রমণ int দূরত্ব দ্বারা গৃহীত সময় storore পরিবর্তনশীল; // দূরত্ব গণনা করতে ভেরিয়েবল

ঘ। অকার্যকর সেটআপ() বোর্ডটি চালিত হয় বা সক্ষম বোতামটি চাপ দিলে শুরুতে কেবল একবারে সঞ্চালিত হয় এমন একটি ফাংশন। এখানে আরডুইনোর দুটি পিনই INPUT এবং OUTPUT হিসাবে ব্যবহৃত হবে বলে ঘোষণা করা হয়েছে। এই ফাংশনে বাউড্রেট সেট করা আছে। বাউড হার হ'ল প্রতি সেকেন্ডে বিটগুলির গতি যার মাধ্যমে মাইক্রোকন্ট্রোলার অতিস্বনক সংবেদকের সাথে যোগাযোগ করে।

অকার্যকর সেটআপ () {পিনমোড (ট্রিগপিন, OUTPUT); // ট্রিপপিনকে একটি আউটপুট পিনমোড হিসাবে নির্ধারণ করে (ইকোপিন, ইনপুট); // ইকোপিনকে একটি ইনপুট সিরিয়াল.বেগিন (9600) হিসাবে সেট করে; // সিরিয়াল যোগাযোগ শুরু করে}

ঘ। অকার্যকর ট্রিগার_ ইউএস () এটি এমন একটি ফাংশন যা দ্বিতীয় অতিস্বনক সেন্সরটির ট্রিগ পিনের নকল ট্রিগারিংয়ের জন্য ডাকা হবে। আমরা উভয় সেন্সরের ট্রিগার পিনের ট্রিগার সময় সিঙ্ক করব।

অকার্যকর ট্রিগার_ ইউএস () {// মার্কিন সেন্সর ডিজিটাল রাইট (ট্রিগপিন, এইচআইটি) জাল ট্রিগার; // দ্বিতীয় সেন্সর বিলম্বের জন্য মাইক্রোসেকেন্ডস (10) এর ট্রিগার পিনে একটি উচ্চ সংকেত পাঠান; // 10 মাইক্রো সেকেন্ডের ডিজিটাল লিখনের জন্য অপেক্ষা করুন (ট্রিগপিন, LOW); // ট্রিগার পিনের দ্বিতীয় প্রেরকে একটি নিম্নতর সংকেত প্রেরণ করুন}

চার। অকার্যকর ক্যালক () প্রথম সেন্সর থেকে দ্বিতীয় সেন্সর পর্যন্ত ভ্রমণ করতে অতিস্বনক সংকেত গ্রহণ করা সময় গণনা করতে ব্যবহৃত একটি ফাংশন।

অকার্যকর ক্যালক () // অতিবাহী তরঙ্গ ভ্রমণের জন্য নেওয়া সময় গণনা করার জন্য ফাংশন {সময়কাল = 0; // সময়কাল প্রাথমিকভাবে শূন্যে সেট করা ট্রিগার_ ইউএস (); // কল করুন ট্রিগার_ ইউএস ফাংশন করার সময় (ডিজিটালরিড (ইকোপিন) == HIGH); // উচ্চ বিলম্বের সময় ইও পিনের স্থিতি (2); // 0.2 সেকেন্ড দেরি করে ট্রিগার_ ইউএস (); // কল করুন ট্রিগার_ ইউএস ফাংশন সময়কাল = পালসইন (ইকোপিন, এইচআইটি); // সময় নিরূপণ}

5. এখানে অকার্যকর লুপ () ফাংশন, আমরা প্রথম সেন্সর থেকে দ্বিতীয় সেন্সরে যাতায়াত করতে অতিস্বনক সংকেত গ্রহণ করা সময়টি ব্যবহার করে দূরত্ব গণনা করছি।

অকার্যকর লুপ () d দূরত্ব = দূরত্ব; ক্যালক (); // কল ক্যালক () ফাংশন দূরত্ব = সময়কাল * 0.034; // অতিস্বনক তরঙ্গ দ্বারা আচ্ছাদিত দূরত্বকে গণনা করে যদি (Pdistance == দূরত্ব || Pdistance == দূরত্ব + 1 || দূরত্ব == দূরত্ব -১) ial সিরিয়াল.প্রিন্ট ('পরিমাপ করা দূরত্ব:'); সিরিয়াল মনিটরের উপর // মুদ্রণ সিরিয়াল.প্রিন্টলন (দূরত্ব / 2); সিরিয়াল মনিটরে // মুদ্রণ} //Serial.print(' দূরত্ব: '); //আরিয়াল.প্রিন্টলন_ডেস্ট্যান্স ২ / ২); বিলম্ব (500); // 0.5 সেকেন্ডের জন্য অপেক্ষা করুন}