সুচিপত্র:

একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?: 6 ধাপ
একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?: 6 ধাপ

ভিডিও: একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?: 6 ধাপ

ভিডিও: একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?: 6 ধাপ
ভিডিও: পরিমাপের অংক পানির মত সহজ নিয়মে | Mottasin Pahlovi BUETian 2024, নভেম্বর
Anonim
একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?
একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করার একটি উপায়?

প্রসঙ্গ:

আমি বিনোদনের জন্য একটি রোবট তৈরি করছি যা আমি একটি বাড়ির মধ্যে স্বায়ত্তশাসিতভাবে সরাতে চাই।

এটি একটি দীর্ঘ কাজ এবং আমি ধাপে ধাপে কাজ করছি।

আমি ইতিমধ্যে সেই বিষয়ে 2 টি নির্দেশাবলী প্রকাশ করেছি:

  • একটি চাকা এনকোডার তৈরির বিষয়ে
  • ওয়াইফাই সংযোগ সম্পর্কে একটি

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

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

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

ধাপ 1: কেন একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করবেন?

কেন একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করবেন?
কেন একটি নিষ্ক্রিয় পরিমাপ ইউনিট ব্যবহার করবেন?

তাহলে আমি কেন একটি IMU ব্যবহার করলাম?

প্রথম কারণটি হ'ল যদি চাকা এনকোডারটি সরল চলাচল নিয়ন্ত্রণের জন্য যথেষ্ট সুনির্দিষ্ট হয়, টিউনিং করার পরেও আমি +- 5 ডিগ্রির কম ঘূর্ণনের জন্য নির্ভুলতা পেতে পারিনি এবং এটি যথেষ্ট নয়।

তাই আমি 2 টি ভিন্ন সেন্সর চেষ্টা করেছি। প্রথমে আমি একটি ম্যাগনেটোমিটার (LSM303D) ব্যবহার করি। নীতিটি সহজ ছিল: ঘূর্ণনের আগে উত্তর দিকনির্দেশনা পান, লক্ষ্য গণনা করুন এবং লক্ষ্য পৌঁছানো পর্যন্ত পদক্ষেপটি সামঞ্জস্য করুন। এটি এনকোডারের চেয়ে কিছুটা ভাল ছিল তবে খুব ছড়িয়ে দেওয়ার সাথে। তারপরে আমি একটি জাইরোস্কোপ (L3GD20) ব্যবহার করার চেষ্টা করেছি। নীতিটি ছিল ঘূর্ণন গণনার জন্য সেন্সর দ্বারা প্রদত্ত ঘূর্ণন গতি সংহত করা। এবং এটি সূক্ষ্ম কাজ করেছে। আমি +- 1 ডিগ্রিতে ঘূর্ণন নিয়ন্ত্রণ করতে সক্ষম হয়েছিলাম।

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

  • আমি L3GD20 এর পাশাপাশি ঘূর্ণন নিয়ন্ত্রণ করতে পারি
  • সোজা চলার সময় আমি সামান্য ঘূর্ণন সনাক্ত করতে পারি
  • রোবট স্থানীয়করণের জন্য আমাকে উত্তর দিকনির্দেশনা পেতে হবে এবং BNO055 এর কম্পাস ক্রমাঙ্কন খুবই সহজ

ধাপ 2: 2D স্থানীয়করণের জন্য BNO055 কিভাবে ব্যবহার করবেন?

2D স্থানীয়করণের জন্য BNO055 কিভাবে ব্যবহার করবেন?
2D স্থানীয়করণের জন্য BNO055 কিভাবে ব্যবহার করবেন?

BNO055 IMU একটি Bosch 9 অক্ষ বুদ্ধিমান সেন্সর যা পরম অভিমুখ প্রদান করতে পারে।

ডেটশীট একটি সম্পূর্ণ ডকুমেন্টেশন প্রদান করে। এটি একটি উচ্চ প্রযুক্তির উপাদান এটি একটি জটিল পণ্য এবং আমি এটি কিভাবে কাজ করে তা শিখতে এবং এটি ব্যবহার করার বিভিন্ন উপায় চেষ্টা করার জন্য কয়েক ঘন্টা ব্যয় করেছি।

আমার মনে হয় এই অভিজ্ঞতা শেয়ার করাটা কাজে লাগতে পারে।

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

শেষে এবং অনেক পরীক্ষার পর আমি সিদ্ধান্ত নিলাম

  • শুধুমাত্র ক্রমাঙ্কন সংরক্ষণের জন্য অ্যাডাফ্রুট লাইব্রেরি ব্যবহার করুন
  • BNO055 (NDOF, IMU, Compss) এর সম্ভাব্য মোডগুলির মধ্যে 3 টি ব্যবহার করুন
  • BNO055 mesurments এর উপর ভিত্তি করে স্থানীয়করণ গণনার জন্য একটি Arduino Nano উৎসর্গ করুন

ধাপ 3: Vue এর হার্ডওয়্যার পয়েন্ট

হার্ডওয়্যার পয়েন্ট অফ ভিউ
হার্ডওয়্যার পয়েন্ট অফ ভিউ
হার্ডওয়্যার পয়েন্ট অফ ভিউ
হার্ডওয়্যার পয়েন্ট অফ ভিউ
হার্ডওয়্যার পয়েন্ট অফ ভিউ
হার্ডওয়্যার পয়েন্ট অফ ভিউ

BNO055 একটি I2C উপাদান। তাই যোগাযোগের জন্য বিদ্যুৎ সরবরাহ, এসডিএ এবং এসসিএল প্রয়োজন।

আপনার কেনা পণ্য অনুযায়ী Vdd ভোল্টেজের যত্ন নিন। Bosch চিপ পরিসরে কাজ করে: 2.4V থেকে 3.6V এবং আপনি 3.3v এবং 5v কম্পোনেন্ট খুঁজে পেতে পারেন।

ন্যানো এবং BNO055 সংযোগের জন্য কোন অসুবিধা নেই।

  • BNO055 ন্যানো দ্বারা চালিত
  • এসডিএ এবং এসসিএল 2 x 2k পুল-আপ প্রতিরোধকগুলির সাথে সংযুক্ত।
  • 3 LED নির্ণয়ের জন্য ন্যানোর সাথে সংযুক্ত (প্রতিরোধক সহ)
  • বুট করার পরে মোড সংজ্ঞায়িত করতে 2 টি সংযোগকারী ব্যবহৃত হয়
  • BNO এর দিকে 1 সংযোগকারী (Gnd, Vdd, Sda, Scl, Int)
  • রোবট/মেগার দিকে 1 সংযোগকারী (+9V, Gnd, sda, Scl, Pin11, Pin12)

একটু সোল্ডারিং এবং এটাই!

ধাপ 4: এটি কিভাবে কাজ করে?

এটা কিভাবে কাজ করে ?
এটা কিভাবে কাজ করে ?

ভিউ এর যোগাযোগ বিন্দু থেকে:

  • ন্যানো হল I2C বাস মাস্টার
  • রোবট/মেগা এবং BNO055 হল I2C ক্রীতদাস
  • ন্যানো স্থায়ীভাবে BNO055 নিবন্ধন পড়ে
  • রোবট/মেগা ন্যানো থেকে শব্দটি অনুরোধ করার জন্য একটি সংখ্যাসূচক সংকেত বৃদ্ধি করে

গণনার বিন্দু থেকে: BNO055 এর সাথে মিলিত ন্যানো বিতরণ করে

  • কম্পাস শিরোনাম (স্থানীয়করণের জন্য ব্যবহৃত)
  • একটি আপেক্ষিক শিরোনাম (ঘূর্ণন নিয়ন্ত্রণ করতে ব্যবহৃত)
  • পরম শিরোনাম এবং অবস্থান (চাল নিয়ন্ত্রণ করতে ব্যবহৃত)

ভিউ এর কার্যকরী বিন্দু থেকে: ন্যানো:

  • BNO055 ক্রমাঙ্কন পরিচালনা করে
  • BNO055 প্যারামিটার এবং কমান্ড পরিচালনা করে

সাব সিস্টেম ন্যানো এবং BNO055:

  • প্রতিটি রোবট চাকার জন্য গণনা করুন পরম শিরোনাম এবং স্থানীয়করণ (একটি স্কেল ফ্যাক্টর সহ)
  • রোবটের ঘূর্ণনের সময় আপেক্ষিক শিরোনাম গণনা করুন

ধাপ 5: আর্কিটেকচার এবং সফটওয়্যার

আর্কিটেকচার এবং সফটওয়্যার
আর্কিটেকচার এবং সফটওয়্যার

আরডুইনো ন্যানোতে মূল সফটওয়্যার চলছে।

  • আর্কিটেকচার I2C যোগাযোগের উপর ভিত্তি করে।
  • আমি একটি ন্যানো উৎসর্গ করা বেছে নিলাম এই কারণে যে রোবটটি চালানো আটমেগা বরং আগে থেকেই লোড ছিল এবং এই স্থাপত্যটি অন্যত্র পুন reব্যবহার করা সহজ করে তোলে।
  • ন্যানো তার নিজের রেজিস্টারে BNO055 রেজিস্টার, কম্পিউট এবং স্টোর হেডিং এবং লোকালাইজেশন পড়ে।
  • Arduino Atmega যা রোবট কোড চালায়, ন্যানোতে চাকার এনকোডার তথ্য পাঠায় এবং ন্যানো রেজিস্টারের ভিতরে শিরোনাম এবং স্থানীয়করণ পড়ে।

গিটহাব -এ এখানে সাব -সিম (ন্যানো) কোড পাওয়া যায়

এডাফ্রুট ক্যালিব্রেশন টুল যদি এখানে GitHub এ থাকে (ক্রমাঙ্কন eeproom এ সংরক্ষণ করা হবে)

ধাপ 6: আমি কি শিখেছি?

I2C সম্পর্কে

প্রথমে আমি একই বাসে ২ জন মাস্টার (আরডুইনো) এবং ১ টি স্লেভ (সেন্সর) রাখার চেষ্টা করেছি কিন্তু শেষ পর্যন্ত শুধুমাত্র ন্যানোকে মাস্টার হিসাবে সেট করা এবং "টোকেনের অনুরোধ" করার জন্য ২ টি আরডুইনোর মধ্যে জিপিআইও সংযোগ ব্যবহার করা সহজ এবং সহজ। ।

2D ওরিয়েন্টেশনের জন্য BNO055 সম্পর্কিত

আমি 3 টি ভিন্ন চলমান মোডে মনোনিবেশ করতে পারি: NDOF (গাইরোস্কোপ, অ্যাকসিলেরোমিটার এবং কম্পাস একত্রিত করুন) যখন রোবটটি নিষ্ক্রিয় থাকে, IMU (গাইরোস্কোপ, অ্যাকসিলরোমিটার) যখন রোবট চলমান থাকে এবং স্থানীয়করণের পর্যায়ে কম্পাস। এই মোডগুলির মধ্যে স্যুইচ করা সহজ এবং দ্রুত।

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

প্রস্তাবিত: