جدول المحتويات:

طريقة استخدام وحدة القياس بالقصور الذاتي: 6 خطوات
طريقة استخدام وحدة القياس بالقصور الذاتي: 6 خطوات

فيديو: طريقة استخدام وحدة القياس بالقصور الذاتي: 6 خطوات

فيديو: طريقة استخدام وحدة القياس بالقصور الذاتي: 6 خطوات
فيديو: شرح طريقه القياس باستخدام الميكروميتر والقدمة ذات الورنية 2024, شهر نوفمبر
Anonim
طريقة لاستخدام وحدة القياس بالقصور الذاتي؟
طريقة لاستخدام وحدة القياس بالقصور الذاتي؟

السياق:

أنا أصنع من أجل المتعة روبوتًا أريد أن أتحرك فيه بشكل مستقل داخل المنزل.

إنه عمل طويل وأنا أقوم به خطوة بخطوة.

لقد نشرت بالفعل 2 تعليمات حول هذا الموضوع:

  • واحد حول صنع مشفر العجلة
  • واحد حول اتصال wifi

يتم تشغيل الروبوت الخاص بي بواسطة محركي DC بمساعدة جهاز تشفير العجلة المصنوع منزليًا.

أقوم حاليًا بتحسين التحكم في الحركة وقد أمضيت بعض الوقت مع الجيروسكوب ومقياس التسارع ووحدة IMU. يسعدني مشاركة هذه التجربة.

تريد معرفة المزيد عن الأقلمة؟ فيما يلي مقال حول كيفية الجمع بين الذكاء الاصطناعي والموجات فوق الصوتية لتحديد موقع الروبوت

الخطوة 1: لماذا نستخدم وحدة القياس بالقصور الذاتي؟

لماذا تستخدم وحدة القياس بالقصور الذاتي؟
لماذا تستخدم وحدة القياس بالقصور الذاتي؟

فلماذا أستخدم IMU؟

السبب الأول هو أنه إذا كان جهاز تشفير العجلة دقيقًا بدرجة كافية للتحكم في الحركة المستقيمة ، حتى بعد الضبط ، لم أتمكن من الحصول على دقة دوران أقل من + - 5 درجات وهذا لا يكفي.

لذلك جربت مستشعرين مختلفين. أولاً أستخدم مقياس المغناطيسية (LSM303D). كان المبدأ بسيطًا: قبل الدوران ، احصل على الاتجاه الشمالي ، واحسب الهدف واضبط الحركة حتى يتم الوصول إلى الهدف. كان أفضل قليلاً من مع التشفير ولكن مع تشتت للغاية. بعد ذلك حاولت استخدام الجيروسكوب (L3GD20). كان المبدأ هو فقط دمج سرعة الدوران التي يوفرها المستشعر لحساب الدوران. وعملت بشكل جيد. تمكنت من التحكم في الدوران عند درجة + - 1 درجة.

ومع ذلك كنت أشعر بالفضول لتجربة بعض IMU. اخترت مكون BNO055. قضيت بعض الوقت لفهم واختبار IMU. في النهاية قررت اختيار هذا المستشعر للأسباب التالية

  • يمكنني التحكم في الدوران وكذلك مع L3GD20
  • يمكنني اكتشاف دوران طفيف عند التحرك بشكل مستقيم
  • أحتاج إلى الحصول على اتجاه الشمال لتوطين الروبوت ومعايرة البوصلة لـ BNO055 بسيطة للغاية

الخطوة الثانية: كيفية استخدام BNO055 للترجمة ثنائية الأبعاد؟

كيفية استخدام BNO055 للترجمة ثنائية الأبعاد؟
كيفية استخدام BNO055 للترجمة ثنائية الأبعاد؟

BNO055 IMU عبارة عن مستشعر ذكي من 9 محاور من Bosch يمكنه توفير التوجيه المطلق.

توفر ورقة البيانات وثائق كاملة. إنه مكون عالي التقنية ، هل هو منتج معقد إلى حد ما وقد أمضيت بضع ساعات لأتعلم كيف يعمل وأجرّب طرقًا مختلفة لاستخدامه.

أعتقد أنه قد يكون من المفيد مشاركة هذه التجربة.

أولاً ، استخدمت مكتبة Adafruit التي توفر أداة جيدة لمعايرة المستشعر واكتشافه.

في النهاية وبعد الكثير من الاختبارات قررت ذلك

  • استخدم مكتبة Adafruit لحفظ المعايرة فقط
  • استخدم 3 من جميع الأوضاع الممكنة لـ BNO055 (NDOF ، IMU ، Compss)
  • خصص Arduino Nano لحساب الترجمة بناءً على قياسات BNO055

