جدول المحتويات:
- الخطوة 1: الأجهزة المطلوبة:
- الخطوة 2: ربط الأجهزة:
- الخطوة الثالثة: رمز تتبع الحركة:
- الخطوة 4: التطبيقات:
فيديو: تتبع الحركة باستخدام MPU-6000 و Raspberry Pi: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
MPU-6000 عبارة عن مستشعر تتبع للحركة من 6 محاور يحتوي على مقياس تسارع ثلاثي المحاور وجيروسكوب ثلاثي المحاور مضمن فيه. هذا المستشعر قادر على التتبع الفعال للموضع الدقيق وموقع كائن ما في المستوى ثلاثي الأبعاد. يمكن استخدامه في الأنظمة التي تتطلب تحليل الموقع بأعلى دقة.
في هذا البرنامج التعليمي ، تم توضيح واجهة وحدة الاستشعار MPU-6000 مع raspberry pi. لقراءة قيم التسارع وزاوية الدوران ، استخدمنا raspberry pi مع محول I2c ، يجعل هذا المحول I2C الاتصال بوحدة المستشعر أسهل وأكثر موثوقية.
الخطوة 1: الأجهزة المطلوبة:
تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:
1. MPU-6000
2. Raspberry Pi
3. كابل I2C
4. I2C شيلد للتوت باي
5. كابل إيثرنت
الخطوة 2: ربط الأجهزة:
يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر و raspberry pi. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:
سيعمل MPU-6000 فوق I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.
خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك.
كل ما تحتاجه هو أربعة أسلاك! مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة الثالثة: رمز تتبع الحركة:
تتمثل ميزة استخدام raspberry pi في أنه يوفر لك مرونة لغة البرمجة التي تريد برمجة اللوحة بها لربط المستشعر بها. من خلال الاستفادة من هذه الميزة في هذه اللوحة ، نعرض هنا برمجتها بلغة الثعبان. Python هي واحدة من أسهل لغات البرمجة بأسهل بناء جملة. يمكن تنزيل كود python الخاص بـ MPU-6000 من مجتمع GitHub الخاص بنا وهو Dcube Store
ولسهولة المستخدمين ، نقوم بشرح الكود هنا أيضًا:
كخطوة أولى في الترميز ، تحتاج إلى تنزيل مكتبة SMBus في حالة Python لأن هذه المكتبة تدعم الوظائف المستخدمة في الكود. لذلك ، لتنزيل المكتبة يمكنك زيارة الرابط التالي:
pypi.python.org/pypi/smbus-cffi/0.5.1
يمكنك نسخ كود العمل من هنا أيضا:
استيراد smbus
وقت الاستيراد
# احصل على I2C busbus = smbus. SMBus (1)
# عنوان MPU-6000 ، 0x68 (104)
# حدد سجل تكوين جيروسكوب ، 0x1B (27)
# 0x18 (24) نطاق المقياس الكامل = 2000 نقطة في الثانية
bus.write_byte_data (0x68 ، 0x1B ، 0x18)
# عنوان MPU-6000 ، 0x68 (104)
# حدد سجل تكوين مقياس التسارع ، 0x1C (28)
# 0x18 (24) نطاق المقياس الكامل = +/- 16 جم
bus.write_byte_data (0x68 ، 0x1C ، 0x18)
# عنوان MPU-6000 ، 0x68 (104)
# حدد سجل إدارة الطاقة 1 ، 0x6B (107)
# 0x01 (01) PLL بمرجع xGyro
bus.write_byte_data (0x68 ، 0x6B ، 0x01)
time.sleep (0.8).
# عنوان MPU-6000 ، 0x68 (104)
# قراءة البيانات مرة أخرى من 0x3B (59) ، 6 بايت
# مقياس التسارع X-Axis MSB ، X-Axis LSB ، Y-Axis MSB ، Y-Axis LSB ، Z-Axis MSB ، Z-Axis LSB
data = bus.read_i2c_block_data (0x68، 0x3B، 6)
# تحويل البيانات
xAccl = بيانات [0] * 256 + بيانات [1]
إذا كان xAccl> 32767:
xAccl - = 65536
yAccl = بيانات [2] * 256 + بيانات [3]
إذا كان yAccl> 32767:
yAccl - = 65536
zAccl = بيانات [4] * 256 + بيانات [5]
إذا كان zAccl> 32767:
zAccl - = 65536
# عنوان MPU-6000 ، 0x68 (104)
# قراءة البيانات مرة أخرى من 0x43 (67) ، 6 بايت
# Gyrometer X-Axis MSB ، X-Axis LSB ، Y-Axis MSB ، Y-Axis LSB ، Z-Axis MSB ، Z-Axis LSB
data = bus.read_i2c_block_data (0x68، 0x43، 6)
# تحويل البيانات
xGyro = بيانات [0] * 256 + بيانات [1]
إذا كان xGyro> 32767:
xGyro - = 65536
yGyro = بيانات [2] * 256 + بيانات [3]
إذا كان yGyro> 32767:
yGyro - = 65536
zGyro = بيانات [4] * 256 + بيانات [5]
إذا كان zGyro> 32767:
zGyro - = 65536
# إخراج البيانات إلى الشاشة
طباعة "تسريع في المحور X:٪ d"٪ xAccl
طباعة "تسريع في المحور ص:٪ d"٪ yAccl
طباعة "تسريع في المحور Z:٪ d"٪ zAccl
طباعة "المحور السيني للاستدارة:٪ d"٪ xGyro
طباعة "المحور ص للاستدارة:٪ d"٪ yGyro
اطبع "Z-Axis of Rotation:٪ d"٪ zGyro
يتم تنفيذ الكود باستخدام الأمر التالي:
$> python MPU-6000.py GT. بيثون MPU-6000.py
يظهر خرج المستشعر في الصورة أعلاه كمرجع للمستخدم.
الخطوة 4: التطبيقات:
MPU-6000 عبارة عن مستشعر تتبع الحركة ، والذي يجد تطبيقه في واجهة الحركة للهواتف الذكية والأجهزة اللوحية. في الهواتف الذكية ، يمكن استخدام هذه المستشعرات في تطبيقات مثل أوامر الإيماءات للتطبيقات والتحكم في الهاتف ، والألعاب المحسّنة ، والواقع المعزز ، والتقاط الصور البانورامية وعرضها ، وملاحة المشاة والمركبة. يمكن لتقنية MotionTracking تحويل الهواتف المحمولة والأجهزة اللوحية إلى أجهزة ذكية ثلاثية الأبعاد قوية يمكن استخدامها في تطبيقات تتراوح من مراقبة الصحة واللياقة البدنية إلى الخدمات المستندة إلى الموقع.
موصى به:
QeMotion - تتبع الحركة لكل سماعة: 5 خطوات (بالصور)
QeMotion - تتبع الحركة لكل سماعة رأس!: نظرة عامة: يتيح لك هذا الجهاز الاستفادة من حركة رأسك لإثارة الأحداث في أي لعبة فيديو بشكل أساسي. إنه يعمل عن طريق تتبع حركة رأسك (أو سماعة الرأس التي تتعلق بها) وتشغيل ضغطات لوحة المفاتيح لحركات معينة. لذا شركاتك
تتبع متغيرات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: 6 خطوات
تتبع تباينات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: لم أسافر ، كنت أختبر الجاذبية. لا يزال يعمل … أوضح تمثيل لمكوك فضاء متسارع أن الساعة في أعلى نقطة في المكوك ستختار أسرع من ساعة في القاعدة بسبب تمدد زمن الجاذبية. بعض
عيون حركة تتبع الحركة: 8 خطوات (بالصور)
عيون حركة تتبع الحركة: يستخدم مشروع Arduino مستشعر التدفق البصري (ADNS3080) لالتقاط الحركة. ثم قم بترجمة البيانات لتحريك المؤازرة مما يجعلها تبدو وكأن العيون تتبع جسمًا متحركًا
تتبع الحركة ثلاثية الأبعاد من Tfcd من خلال الاستشعار بالسعة وإخراج LED: 6 خطوات (بالصور)
تتبع الحركة ثلاثية الأبعاد Tfcd من خلال الاستشعار بالسعة وإخراج LED: يتم شرح كيفية تتبع حركة اليد في مساحة ثلاثية الأبعاد باستخدام مبدأ الاستشعار بالسعة. بتغيير المسافة بين ورق الألمنيوم المشحون ويدك ، ستختلف سعة المكثف
منفذ التحكم في الحركة - من ضوء استشعار الحركة: 6 خطوات
منفذ التحكم في الحركة - من ضوء استشعار الحركة: & nbsp؛ تخيل أنك خدعة أو مخلص تذهب إلى أكثر منزل مخيف في المبنى. بعد تجاوز كل الغول والأشباح والمقابر ، تصل أخيرًا إلى المسار الأخير. يمكنك رؤية الحلوى في وعاء أمامك! ولكن بعد ذلك فجأة