
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53


MPU-6000 عبارة عن مستشعر تتبع للحركة من 6 محاور يحتوي على مقياس تسارع ثلاثي المحاور وجيروسكوب ثلاثي المحاور مضمن فيه. هذا المستشعر قادر على التتبع الفعال للموضع الدقيق وموقع كائن ما في المستوى ثلاثي الأبعاد. يمكن استخدامه في الأنظمة التي تتطلب تحليل الموقع بأعلى دقة.
في هذا البرنامج التعليمي ، تم توضيح التفاعل بين وحدة الاستشعار MPU-6000 مع فوتون الجسيمات. لقراءة قيم التسارع وزاوية الدوران ، استخدمنا الجسيمات مع محول I2c ، هذا المحول I2C يجعل الاتصال بوحدة المستشعر أسهل وأكثر موثوقية.
الخطوة 1: الأجهزة المطلوبة:



تشمل المواد المطلوبة لإنجاز مهمتنا مكونات الأجهزة المذكورة أدناه:
1. MPU-6000
2. جسيم الفوتون
3. كابل I2C
4. I2C Shield للفوتون الجسيمي
الخطوة 2: ربط الأجهزة:


يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر وفوتون الجسيمات. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:
سيعمل MPU-6000 فوق I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.
خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!
مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة الثالثة: رمز تتبع الحركة:

لنبدأ الآن برمز الجسيمات.
أثناء استخدام وحدة الاستشعار مع arduino ، نقوم بتضمين مكتبة application.h و spark_wiring_i2c.h. تحتوي مكتبة "application.h" و spark_wiring_i2c.h على الوظائف التي تسهل اتصال i2c بين المستشعر والجسيم.
يتم توفير رمز الجسيمات بالكامل أدناه لراحة المستخدم:
# include # include // عنوان MPU-6000 I2C هو 0x68 (104) #define Addr 0x68 int xGyro = 0، yGyro = 0، zGyro = 0، xAccl = 0، yAccl = 0، zAccl = 0 ؛ إعداد باطل () {// تعيين متغير Particle.variable ("i2cdevice"، "MPU-6000") ؛ Particle.variable ("xAccl" ، xAccl) ؛ Particle.variable ("yAccl" ، yAccl) ؛ Particle.variable ("zAccl"، zAccl) ؛ Particle.variable ("xGyro" ، xGyro) ؛ Particle.variable ("yGyro" ، yGyro) ؛ Particle.variable ("zGyro"، zGyro) ؛ // تهيئة اتصال I2C باعتباره Master Wire.begin () ؛ // تهيئة الاتصال التسلسلي ، ضبط معدل الباود = 9600 Serial.begin (9600) ؛ // بدء تحويل I2C Wire.beginTransmission (Addr) ؛ // حدد سجل تكوين جيروسكوب Wire.write (0x1B) ؛ // نطاق المقياس الكامل = 2000 dps Wire.write (0x18) ؛ // إيقاف سلك نقل I2C.endTransmission () ؛ // بدء تحويل I2C Wire.beginTransmission (Addr) ؛ // حدد سجل تكوين مقياس التسارع Wire.write (0x1C) ؛ // نطاق المقياس الكامل = +/- 16 جرام Wire.write (0x18) ؛ // إيقاف سلك نقل I2C.endTransmission () ؛ // بدء تحويل I2C Wire.beginTransmission (Addr) ؛ // حدد سجل إدارة الطاقة Wire.write (0x6B) ؛ // PLL مع مرجع xGyro Wire.write (0x01) ؛ // إيقاف سلك نقل I2C.endTransmission () ؛ تأخير (300) ؛ } void loop () {unsigned int data [6]؛ // بدء تحويل I2C Wire.beginTransmission (Addr) ؛ // حدد سجل البيانات Wire.write (0x3B) ؛ // إيقاف سلك نقل I2C.endTransmission () ؛ // طلب 6 بايت من البيانات Wire.requestFrom (Addr، 6) ؛ // قراءة 6 بايت من البيانات إذا (Wire.available () == 6) {data [0] = Wire.read ()؛ البيانات [1] = Wire.read () ، البيانات [2] = Wire.read () ، البيانات [3] = Wire.read () ؛ البيانات [4] = Wire.read () ؛ البيانات [5] = Wire.read () ؛ } تأخير (800)؛ // تحويل البيانات xAccl = ((البيانات [1] * 256) + البيانات [0]) ؛ إذا (xAccl> 32767) {xAccl - = 65536 ؛ } yAccl = ((data [3] * 256) + data [2]) ؛ إذا (yAccl> 32767) {yAccl - = 65536 ؛ } zAccl = ((data [5] * 256) + data [4]) ؛ إذا (zAccl> 32767) {zAccl - = 65536 ؛ } تأخير (800)؛ // بدء تحويل I2C Wire.beginTransmission (Addr) ؛ // حدد سجل البيانات Wire.write (0x43) ؛ // إيقاف سلك نقل I2C.endTransmission () ؛ // طلب 6 بايت من البيانات Wire.requestFrom (العنوان ، 6) ؛ // قراءة 6 بايت من البيانات إذا (Wire.available () == 6) {data [0] = Wire.read ()؛ البيانات [1] = Wire.read () ، البيانات [2] = Wire.read () ؛ البيانات [3] = Wire.read () ؛ البيانات [4] = Wire.read () ؛ البيانات [5] = Wire.read () ؛ } // تحويل البيانات xGyro = ((البيانات [1] * 256) + البيانات [0]) ؛ إذا (xGyro> 32767) {xGyro - = 65536 ؛ } yGyro = ((data [3] * 256) + data [2]) ؛ إذا (yGyro> 32767) {yGyro - = 65536 ؛ } zGyro = ((data [5] * 256) + data [4]) ؛ إذا (zGyro> 32767) {zGyro - = 65536 ؛ } // إخراج البيانات إلى لوحة أجهزة القياس Particle.publish ("تسريع في المحور X:" ، سلسلة (xAccl)) ؛ تأخير (1000) ؛ Particle.publish ("Acceleration in Y-Axis:"، String (yAccl))؛ تأخير (1000) ؛ Particle.publish ("تسريع في المحور Z:" ، سلسلة (zAccl)) ؛ تأخير (1000) ؛ Particle.publish ("X-Axis of Rotation:"، String (xGyro)) ؛ تأخير (1000) ؛ Particle.publish ("Y-Axis of Rotation:"، String (yGyro)) ؛ تأخير (1000) ؛ Particle.publish ("Z-Axis of Rotation:"، String (zGyro)) ؛ تأخير (1000) ؛ }
تنشئ الدالة Particle.variable () المتغيرات لتخزين إخراج المستشعر وتعرض وظيفة Particle.publish () الإخراج على لوحة القيادة بالموقع.
يظهر خرج المستشعر في الصورة أعلاه للرجوع إليها.
الخطوة 4: التطبيقات:

MPU-6000 عبارة عن مستشعر تتبع الحركة ، والذي يجد تطبيقه في واجهة الحركة للهواتف الذكية والأجهزة اللوحية. في الهواتف الذكية ، يمكن استخدام هذه المستشعرات في تطبيقات مثل أوامر الإيماءات للتطبيقات والتحكم في الهاتف ، والألعاب المحسّنة ، والواقع المعزز ، والتقاط الصور البانورامية وعرضها ، وملاحة المشاة والمركبة. يمكن لتقنية MotionTracking تحويل الهواتف المحمولة والأجهزة اللوحية إلى أجهزة ذكية ثلاثية الأبعاد قوية يمكن استخدامها في تطبيقات تتراوح من مراقبة الصحة واللياقة البدنية إلى الخدمات المستندة إلى الموقع.
موصى به:
قياس المجال المغناطيسي باستخدام HMC5883 والفوتون الجزيئي: 4 خطوات

قياس المجال المغناطيسي باستخدام HMC5883 والفوتون الجسيمي: HMC5883 عبارة عن بوصلة رقمية مصممة للاستشعار المغناطيسي للمجال المنخفض. يحتوي هذا الجهاز على نطاق مجال مغناطيسي عريض +/- 8 Oe ومعدل إخراج يبلغ 160 هرتز. يشتمل مستشعر HMC5883 على برامج تشغيل أوتوماتيكية لأحزمة إزالة المغنطة وإلغاء الإزاحة و
قياس الرطوبة باستخدام HYT939 والفوتون الجزيئي: 4 خطوات

قياس الرطوبة باستخدام HYT939 وفوتون الجسيمات: HYT939 هو مستشعر رطوبة رقمي يعمل على بروتوكول اتصال I2C. الرطوبة هي عامل محوري عندما يتعلق الأمر بالنظم الطبية والمختبرات ، لذلك من أجل تحقيق هذه الأهداف ، حاولنا ربط HYT939 مع التوت باي. أنا
قياس درجة الحرارة باستخدام MCP9803 والفوتون الجزيئي: 4 خطوات

قياس درجة الحرارة باستخدام MCP9803 والفوتون الجسيمي: MCP9803 عبارة عن مستشعر درجة حرارة عالي الدقة بسلكين. وهي مُجسَّدة بسجلات قابلة للبرمجة بواسطة المستخدم تسهل تطبيقات استشعار درجة الحرارة. هذا المستشعر مناسب لنظام مراقبة درجة الحرارة متعدد المناطق المتطور للغاية
مراقبة درجة الحرارة باستخدام MCP9808 والفوتون الجزيئي: 4 خطوات

مراقبة درجة الحرارة باستخدام MCP9808 والفوتون الجسيمي: MCP9808 عبارة عن مستشعر درجة حرارة رقمي عالي الدقة ± 0.5 درجة مئوية وحدة صغيرة I2C. وهي مُجسَّدة بسجلات قابلة للبرمجة بواسطة المستخدم تسهل تطبيقات استشعار درجة الحرارة. أصبح مستشعر درجة الحرارة عالي الدقة MCP9808 صناعة
مراقبة درجة الحرارة والرطوبة باستخدام SHT25 والفوتون الجزيئي: 5 خطوات

مراقبة درجة الحرارة والرطوبة باستخدام SHT25 والفوتون الجزيئي: لقد عملنا مؤخرًا على مشاريع مختلفة تتطلب مراقبة درجة الحرارة والرطوبة ثم أدركنا أن هاتين المعلمتين تلعبان بالفعل دورًا محوريًا في الحصول على تقدير لكفاءة عمل النظام. كلاهما في الصناعة