الخطوة 3: نقطة الأجهزة في Vue

نقطة الأجهزة في Vue
نقطة الأجهزة في Vue
نقطة الأجهزة في Vue
نقطة الأجهزة في Vue
نقطة الأجهزة في Vue
نقطة الأجهزة في Vue

BNO055 هو مكون I2C. لذلك فهي تحتاج إلى مصدر طاقة و SDA و SCL للتواصل.

فقط اعتني بجهد Vdd وفقًا للمنتج الذي اشتريته. تعمل شريحة Bosch في النطاق: 2.4 فولت إلى 3.6 فولت ويمكنك العثور على مكون 3.3 فولت و 5 فولت.

لا توجد صعوبات في توصيل Nano و BNO055.

  • يتم تشغيل BNO055 بواسطة Nano
  • SDA و SCL متصلان بمقاومات سحب 2 × 2 كيلو.
  • 3 LED متصلة بالنانو للتشخيص (بمقاومات)
  • 2 موصلات تستخدم لتحديد الوضع بعد التمهيد
  • 1 موصل باتجاه BNO (Gnd ، Vdd ، Sda ، Scl ، Int)
  • 1 موصل نحو الروبوت / ميجا (+ 9V ، Gnd ، sda ، Scl ، Pin11 ، Pin12)

قليلا من اللحام وهذا كل شيء!

الخطوة 4: كيف يعمل؟

كيف يعمل ؟
كيف يعمل ؟

من نقطة الاتصال:

  • نانو هو سيد الحافلة I2C
  • الروبوت / ميجا و BNO055 هم عبيد I2C
  • قراءة Nano بشكل دائم سجلات BNO055
  • يقوم الروبوت / ميجا برفع إشارة رقمية لطلب الكلمة من نانو

من نقطة الحساب: يسلم Nano مع BNO055

  • عنوان البوصلة (يستخدم في الترجمة)
  • عنوان نسبي (يستخدم للتحكم في التدوير)
  • العنوان والموضع المطلقان (يستخدمان للتحكم في التحركات)

من وجهة النظر الوظيفية: The Nano:

  • يدير معايرة BNO055
  • يدير معلمات وأوامر BNO055

النظام الفرعي Nano & BNO055:

  • حساب لكل عجلات روبوت العنوان المطلق والتوطين (مع عامل التدرج)
  • حساب العنوان النسبي أثناء دوران الروبوت

الخطوة 5: الهندسة المعمارية والبرمجيات

العمارة والبرمجيات
العمارة والبرمجيات

يعمل البرنامج الرئيسي على Arduino Nano

  • تعتمد الهندسة المعمارية على اتصالات I2C.
  • لقد اخترت تخصيص نانو نظرًا لحقيقة أن Atmega الذي يدير الروبوت تم تحميله بالفعل ، وهذه البنية تجعل من الأسهل إعادة استخدامها في مكان آخر.
  • يقرأ Nano سجلات BNO055 ويحسبها ويخزن العنوان والترجمة في سجلاته الخاصة.
  • Arduino Atmega الذي يقوم بتشغيل كود الروبوت ، يرسل معلومات مشفرات العجلات إلى Nano ويقرأ العناوين والترجمة داخل سجلات Nano.

يوجد رمز فرعي (نانو) متاح هنا على جيثب

أداة معايرة Adafruit إذا كانت موجودة هنا على GitHub (سيتم تخزين المعايرة على eeproom)

الخطوة السادسة: ماذا تعلمت؟

بخصوص I2C

أولاً ، حاولت الحصول على 2 ماستر (Arduino) و 1 تابع (مستشعر) على نفس الحافلة ولكن في النهاية من الممكن والأسهل تعيين Nano فقط كسيد واستخدام اتصال GPIO بين 2 Arduinos لـ "طلب الرمز المميز".

بخصوص BNO055 للتوجه ثنائي الأبعاد

يمكنني التركيز على 3 أوضاع تشغيل مختلفة: NDOF (الجمع بين الجيروسكوب ومقياس التسارع والبوصلة) عندما يكون الروبوت خاملاً ، و IMU (جيروسكوب مدمج ومقياس تسارع) عندما يتحرك الروبوت والبوصلة أثناء مرحلة التوطين. التبديل بين هذه الأوضاع سهل وسريع.

لتقليل حجم الكود والحفاظ على إمكانية استخدام مقاطعة BNO055 لاكتشاف التصادم ، أفضل عدم استخدام مكتبة Adafruit والقيام بذلك بمفردي.

موصى به: