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

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

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

فيديو: قياس التسارع باستخدام BMA250 و Raspberry Pi: 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 و Raspberry Pi. تمت برمجة المستشعر بلغة بيثون.

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

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

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

1. BMA250

2. Raspberry Pi

3. كابل I2C

4. I2C Shield لـ Raspberry Pi

5. كابل إيثرنت

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

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

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

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

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

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

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

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

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

تتمثل ميزة استخدام raspberry pi في أنه يوفر لك مرونة لغة البرمجة التي تريد برمجة اللوحة من أجل واجهة المستشعر معها. من خلال الاستفادة من هذه الميزة في هذه اللوحة ، نعرض هنا برمجتها بلغة الثعبان. Python هي واحدة من أسهل لغات البرمجة بأسهل بناء جملة. يمكن تنزيل كود python لـ BMA250 من مجتمع GitHub الخاص بنا وهو Dcube Store

ولسهولة المستخدمين ، نقوم بشرح الكود هنا أيضًا:

كخطوة أولى في الترميز ، تحتاج إلى تنزيل مكتبة SMBus في حالة Python لأن هذه المكتبة تدعم الوظائف المستخدمة في الكود. لذلك ، لتنزيل المكتبة يمكنك زيارة الرابط التالي:

pypi.python.org/pypi/smbus-cffi/0.5.1

يمكنك نسخ كود العمل من هنا أيضا:

استيراد smbus

وقت الاستيراد

# احصل على I2C busbus = smbus. SMBus (1)

# عنوان BMA250 ، 0x18 (24)

# سجل اختيار النطاق ، 0x0F (15)

# 0x03 (03) ضبط النطاق = +/- 2 غيغابايت. الكتابة_ بايت_بيانات (0x18 ، 0x0F ، 0x03)

# BMA250 عنوان ، 0x18 (24) # حدد سجل النطاق الترددي ، 0x10 (16)

عرض النطاق الترددي # 0x08 (08) = 7.81 Hzbus.write_byte_data (0x18 ، 0x10 ، 0x08)

وقت النوم (0.5)

# عنوان BMA250 ، 0x18 (24)

# قراءة البيانات مرة أخرى من 0x02 (02) ، 6 بايت

# X-Axis LSB ، X-Axis MSB ، Y-Axis LSB ، Y-Axis MSB ، Z-Axis LSB ، Z-Axis MSB

data = bus.read_i2c_block_data (0x18، 0x02، 6)

# تحويل البيانات إلى 10 بت

xAccl = (البيانات [1] * 256 + (البيانات [0] & 0xC0)) / 64

إذا كان xAccl> 511:

xAccl - = 1024

yAccl = (البيانات [3] * 256 + (البيانات [2] & 0xC0)) / 64

إذا كان yAccl> 511:

yAccl - = 1024

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

إذا كان zAccl> 511:

zAccl - = 1024

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

طباعة "تسريع في المحور X:٪ d"٪ xAccl

طباعة "تسريع في المحور ص:٪ d"٪ yAccl

طباعة "تسريع في المحور Z:٪ d"٪ zAccl

يتم تنفيذ الكود باستخدام الأمر التالي:

$> python BMA250.py GT. بيثون BMA250.py

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

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

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

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

موصى به: