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

قياس التسارع باستخدام BMA250 و Arduino Nano: 4 خطوات
قياس التسارع باستخدام BMA250 و Arduino Nano: 4 خطوات

فيديو: قياس التسارع باستخدام BMA250 و Arduino Nano: 4 خطوات

فيديو: قياس التسارع باستخدام BMA250 و Arduino Nano: 4 خطوات
فيديو: NVH Data Averaging in the Statistic Pool - Get started with ArtemiS Suite 2/8 2024, شهر نوفمبر
Anonim
Image
Image

BMA250 عبارة عن مقياس تسارع صغير ، رفيع ، منخفض الطاقة ، ثلاثي المحاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2C. يقيس التسارع الثابت للجاذبية في تطبيقات استشعار الميل ، وكذلك التسارع الديناميكي الناتج عن الحركة أو الصدمة. تتيح الدقة العالية (3.9 مجم / LSB) قياس تغيرات الميل أقل من 1.0 درجة.

سنقوم في هذا البرنامج التعليمي بقياس التسارع في جميع المحاور الثلاثة العمودية باستخدام BMA250 و Arduino Nano.

الخطوة 1: الأجهزة المطلوبة:

الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة

تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:

1. BMA250

2. اردوينو نانو

3. كابل I2C

4. I2C Shield لاردوينو نانو

الخطوة 2: ربط الأجهزة:

ربط الأجهزة
ربط الأجهزة
ربط الأجهزة
ربط الأجهزة

يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر واردوينو. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:

سيعمل BMA250 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.

خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!

مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.

هذه الوصلات موضحة في الصور أعلاه.

الخطوة الثالثة: كود اردوينو لقياس التسارع:

كود اردوينو لقياس التسارع
كود اردوينو لقياس التسارع
كود اردوينو لقياس التسارع
كود اردوينو لقياس التسارع

لنبدأ برمز Arduino الآن.

أثناء استخدام وحدة الاستشعار مع Arduino ، نقوم بتضمين مكتبة Wire.h. تحتوي مكتبة "Wire" على الوظائف التي تسهل اتصال i2c بين المستشعر ولوحة Arduino.

يتم تقديم كود Arduino بالكامل أدناه لراحة المستخدم:

#يشمل

// عنوان BMA250 I2C هو 0x18 (24)

#define Addr 0x18

الإعداد باطل()

{

// تهيئة اتصال 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 بت

float xAccl = ((data [1] * 256.0) + (data [0] & 0xC0)) / 64 ؛

إذا (xAccl> 511)

{

xAccl - = 1024 ؛

}

float yAccl = ((data [3] * 256.0) + (data [2] & 0xC0)) / 64 ؛

إذا (yAccl> 511)

{

yAccl - = 1024 ؛

}

float zAccl = ((data [5] * 256.0) + (data [4] & 0xC0)) / 64 ؛

إذا (zAccl> 511)

{

zAccl - = 1024 ؛

}

// إخراج البيانات إلى الشاشة التسلسلية

Serial.print ("تسريع في المحور X:") ؛

Serial.println (xAccl) ؛

Serial.print ("تسريع في المحور ص:") ؛

Serial.println (yAccl) ؛

Serial.print ("تسريع في المحور Z:") ؛

Serial.println (zAccl) ؛

}

في مكتبة الأسلاك ، يتم استخدام Wire.write () و Wire.read () لكتابة الأوامر وقراءة إخراج المستشعر. يتم استخدام Serial.print () و Serial.println () لعرض إخراج المستشعر على الشاشة التسلسلية لـ Arduino IDE.

يظهر خرج المستشعر في الصورة أعلاه.

الخطوة 4: التطبيقات:

التطبيقات
التطبيقات

تجد مقاييس التسارع مثل BMA250 في الغالب تطبيقاتها في الألعاب وتغيير ملف التعريف. يتم استخدام وحدة الاستشعار هذه أيضًا في نظام إدارة الطاقة المتقدم لتطبيقات الهاتف المحمول. BMA250 عبارة عن مستشعر تسريع رقمي ثلاثي المحاور مدمج مع وحدة تحكم المقاطعة الذكية على الرقاقة.

موصى به: