সুচিপত্র:
- সরবরাহ
- ধাপ 1: ধাওয়া …
- পদক্ষেপ 2: শুরু করা - Arduino -Breadboard সেটআপ
- ধাপ 3: এলভি-ম্যাক্সসোনার-ইজেড ওয়্যার আপ করুন
- ধাপ 4: HC-SR04 ওয়্যার আপ করুন
- ধাপ 5: 'HC-SR04' অপশন সিলেক্টরটি ওয়্যার আপ করুন
- ধাপ 6: এটা সব কাজ করা …
- ধাপ 7: প্রকল্প লেআউট
- ধাপ 8: কোড লিড-ইন…
- ধাপ 9: Arduino সফটওয়্যার-সিরিয়াল …
- ধাপ 10: কোড - সেটআপ
- ধাপ 11: কোড - লুপ
- ধাপ 12: কোড - MaxSonar ট্রিগার করুন। PW মান পড়ুন
- ধাপ 13: কোড - MaxSonar সিরিয়াল মান পড়ুন
- ধাপ 14: কোড - MaxSonar এনালগ মান পড়ুন
- ধাপ 15: কোড - ট্রিগার করুন এবং HC -SR04 পড়ুন
- ধাপ 16: কোড - Arduino IDE সিরিয়াল প্লটার সমর্থন
- ধাপ 17: কোড - ডিবাগিং…
- ধাপ 18: উপসংহার
- ধাপ 19: বিকল্প MaxSonar সংযোগ (180 ° হেডার ব্যবহার করে)
- ধাপ 20: Arduino কোড
ভিডিও: LV-MaxSonar-EZ এবং HC-SR04 সোনার রেঞ্জ সন্ধানকারীদের Arduino এর সাথে তুলনা করা: 20 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
আমি দেখতে পাই যে অনেক প্রকল্পের (বিশেষ করে রোবট) প্রয়োজন হয়, অথবা উপকৃত হতে পারে, বাস্তব সময়ে একটি বস্তুর দূরত্ব পরিমাপ করে। সোনার রেঞ্জের সন্ধানকারীরা অপেক্ষাকৃত সস্তা এবং সহজেই আরডুইনো-র মতো একটি মাইক্রো-কন্ট্রোলারের সাথে ইন্টারফেস করা যায়।
এই ইন্সট্রাকটেবল সোনার রেঞ্জ-ফাইন্ডার ডিভাইসগুলি অর্জনের জন্য দুটি সহজ তুলনা করে, দেখায় যে কিভাবে তাদের Arduino এর সাথে সংযুক্ত করতে হয়, তাদের কাছ থেকে মানগুলি পড়ার জন্য কোন কোডের প্রয়োজন হয় এবং কিভাবে তারা বিভিন্ন পরিস্থিতিতে একে অপরের বিরুদ্ধে 'পরিমাপ' করে। এর থেকে, আমি আশা করি যে আপনি দুটি ডিভাইসের সুবিধা এবং অসুবিধা সম্পর্কে অন্তর্দৃষ্টি পাবেন যা আপনাকে আপনার পরবর্তী প্রকল্পে সবচেয়ে উপযুক্ত ডিভাইসটি ব্যবহার করতে সহায়তা করবে।
আমি খুব জনপ্রিয় HC-SR04 (বাগ-আই) ডিভাইসের তুলনা করতে চেয়েছিলাম, কম সাধারণ LV-MaxSonar-EZ ডিভাইসের সাথে যখন আমি অন্যটির পরিবর্তে একটি ব্যবহার করতে চাই। আমি আমার ফলাফল এবং সেটআপ শেয়ার করতে চেয়েছিলাম যাতে আপনি দুজনের সাথে পরীক্ষা করে সিদ্ধান্ত নিতে পারেন যে আপনার পরবর্তী প্রকল্পে কোনটি ব্যবহার করবেন।
কেন এই দুই…
HC-SR04 কেন? 'বাগ-আই' HC-SR04 অত্যন্ত জনপ্রিয়-কয়েকটি কারণে:
- এটি সস্তা - বাল্কে কেনা হলে $ 2 বা তারও কম
- এটি ইন্টারফেস করা তুলনামূলকভাবে সহজ
- অনেক, অনেক, প্রকল্পগুলি এটি ব্যবহার করে - তাই এটি সুপরিচিত এবং ভালভাবে বোঝা যায়
LV-MaxSonar-EZ কেন?
- এটি ইন্টারফেস করা খুব সহজ
- এটি একটি প্রকল্পে অন্তর্ভুক্ত করার জন্য একটি ভাল/সহজ ফর্ম-ফ্যাক্টর রয়েছে
- এটির 5 টি সংস্করণ রয়েছে যা বিভিন্ন পরিমাপের প্রয়োজনীয়তাগুলি মোকাবেলা করে (ডেটশীট দেখুন)
- এটি (সাধারণত) HC-SR04 এর চেয়ে অনেক বেশি নির্ভুল এবং নির্ভরযোগ্য
- এটি সাশ্রয়ী মূল্যের - $ 15 থেকে $ 20
উপরন্তু, আমি আশা করি আপনি আপনার প্রকল্পে দরকারী তুলনার জন্য লিখিত আরডুইনো কোডে বিট এবং টুকরা খুঁজে পাবেন, এমনকি পরিসীমা-সন্ধানকারী অ্যাপ্লিকেশনের বাইরেও।
অনুমান:
- আপনি Arduino এবং Arduino IDE এর সাথে পরিচিত
- Arduino IDE ইনস্টল করা আছে এবং আপনার পছন্দসই ডেভেলপমেন্ট মেশিনে কাজ করছে (PC/Mac/Linux)
- আপনার Arduino IDE থেকে আপনার Arduino এর সাথে একটি সংযোগ আছে যাতে প্রোগ্রাম আপলোড এবং চালানো যায় এবং যোগাযোগ করা যায়
প্রয়োজনে আপনাকে সাহায্য করার জন্য নির্দেশাবলী এবং অন্যান্য সংস্থান রয়েছে।
সরবরাহ
- HC-SR04 'বাগ-আই' রেঞ্জ ফাইন্ডার
- LV-MaxSonar-EZ (0, 1, 2, 3, 4-আমি '1' ব্যবহার করছি, কিন্তু সব সংস্করণ একই ইন্টারফেস)
- আরডুইনো ইউএনও
- Solderless Breadboard
- পিন হেডার - 7 পিন 90 ° (MaxSonar ডিভাইসের জন্য, 180 using ব্যবহারের জন্য নিচে দেখুন)
- ফিতা কেবল জাম্পার - 5 টি তার, পুরুষ -পুরুষ
- ফিতা কেবল জাম্পার - 2 তার, পুরুষ -পুরুষ
- জাম্পার তার - পুরুষ -পুরুষ
- হুক আপ তার - লাল এবং কালো (Arduino থেকে রুটিবোর্ড এবং রুটিবোর্ড থেকে ডিভাইসে পাওয়ার জন্য)
- আরডুইনো ইউএনও এর সাথে সংযোগ স্থাপনের জন্য আরডুইনো আইডিই এবং ইউএসবি কেবল সহ কম্পিউটার
* ম্যাক্সসোনার একটি শিরোনাম সংযুক্ত করে না যাতে আপনি একটি শিরোনাম ব্যবহার করতে পারেন যা আপনার প্রকল্পের জন্য সবচেয়ে উপযুক্ত। এই নির্দেশের জন্য আমি 90 ° হেডার ব্যবহার করেছি যাতে ব্রেডবোর্ডে প্লাগ করা সহজ হয়। কিছু প্রকল্পে একটি 180 ° (সোজা) হেডার ভাল হতে পারে। আমি এটিকে কীভাবে হুক করব তা দেখানোর জন্য একটি ফটো অন্তর্ভুক্ত করি যাতে আপনাকে সেগুলি স্যুইচ করতে না হয়। আপনি যদি 180 ° শিরোলেখ ব্যবহার করতে চান, তাহলে আমার ফটো দেখায় সংযোগের জন্য আপনার অতিরিক্ত 7 তারের পুরুষ-মহিলা ফিতা কেবল জাম্পারের প্রয়োজন হবে।
গিট হাব রিপোজিটরি: প্রকল্প ফাইল
ধাপ 1: ধাওয়া …
কীভাবে জিনিসগুলিকে জড়িয়ে রাখা যায় সে সম্পর্কে বিস্তারিত জানার আগে আপনি এই দুটি চমত্কার ডিভাইসের সাথে আপনার নিজের পরীক্ষা -নিরীক্ষা করতে পারেন, আমি কয়েকটি জিনিস বর্ণনা করতে চেয়েছিলাম যা আমি আশা করি এই নির্দেশিকা আপনাকে সাহায্য করবে।
যেহেতু HC-SR04 ডিভাইসের তুলনায় ম্যাক্সসোনার ডিভাইসটি কম ব্যবহৃত এবং কম বোঝা যায়, তাই আমি দেখাতে চেয়েছিলাম:
- MaxSonar ডিভাইসকে কিভাবে মাইক্রো-কন্ট্রোলারের সাথে সংযুক্ত করবেন (এই ক্ষেত্রে একটি Arduino)
- কিভাবে MaxSonar ডিভাইসের বিভিন্ন আউটপুট থেকে পরিমাপ নিতে হয়
- HC-SR04 ডিভাইসের সাথে MaxSonar ডিভাইসের ইন্টারফেসিং তুলনা করুন
- বিভিন্ন পৃষ্ঠতল দিয়ে বস্তুর দূরত্ব পরিমাপ করার ক্ষমতা পরীক্ষা করুন
- কেন আপনি একটি ডিভাইসকে অন্যের থেকে বেছে নিতে পারেন (অথবা দুটোই একসাথে ব্যবহার করুন)
আমি আশা করি এই নির্দেশিকা আপনাকে এই ধাওয়াতে সাহায্য করবে …
পদক্ষেপ 2: শুরু করা - Arduino -Breadboard সেটআপ
আপনি যদি Arduino এর সাথে প্রোটোটাইপ করে থাকেন তবে সম্ভবত আপনার কাছে ইতিমধ্যেই একটি Arduino-Breadboard সেটআপ আছে যা আপনি আরামদায়ক। যদি তাই হয়, আমি আত্মবিশ্বাসী যে আপনি এই নির্দেশের জন্য এটি ব্যবহার করতে পারেন। যদি না হয়, এইভাবে আমি আমার সেট আপ করেছি - এটি এবং ভবিষ্যতের প্রকল্পগুলির জন্য নির্দ্বিধায় এটি অনুলিপি করুন।
- আমি Arduino UNO এবং একটি ছোট বেতার ব্রেডবোর্ডকে 3-3/8 "x 4-3/4" (8.6 x 12.0 সেমি) প্লাস্টিকের টুকরো দিয়ে নীচে রাবার পা দিয়ে সংযুক্ত করি।
- আমি Arduino থেকে রুটিবোর্ড পাওয়ার ডিস্ট্রিবিউশন স্ট্রিপে +5V এবং GND সংযোগ করতে লাল এবং কালো 22-AWG হুক-আপ তার ব্যবহার করি
- আমি পাওয়ার-গ্রাউন্ড ডিস্ট্রিবিউশন স্ট্রিপে একটি 10µF ট্যানটালাম ক্যাপাসিটর অন্তর্ভুক্ত করি যা বিদ্যুতের শব্দ কমাতে সাহায্য করে (কিন্তু এই প্রকল্পের প্রয়োজন নেই)
এটি একটি চমৎকার প্ল্যাটফর্ম প্রদান করে যা প্রোটোটাইপ করা সহজ।
ধাপ 3: এলভি-ম্যাক্সসোনার-ইজেড ওয়্যার আপ করুন
MaxSonar ডিভাইসে 90 ° হেডার দিয়ে সোল্ডার দিয়ে এটি রুটিবোর্ডে প্লাগ করা সহজ। 5 পিন রিবন কেবল তারপরে ম্যাক্সসোনারকে আরডুইনোতে সংযুক্ত করে যেমনটি চিত্রটিতে দেখা যায়। ফিতা কেবল ছাড়াও আমি বিদ্যুৎ বিতরণ রেল থেকে লাল এবং কালো হুক-আপ তারের ছোট টুকরা ব্যবহার করি যাতে ডিভাইসে শক্তি সরবরাহ করা যায়।
তারের:
ম্যাক্সসোনার | আরডুইনো | রঙ |
---|---|---|
1 (BW) | পাওয়ার-জিএনডি | হলুদ |
2 (PW) | ডিজিটাল -5 | সবুজ |
3 (AN) | এনালগ -০ | নীল |
4 (RX) | ডিজিটাল-3 | বেগুনি |
5 (TX) | ডিজিটাল -২ | ধূসর |
6 (+5) | +5 বিবি-পিডব্লিউআর রেল | লাল |
7 (GND) | GND BB-PWR রেল | কালো |
বিঃদ্রঃ:
এই নির্দেশে ব্যবহৃত সংযোগগুলির সংখ্যা আপনাকে আপনার প্রকল্পের জন্য ম্যাক্সসোনার বিবেচনা করতে দেয় না। এই নির্দেশযোগ্য ম্যাক্সসোনার ইন্টারফেস বিকল্পগুলি ব্যবহার করে কিভাবে তারা কাজ করে তা ব্যাখ্যা করে এবং একে অপরের সাথে এবং HC-SR04 ডিভাইসের সাথে তুলনা করে। প্রদত্ত ব্যবহারের জন্য (ইন্টারফেস বিকল্পগুলির একটি ব্যবহার করে) একটি প্রকল্প সাধারণত একটি বা দুটি ইন্টারফেস পিন (প্লাস পাওয়ার এবং গ্রাউন্ড) ব্যবহার করবে।
ধাপ 4: HC-SR04 ওয়্যার আপ করুন
HC-SR04 সাধারণত 90 ° হেডারের সাথে ইতিমধ্যে সংযুক্ত থাকে, তাই এটি রুটিবোর্ডে প্লাগ করা সহজ। 2 পিন রিবন কেবল তারপর HC-SR04 কে Arduino এর সাথে সংযুক্ত করে যেমনটি ডায়াগ্রামে দেখা যায়। রিবন কেবল ছাড়াও আমি বিদ্যুৎ বিতরণ রেল থেকে লাল এবং কালো হুক-আপ তারের ছোট টুকরা ব্যবহার করি যাতে ডিভাইসে শক্তি সরবরাহ করা যায়।
HC-SR04 | আরডুইনো | রঙ |
---|---|---|
1 (ভিসিসি) | +5 বিবি-পিডব্লিউআর রেল | লাল |
2 (TRIG) | ডিজিটাল -6 | হলুদ |
3 (ECHO) | ডিজিটাল -7 | কমলা |
4 (GND) | GND BB-PWR রেল | কালো |
ধাপ 5: 'HC-SR04' অপশন সিলেক্টরটি ওয়্যার আপ করুন
যখন আমি এই প্রকল্পটি শুরু করি তখন আমার উদ্দেশ্য ছিল ম্যাক্সসোনার ডিভাইসের বিভিন্ন ইন্টারফেস বিকল্পগুলি পরীক্ষা করা। এটি চালু এবং চালানোর পরে, আমি সিদ্ধান্ত নিয়েছি যে এটি সর্বজনীন HC-SR04 (bugeye) ডিভাইসের সাথে তুলনা করা ভাল হবে। যাইহোক, আমি এটি অন্তর্ভুক্ত না করে চালাতে/পরীক্ষা করতে সক্ষম হতে চেয়েছিলাম, তাই আমি কোডে একটি বিকল্প/পরীক্ষা যোগ করেছি।
HC-SR04 ডিভাইসটি পরিমাপ রিডিং এবং আউটপুটে অন্তর্ভুক্ত করা উচিত কিনা তা দেখতে কোডটি একটি ইনপুট পিন পরীক্ষা করে।
ডায়াগ্রামে, এটি একটি সুইচ হিসাবে দেখানো হয়েছে, কিন্তু ব্রেডবোর্ডে আমি কেবল একটি জাম্পার তার ব্যবহার করি (যেমন ছবিতে দেখা যায়)। যদি ওয়্যারটি GND এর সাথে সংযুক্ত থাকে HC-SR04 পরিমাপের মধ্যে অন্তর্ভুক্ত করা হবে। আরডুইনোতে কোড 'পুল আপ' (ইনপুট উচ্চ/সত্য করে তোলে), যাতে যদি এটি কম টানা না হয় (GND এর সাথে সংযুক্ত) HC-SR04 পরিমাপ করা যাবে না।
যদিও এই নির্দেশযোগ্যটি দুটি ডিভাইসের তুলনাতে রূপান্তরিত হয়েছে, আমি কীভাবে আপনার প্রকল্পে বিভিন্ন ডিভাইস/বিকল্পগুলি অন্তর্ভুক্ত/বাদ দিতে পারি তা বোঝানোর জন্য এটিকে এই জায়গায় রেখে দেওয়ার সিদ্ধান্ত নিয়েছি।
ব্রেডবোর্ড | আরডুইনো | রঙ |
---|---|---|
GND BB-PWR রেল | ডিজিটাল -12 | সাদা |
ধাপ 6: এটা সব কাজ করা …
এখন যেহেতু সবকিছু জড়িয়ে গেছে - সময় এসেছে জিনিসগুলি কাজ করার!
'অনুমান' -এ উল্লিখিত হিসাবে - আমি Arduino IDE কিভাবে কাজ করে বা কিভাবে একটি Arduino প্রোগ্রাম (বিস্তারিতভাবে) ব্যাখ্যা করতে যাচ্ছি না।
নিম্নলিখিত বিভাগগুলি এই প্রকল্পে অন্তর্ভুক্ত Arduino কোডটি ভেঙে দেয়।
আপনার Arduino ডেভেলপমেন্টের জন্য আপনি যে স্থানে ব্যবহার করেন সেখানে সম্পূর্ণ সংরক্ষণাগারটি আনজিপ করুন। আপনার Arduino IDE তে `MaxSonar-outputs.ino` কোডটি লোড করুন এবং শুরু করা যাক!
ধাপ 7: প্রকল্প লেআউট
প্রকল্পটিতে LV-MaxSonar-EZ ডিভাইস, সার্কিট ডায়াগ্রাম, একটি README এবং Arduino কোড সম্পর্কে তথ্য রয়েছে। সার্কিট ডায়াগ্রাম ফ্রিজিং ফরম্যাটের পাশাপাশি-p.webp
ধাপ 8: কোড লিড-ইন…
এই নির্দেশনায়, আমি কোডের প্রতিটি দিক দিয়ে যেতে পারি না। আমি উচ্চ স্তরের কিছু বিবরণ কভার করি। আমি আপনাকে কোডে শীর্ষ স্তরের মন্তব্য পড়তে এবং পদ্ধতিতে খনন করতে উত্সাহিত করি।
মন্তব্যগুলি অনেক তথ্য সরবরাহ করে যা আমি এখানে পুনরাবৃত্তি করব না।
'সেটআপ' কোডে আমি কয়েকটি বিষয় উল্লেখ করতে চাই …
- `_DEBUG_OUTPUT` - পরিবর্তনশীল এবং #সংজ্ঞায়িত বিবৃতি
- ইন্টারফেসের জন্য ব্যবহৃত Arduino 'পিনের সংজ্ঞা
- গণনায় ব্যবহৃত রূপান্তর উপাদানগুলির সংজ্ঞা
ডিবাগিং কোড জুড়ে ব্যবহৃত হয়, এবং আমি দেখাব কিভাবে এটি গতিশীলভাবে চালু/বন্ধ করা যায়।
Arduino পিন এবং রূপান্তরগুলির জন্য 'সংজ্ঞা' ব্যবহার করা হয় যাতে এই প্রকল্পটি অন্যান্য প্রকল্পে ব্যবহার করা সহজ হয়।
ডিবাগ করা হচ্ছে…
'ডিবাগিং' বিভাগটি একটি পরিবর্তনশীল এবং কিছু ম্যাক্রো সংজ্ঞায়িত করে যা চাহিদা অনুযায়ী সিরিয়াল আউটপুটে ডিবাগিং তথ্য অন্তর্ভুক্ত করা সহজ করে তোলে।
`_DEBUG_OUTPUT` বুলিয়ান ভেরিয়েবল কোডে মিথ্যাতে সেট করা হয়েছে (সত্যে সেট করা যেতে পারে) এবং` DB_PRINT… `ম্যাক্রোতে একটি পরীক্ষা হিসাবে ব্যবহৃত হয়। এটি কোডে গতিশীলভাবে পরিবর্তন করা যেতে পারে (যেমন 'setDebugOutputMode` পদ্ধতিতে দেখা যায়)।
বিশ্বব্যাপী…
সংজ্ঞাগুলির পরে, কোডটি কয়েকটি বৈশ্বিক ভেরিয়েবল এবং বস্তু তৈরি করে এবং শুরু করে।
- সফটওয়্যার সিরিয়াল (পরবর্তী অংশ দেখুন)
- _loopCount - প্রতিটি 'n' সারিতে একটি হেডার আউটপুট করতে ব্যবহৃত হয়
- _inputBuffer - অপশন প্রক্রিয়া করার জন্য সিরিয়াল/টার্মিনাল ইনপুট সংগ্রহ করতে ব্যবহৃত হয় (ডিবাগ অন/অফ)
ধাপ 9: Arduino সফটওয়্যার-সিরিয়াল …
ম্যাক্সসোনার ইন্টারফেস বিকল্পগুলির মধ্যে একটি সিরিয়াল ডেটা স্ট্রিম। যাইহোক, Arduino UNO শুধুমাত্র একটি একক সিরিয়াল ডেটা সংযোগ প্রদান করে, এবং এটি ব্যবহার করা হয়/Arduino IDE (হোস্ট কম্পিউটার) এর সাথে যোগাযোগের জন্য USB পোর্টের সাথে ভাগ করা হয়।
সৌভাগ্যবশত, Arduino IDE এর সাথে একটি লাইব্রেরি উপাদান রয়েছে যা সিরিয়াল- i/o ইন্টারফেস বাস্তবায়নের জন্য Arduino ডিজিটাল- I/O পিনের একটি জোড়া ব্যবহার করে। যেহেতু ম্যাক্সসোনার সিরিয়াল ইন্টারফেস 9600 BAUD ব্যবহার করে, তাই এই 'সফটওয়্যার' ইন্টারফেসটি যোগাযোগ পরিচালনা করতে পুরোপুরি সক্ষম।
যারা Arduino-Mega (অথবা একাধিক HW সিরিয়াল পোর্ট আছে এমন অন্যান্য ডিভাইস) ব্যবহার করছেন তাদের জন্য অনুগ্রহ করে একটি ফিজিক্যাল সিরিয়াল পোর্ট ব্যবহার করতে এবং SW-Serial- এর প্রয়োজনীয়তা দূর করার জন্য নির্দ্বিধায় কোড সমন্বয় করুন।
'সেটআপ' পদ্ধতিটি 'সফটওয়্যার সিরিয়াল' ইন্টারফেসকে ম্যাক্সসোনার ডিভাইসের সাথে ব্যবহার করতে শুরু করে। শুধুমাত্র রিসিভ (RX) প্রয়োজন। ম্যাক্সসোনারের আউটপুট মেলাতে ইন্টারফেসটি 'উল্টানো'।
ধাপ 10: কোড - সেটআপ
উপরে বর্ণিত হিসাবে, 'সেটআপ' পদ্ধতিটি 'সফটওয়্যার সিরিয়াল' ইন্টারফেসের পাশাপাশি শারীরিক সিরিয়াল ইন্টারফেসকে সূচনা করে। এটি Arduino I/O পিন কনফিগার করে এবং একটি হেডার পাঠায়।
ধাপ 11: কোড - লুপ
`লুপ` কোড নিম্নলিখিতগুলির মধ্য দিয়ে চলে:
- একটি হেডার আউটপুট করুন (ডিবাগিং এবং প্লটার জন্য ব্যবহৃত)
- একটি পরিমাপ নিতে MaxSonar ট্রিগার করুন
- MaxSonar পালস-প্রস্থ মান পড়ুন
- MaxSonar সিরিয়াল-ডেটা মান পড়ুন
- MaxSonar এনালগ মান পড়ুন
-
'HC-SR04' বিকল্পটি পরীক্ষা করুন এবং, যদি সক্ষম হয়:
HC-SR04 ডিভাইসটি ট্রিগার করুন এবং পড়ুন
- একটি ট্যাব সীমিত বিন্যাসে ডেটা আউটপুট করুন যা সিরিয়াল প্লটার দ্বারা ব্যবহার করা যেতে পারে
- পর্যাপ্ত সময় শেষ না হওয়া পর্যন্ত অপেক্ষা করুন যাতে অন্য পরিমাপ নেওয়া যায়
ধাপ 12: কোড - MaxSonar ট্রিগার করুন। PW মান পড়ুন
ম্যাক্সসোনারের দুটি মোড রয়েছে: 'ট্রিগার' এবং 'ক্রমাগত'
এই নির্দেশযোগ্য 'ট্রিগারড' মোড ব্যবহার করে, কিন্তু অনেক প্রকল্প 'অবিচ্ছিন্ন' মোড ব্যবহার করে উপকৃত হতে পারে (ডেটশীট দেখুন)।
'ট্রিগারড' মোড ব্যবহার করার সময়, প্রথম বৈধ আউটপুট পালস-প্রস্থ (PW) আউটপুট থেকে। এর পরে, বাকি আউটপুটগুলি বৈধ।
`TiggerAndReadDistanceFromPulse` MaxSonar ডিভাইসে ট্রিগার পিন স্পন্দিত করে এবং ফলে পালস-প্রস্থ দূরত্বের মান পড়ে
মনে রাখবেন, অন্যান্য অনেক সোনার ডিভাইসের বিপরীতে, ম্যাক্সসোনার রাউন্ড-ট্রিপ রূপান্তর পরিচালনা করে, তাই পড়া দূরত্বটি লক্ষ্যমাত্রার দূরত্ব।
এই পদ্ধতিটি ডিভাইসের অন্যান্য আউটপুটগুলিকে বৈধ হতে (সিরিয়াল, এনালগ) যথেষ্ট দেরি করে।
ধাপ 13: কোড - MaxSonar সিরিয়াল মান পড়ুন
MaxSonar ট্রিগার করার পর (অথবা যখন 'ক্রমাগত' মোডে), যদি সিরিয়াল আউটপুট অপশন চালু থাকে ('BW - Pin -1' কন্ট্রোলের মাধ্যমে) "R nnn" আকারে একটি সিরিয়াল ডেটা স্ট্রিম পাঠানো হয়, অনুসরণ করা হয় একটি ক্যারিয়ার-রিটার্ন '\ r' দ্বারা। 'Nnn' হল বস্তুর ইঞ্চির মান।
`ReadDistanceFromSerial` পদ্ধতিটি সিরিয়াল ডেটা (সফটওয়্যার সিরিয়াল পোর্ট থেকে) পড়ে এবং 'nnn' মানকে দশমিক রূপান্তর করে। এটি একটি ব্যর্থ-নিরাপদ সময়সীমা অন্তর্ভুক্ত করে, কেবলমাত্র যদি একটি সিরিয়াল মান না পায়।
ধাপ 14: কোড - MaxSonar এনালগ মান পড়ুন
MaxSonar এনালগ পোর্ট ক্রমাগত পরিমাপ করা শেষ দূরত্বের আনুপাতিক আউটপুট ভোল্টেজ প্রদান করে। ডিভাইসটি আরম্ভ করার পরে এই মানটি যে কোনও সময় পড়া যেতে পারে। মান শেষ দূরত্ব পড়ার 50mS এর মধ্যে আপডেট করা হয় (ট্রিগার করা বা ক্রমাগত মোড)।
মান হল (Vcc/512) প্রতি ইঞ্চি। সুতরাং, 5 ভোল্টের Arduino থেকে একটি Vcc দিয়ে, মান হবে ~ 9.8mV/in। `ReadDistanceFromAnalog` পদ্ধতিটি Arduino এনালগ ইনপুট থেকে মান পড়ে এবং এটিকে একটি 'ইঞ্চি' মানের রূপান্তর করে।
ধাপ 15: কোড - ট্রিগার করুন এবং HC -SR04 পড়ুন
যদিও HC-SR04 পড়ার জন্য লাইব্রেরি আছে, আমি তাদের কিছু পরীক্ষা করেছি এমন বিভিন্ন ডিভাইসের সাথে অবিশ্বাস্য বলে মনে করেছি। আমি 'sr04ReadDistance' পদ্ধতিতে যে কোডটি অন্তর্ভুক্ত করেছি তা খুঁজে পেয়েছি সহজ এবং আরো নির্ভরযোগ্য (যতটা সস্তা HC-SR04 ডিভাইস হতে পারে)।
এই পদ্ধতি HC-SR04 ডিভাইস সেট করে এবং ট্রিগার করে এবং তারপর রিটার্ন পালস প্রস্থ পরিমাপ করার জন্য অপেক্ষা করে। নাড়ির প্রস্থের পরিমাপের মধ্যে রয়েছে HC-SR04 ইস্যুর সাথে মোকাবিলা করার জন্য একটি দীর্ঘ সময় পালস সময়কাল যখন এটি একটি লক্ষ্য খুঁজে পায় না। Pul 10 ফুটের লক্ষ্য দূরত্বের চেয়ে লম্বা একটি পালস প্রস্থকে কোন বস্তু বা এমন বস্তু বলে মনে করা হয় যা সনাক্ত করা যায় না। যদি সময়সীমা শেষ হয় তাহলে '0' মান দূরত্ব হিসাবে ফেরত দেওয়া হয়। এই 'দূরত্ব' (পালস-প্রস্থ) #ডিফাইন মান ব্যবহার করে সামঞ্জস্য করা যেতে পারে।
বস্তুর দূরত্ব হিসেবে ফেরত আসার আগে পালস প্রস্থ একটি রাউন্ড-ট্রিপ দূরত্বে রূপান্তরিত হয়।
ধাপ 16: কোড - Arduino IDE সিরিয়াল প্লটার সমর্থন
এখন আউটপুট জন্য!
'লুপ' পদ্ধতি দুটি ডিভাইস থেকে দূরত্ব পরিমাপের সংগ্রহকে ট্রিগার করে - কিন্তু আমরা এটি দিয়ে কী করব?
ঠিক আছে, অবশ্যই, আমরা এটি প্রেরণ করব যাতে এটি কনসোলে দেখা যায় - তবে আমরা আরও চাই!
Arduino IDE সিরিয়াল প্লটার ইন্টারফেস প্রদান করে। আমরা আমাদের দুটি ডিভাইসের আউটপুট থেকে আমাদের বস্তুর দূরত্বের একটি বাস্তব সময় গ্রাফ প্রদান করতে এটি ব্যবহার করব।
সিরিয়াল প্লটার একটি শিরোলেখ গ্রহণ করে যার মধ্যে মান লেবেল থাকে এবং তারপরে সীমাবদ্ধ মানগুলির একাধিক সারি গ্রাফ হিসাবে প্লট করা হয়। যদি মানগুলি নিয়মিত ভিত্তিতে আউটপুট হয় (একবার প্রতি 'এত সেকেন্ড') গ্রাফ সময়ের সাথে বস্তুর দূরত্বের একটি ভিজ্যুয়ালাইজেশন প্রদান করে।
'লুপ' পদ্ধতিটি ম্যাক্সসোনার থেকে তিনটি মান এবং HC-SR04 থেকে একটি ট্যাব-বিভক্ত বিন্যাসে মান বের করে যা সিরিয়াল প্লটারের সাথে ব্যবহার করা যেতে পারে। একবার প্রতি 20 সারিতে এটি হেডার আউটপুট করে (যদি সিরিয়াল প্লটারটি মধ্য-প্রবাহ সক্ষম হয়)।
এটি আপনাকে বাধা থেকে দূরত্বটি কল্পনা করতে এবং দুটি ডিভাইসের দ্বারা প্রদত্ত মানগুলির মধ্যে পার্থক্য দেখতে দেয়।
ধাপ 17: কোড - ডিবাগিং…
ডিবাগিং একটি প্রয়োজনীয়তা। কোন সমস্যা যখন প্রত্যাশা অনুযায়ী কাজ করে না তখন আপনি কিভাবে একটি সমস্যা খুঁজে বের করতে পারেন?
বোঝার একটি প্রথম লাইন প্রায়ই কিছু 'সহজ' পাঠ্য আউটপুট যা কি ঘটছে তা নির্দেশ করতে পারে। এগুলিকে কোডে যোগ করা যেতে পারে যখন কোন সমস্যা ট্র্যাক করার প্রয়োজন হয় এবং সমস্যা সমাধান হয়ে গেলে তা সরিয়ে ফেলা হয়। যাইহোক, কোড যোগ করা এবং অপসারণ করা সময়সাপেক্ষ এবং, নিজেই, অন্যান্য সমস্যা হতে পারে। কখনও কখনও সোর্স কোডটি একা রেখে এটি গতিশীলভাবে সক্ষম এবং অক্ষম করতে সক্ষম হওয়া ভাল।
এই নির্দেশে আমি Arduino IDE সিরিয়াল মনিটর থেকে পড়া ইনপুট থেকে গতিশীলভাবে ডিবাগিং প্রিন্ট (সিরিয়াল আউটপুট) স্টেটমেন্টগুলি সক্রিয় এবং নিষ্ক্রিয় করার একটি পদ্ধতি অন্তর্ভুক্ত করেছি (একটি আসন্ন রিলিজে, সিরিয়াল প্লটার এই ইনপুটটিও প্রদান করবে বলে আশা করা হচ্ছে)।
`_DEBUG_OUTPUT` বুলিয়ান অনেক সংখ্যক #সংজ্ঞায়িত মুদ্রণ পদ্ধতিতে ব্যবহৃত হয় যা কোডের মধ্যে ব্যবহার করা যেতে পারে। _DEBUG_OUTPUT ভেরিয়েবলের মান প্রিন্টিং (আউটপুট পাঠানো) সক্ষম করতে ব্যবহার করা হয় বা না। 'SetDebugOutputMode' পদ্ধতি অনুযায়ী কোডের মধ্যে মান গতিশীলভাবে পরিবর্তন করা যেতে পারে।
সিরিয়াল ইনপুট থেকে প্রাপ্ত ইনপুটের উপর ভিত্তি করে `লুপ` থেকে` setDebugOutputMode` পদ্ধতি বলা হয়। ডিবাগ মোড সক্ষম/নিষ্ক্রিয় করতে "ডিবাগ অন/অফ | সত্য/মিথ্যা" মিলেছে কিনা তা দেখার জন্য ইনপুটটি বিশ্লেষণ করা হয়।
ধাপ 18: উপসংহার
আমি আশা করি এই সাধারণ হার্ডওয়্যার সেটআপ এবং উদাহরণ কোডটি আপনাকে HC-SR04 এবং LV-MaxSonar-EZ ডিভাইসের মধ্যে পার্থক্য বুঝতে সাহায্য করবে। উভয়ই ব্যবহার করা খুব সহজ, এবং আমি বিশ্বাস করি যে প্রত্যেকেরই এর সুবিধা রয়েছে। কখন অন্যটির পরিবর্তে একটি ব্যবহার করতে হবে তা জানা একটি সফল প্রকল্পের জন্য সহায়ক হতে পারে।
বিটিডব্লিউ-LV-MaxSonar-EZ ব্যবহার করে বস্তুর দূরত্ব সঠিকভাবে পরিমাপ করার একটি খুব সহজ উপায় ব্যবহার করার ইঙ্গিত দিয়েছি … সহজ ব্যবহার করার সময় দূরত্ব পড়ার জন্য আপনি এনালগ আউটপুট (একটি তার) এবং ক্রমাগত পরিমাপ মোড ব্যবহার করতে পারেন Arduino এনালগ ইনপুট থেকে সরাসরি 'readDistanceFromAnalog' কোড। এক তারের এবং (ঘনীভূত) এক লাইন কোড!
ধাপ 19: বিকল্প MaxSonar সংযোগ (180 ° হেডার ব্যবহার করে)
যেমনটি আমি উল্লেখ করেছি, ম্যাক্সসোনার সংযুক্ত হেডারের সাথে আসে না। সুতরাং, আপনি আপনার প্রকল্পের জন্য সবচেয়ে উপযুক্ত যে কোন সংযোগ ব্যবহার করতে পারেন। কিছু ক্ষেত্রে একটি 180 ° (সোজা) হেডার আরো উপযুক্ত হতে পারে। যদি এমন হয়, আমি দ্রুত দেখাতে চেয়েছিলাম কিভাবে আপনি এই নির্দেশাবলীর সাথে এটি ব্যবহার করতে পারেন। এই দৃষ্টান্তটি একটি ম্যাক্সসোনার দেখায় যা একটি সোজা হেডার সহ একটি রুটিবোর্ডের সাথে একটি পুরুষ-মহিলা ফিতা ক্যাবলের সাথে সংযুক্ত থাকে এবং তারপরে আর্ডুইনোতে সংযুক্ত থাকে যেমনটি বাকি নিবন্ধে বর্ণিত হয়েছে।
ধাপ 20: Arduino কোড
Arduino কোড সোনার রেঞ্জ-ফাইন্ডার তুলনা প্রকল্পের 'MaxSonar-outputs' ফোল্ডারে রয়েছে
প্রস্তাবিত:
সোনার রেঞ্জ ফাইন্ডার: 4 টি ধাপ
সোনার রেঞ্জ ফাইন্ডার: এই ইন্সট্রাকটেবল -এ, একটি সোনার রেঞ্জ ফাইন্ডার ল্যাপটপ খোলা আছে কিনা তা নির্ধারণ করতে পারে কিনা তা দেখার জন্য একটি টেস্ট প্ল্যান তৈরি করা হয়েছিল। নীচে, সোনার রেঞ্জ ফাইন্ডার কিভাবে তৈরি করতে হয়, কিভাবে Arduino প্রোগ্রাম করতে হয় এবং এটি ক্যালিব্রেট করতে হয় তার নির্দেশাবলী
দৃষ্টিপ্রতিবন্ধীদের সাহায্য করার জন্য মাইক্রোকন্ট্রোলারগুলিতে সোনার, লিডার এবং কম্পিউটার ভিশন ব্যবহার করা: 16 টি পদক্ষেপ
দৃষ্টিপ্রতিবন্ধীদের সাহায্য করার জন্য মাইক্রোকন্ট্রোলারদের সোনার, লিডার এবং কম্পিউটার ভিশন ব্যবহার করে: আমি একটি বুদ্ধিমান 'বেত' তৈরি করতে চাই যা বিদ্যমান সমাধানের চেয়ে দৃষ্টি প্রতিবন্ধীদের অনেক বেশি সাহায্য করতে পারে। চারপাশে সাউন্ড টাইপ হেডফোনে আওয়াজ করে বেত ব্যবহারকারীকে সামনে বা পাশে বস্তু সম্পর্কে অবহিত করতে সক্ষম হবে
ওয়াইফাই এবং আইআর রিমোট এবং অ্যান্ড্রয়েড অ্যাপ ব্যবহার করে নোডএমসিইউ এবং আইআর রিসিভারের সাথে রিলে কন্ট্রোল: 5 টি ধাপ (ছবি সহ)
ওয়াইফাই এবং আইআর রিমোট এবং অ্যান্ড্রয়েড অ্যাপ ব্যবহার করে নোডএমসিইউ এবং আইআর রিসিভারের সাথে 8 রিলে কন্ট্রোল: ওয়াইফাই এবং আইআর রিমোট এবং অ্যান্ড্রয়েড অ্যাপের মাধ্যমে নোডেমকু এবং আইআর রিসিভার ব্যবহার করে 8 রিলে সুইচ নিয়ন্ত্রণ করুন। এখানে
এলার্ম সহ লং রেঞ্জ ওয়্যারলেস ওয়াটার লেভেল ইন্ডিকেটর - রেঞ্জ 1 কিমি পর্যন্ত - সাতটি স্তর: 7 টি ধাপ
এলার্ম সহ লং রেঞ্জ ওয়্যারলেস ওয়াটার লেভেল ইন্ডিকেটর | রেঞ্জ 1 কিমি পর্যন্ত | সাতটি স্তর: এটি ইউটিউবে দেখুন: https://youtu.be/vdq5BanVS0Y আপনি হয়তো অনেক তারযুক্ত এবং ওয়্যারলেস জলের স্তর নির্দেশক দেখেছেন যা 100 থেকে 200 মিটার পর্যন্ত পরিসীমা সরবরাহ করবে। কিন্তু এই নির্দেশে, আপনি একটি দীর্ঘ পরিসীমা ওয়্যারলেস জল স্তর ইন্ডি দেখতে যাচ্ছেন
Arduino এবং প্রক্রিয়াকরণের সাথে তাপমাত্রা এবং আর্দ্রতা প্রদর্শন এবং ডেটা সংগ্রহ: 13 টি ধাপ (ছবি সহ)
Arduino এবং প্রক্রিয়াকরণের সাথে তাপমাত্রা এবং আর্দ্রতা প্রদর্শন এবং ডেটা সংগ্রহ: ভূমিকা: এটি একটি প্রকল্প যা একটি Arduino বোর্ড, একটি সেন্সর (DHT11), একটি উইন্ডোজ কম্পিউটার এবং প্রসেসিং (একটি বিনামূল্যে ডাউনলোডযোগ্য) প্রোগ্রাম ব্যবহার করে তাপমাত্রা, ডিজিটাল এবং আর্দ্রতা ডেটা প্রদর্শন করতে বার গ্রাফ ফর্ম, প্রদর্শন সময় এবং তারিখ এবং একটি গণনা সময় চালান