جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
BMA250 عبارة عن مقياس تسارع صغير ، رفيع ، منخفض الطاقة ، ثلاثي المحاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2C. يقيس التسارع الثابت للجاذبية في تطبيقات استشعار الميل ، وكذلك التسارع الديناميكي الناتج عن الحركة أو الصدمة. تتيح الدقة العالية (3.9 مجم / LSB) قياس تغيرات الميل أقل من 1.0 درجة.
سنقوم في هذا البرنامج التعليمي بقياس التسارع في جميع المحاور الثلاثة العمودية باستخدام BMA250 والفوتون الجسيمي.
الخطوة 1: الأجهزة المطلوبة:
تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:
1. BMA250
2. جسيم الفوتون
3. كابل I2C
4. I2C Shield للفوتون الجسيمي
الخطوة 2: ربط الأجهزة:
يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر وفوتون الجسيمات. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:
سيعمل BMA250 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.
خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!
مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة 3: كود لقياس التسارع:
لنبدأ الآن برمز الجسيمات.
أثناء استخدام وحدة الاستشعار مع arduino ، نقوم بتضمين مكتبة application.h و spark_wiring_i2c.h. تحتوي مكتبة "application.h" و spark_wiring_i2c.h على الوظائف التي تسهل اتصال i2c بين المستشعر والجسيم.
يتم توفير رمز الجسيمات بالكامل أدناه لراحة المستخدم:
#يشمل
#يشمل
// عنوان BMA250 I2C هو 0x18 (24)
#define Addr 0x18
int xAccl = 0، yAccl = 0، zAccl = 0 ؛
الإعداد باطل()
{
// تعيين متغير
Particle.variable ("i2cdevice"، "BMA250") ؛
Particle.variable ("xAccl" ، xAccl) ؛
Particle.variable ("yAccl" ، yAccl) ؛
Particle.variable ("zAccl"، zAccl) ؛
// تهيئة اتصال I2C باعتباره MASTER
Wire.begin () ؛
// تهيئة الاتصال التسلسلي ، اضبط معدل الباود = 9600
Serial.begin (9600) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل اختيار النطاق
Wire.write (0x0F) ؛
// مجموعة النطاق +/- 2 جرام
Wire.write (0x03) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل النطاق الترددي
Wire.write (0x10) ؛
// ضبط النطاق الترددي 7.81 هرتز
Wire.write (0x08) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
تأخير (300) ؛}
حلقة فارغة()
{
بيانات int غير موقعة [0] ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجلات البيانات (0x02 - 0x07)
Wire.write (0x02) ؛
// إيقاف ناقل الحركة I2C
Wire.endTransmission () ؛
// طلب 6 بايت
Wire.request From (Addr، 6) ؛
// اقرأ الستة بايت
// xAccl lsb و xAccl msb و yAccl lsb و yAccl msb و zAccl lsb و zAccl msb
إذا (Wire.available () == 6)
{
البيانات [0] = Wire.read () ،
البيانات [1] = Wire.read () ،
البيانات [2] = Wire.read () ؛
البيانات [3] = Wire.read () ؛
البيانات [4] = Wire.read () ؛
البيانات [5] = Wire.read () ؛
}
تأخير (300) ؛
// تحويل البيانات إلى 10 بت
xAccl = ((data [1] * 256) + (data [0] & 0xC0)) / 64 ؛
إذا (xAccl> 511)
{
xAccl - = 1024 ؛
}
yAccl = ((data [3] * 256) + (data [2] & 0xC0)) / 64 ؛
إذا (yAccl> 511)
{
yAccl - = 1024 ؛
}
zAccl = ((data [5] * 256) + (data [4] & 0xC0)) / 64 ؛
إذا (zAccl> 511)
{
zAccl - = 1024 ؛
}
// إخراج البيانات إلى لوحة القيادة
Particle.publish ("Acceleration in X-Axis:"، String (xAccl))؛
تأخير (1000) ؛
Particle.publish ("Acceleration in Y-Axis:"، String (yAccl))؛
تأخير (1000) ؛
Particle.publish ("تسريع في المحور Z:" ، سلسلة (zAccl)) ؛
تأخير (1000) ؛
}
تنشئ الدالة Particle.variable () المتغيرات لتخزين إخراج المستشعر وتعرض وظيفة Particle.publish () الإخراج على لوحة القيادة بالموقع.
يظهر خرج المستشعر في الصورة أعلاه للرجوع إليها.
الخطوة 4: التطبيقات:
تجد مقاييس التسارع مثل BMA250 في الغالب تطبيقاتها في الألعاب وتغيير ملف التعريف. يتم استخدام وحدة الاستشعار هذه أيضًا في نظام إدارة الطاقة المتقدم لتطبيقات الهاتف المحمول. BMA250 عبارة عن مستشعر تسريع رقمي ثلاثي المحاور مدمج مع وحدة تحكم المقاطعة الذكية على الرقاقة.
موصى به:
قياس التسارع باستخدام ADXL345 والفوتون الجسيمي: 4 خطوات
قياس التسارع باستخدام ADXL345 والفوتون الجسيمي: إن ADXL345 هو مقياس تسارع صغير ورفيع وقوة منخفضة للغاية وثلاثة محاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2 C. يقيس
قياس التسارع باستخدام H3LIS331DL والفوتون الجسيمي: 4 خطوات
قياس التسارع باستخدام H3LIS331DL والفوتون الجسيمي: H3LIS331DL ، هو مقياس تسارع خطي منخفض الطاقة وعالي الأداء ثلاثي المحاور ينتمي إلى عائلة "نانو" ، مع واجهة تسلسلية رقمية I²C. يحتوي H3LIS331DL على مقاييس كاملة يمكن اختيارها من قبل المستخدم تبلغ ± 100 جم / ± 200 جم / ± 400 جم وهي قادرة على قياس التسارع
قياس الضغط باستخدام CPS120 والفوتون الجسيمي: 4 خطوات
قياس الضغط باستخدام CPS120 والفوتون الجسيمي: CPS120 عبارة عن مستشعر ضغط مطلق سعوي عالي الجودة ومنخفض التكلفة مع إخراج معوض بالكامل. يستهلك طاقة أقل ويتألف من مستشعر ميكانيكي كهروميكانيكي صغير جدًا (MEMS) لقياس الضغط. دلتا سيجما
قياس درجة الحرارة باستخدام STS21 والفوتون الجسيمي: 4 خطوات
قياس درجة الحرارة باستخدام STS21 وفوتون الجسيمات: يوفر مستشعر درجة الحرارة الرقمي STS21 أداءً فائقًا وبصمة موفرة للمساحة. يوفر إشارات خطية معايرة بتنسيق رقمي I2C. يعتمد تصنيع هذا المستشعر على تقنية CMOSens ، والتي تنسب إلى
قياس درجة الحرارة باستخدام ADT75 والفوتون الجسيمي: 4 خطوات
قياس درجة الحرارة باستخدام ADT75 والفوتون الجسيمي: ADT75 هو مستشعر درجة حرارة رقمي عالي الدقة. وهو يتألف من مستشعر درجة حرارة فجوة النطاق ومحول تناظري رقمي 12 بت لمراقبة درجة الحرارة ورقمنتها. مستشعره شديد الحساسية يجعله كفؤًا بدرجة كافية بالنسبة لي