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

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

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

فيديو: قياس التسارع باستخدام ADXL345 و Raspberry Pi: 4 خطوات
فيديو: Klipper input shaping - A leap forward in high speed AND high quality 3D printing [Rat Rig part 4] 2024, شهر نوفمبر
Anonim
Image
Image

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

في هذا البرنامج التعليمي ، تم توضيح واجهة وحدة استشعار ADXL345 مع raspberry pi كما تم توضيح برمجتها باستخدام لغة python. لقراءة قيم التسارع على جميع المحاور الثلاثة ، استخدمنا raspberry pi مع محول I2C هذا المحول I2C يجعل الاتصال بوحدة المستشعر أسهل وأكثر موثوقية.

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

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

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

1. ADXL345

2. Raspberry Pi

3. كابل I2C

4. I2C شيلد للتوت باي

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يمكنك نسخ كود بيثون العامل لهذا المستشعر من هنا أيضًا:

استيراد smbus

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

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

# ADXL345 عنوان ، 0x53 (83)

# حدد تسجيل معدل النطاق الترددي ، 0x2C (44)

# 0x0A (10) الوضع العادي ، معدل بيانات الإخراج = 100 هرتز

bus.write_byte_data (0x53 ، 0x2C ، 0x0A)

# ADXL345 عنوان ، 0x53 (83)

# حدد سجل التحكم في الطاقة ، 0x2D (45)

# 0x08 (08) تعطيل وضع السكون التلقائي

bus.write_byte_data (0x53 ، 0x2D ، 0x08)

# ADXL345 عنوان ، 0x53 (83)

# حدد تسجيل تنسيق البيانات ، 0x31 (49)

# 0x08 (08) الاختبار الذاتي معطل ، واجهة بأربعة أسلاك

# دقة كاملة ، النطاق = +/- 2g

bus.write_byte_data (0x53 ، 0x31 ، 0x08)

وقت النوم (0.5)

# ADXL345 عنوان ، 0x53 (83)

# قراءة البيانات مرة أخرى من 0x32 (50) ، 2 بايت

# X-Axis LSB ، X-Axis MSB

data0 = bus.read_byte_data (0x53، 0x32)

data1 = bus.read_byte_data (0x53، 0x33)

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

xAccl = ((data1 & 0x03) * 256) + data0

إذا كان xAccl> 511:

xAccl - = 1024

# ADXL345 عنوان ، 0x53 (83)

# قراءة البيانات مرة أخرى من 0x34 (52) ، 2 بايت

# Y- المحور LSB ، المحور Y MSB

data0 = bus.read_byte_data (0x53، 0x34)

data1 = bus.read_byte_data (0x53، 0x35)

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

yAccl = ((data1 & 0x03) * 256) + data0

إذا كان yAccl> 511:

yAccl - = 1024

# ADXL345 عنوان ، 0x53 (83)

# قراءة البيانات مرة أخرى من 0x36 (54) ، 2 بايت

# Z- المحور LSB ، Z- المحور MSB

data0 = bus.read_byte_data (0x53، 0x36)

data1 = bus.read_byte_data (0x53، 0x37)

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

zAccl = ((data1 & 0x03) * 256) + data0

إذا كان zAccl> 511:

zAccl - = 1024

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

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

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

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

يتضمن جزء الكود المذكور أدناه المكتبات المطلوبة للتنفيذ الصحيح لأكواد بايثون.

وقت استيراد smbusimport

يمكن تنفيذ الكود عن طريق كتابة الأمر المذكور أدناه في موجه الأوامر.

$> python ADXL345.py

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

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

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

ADXL345 عبارة عن مقياس تسارع صغير ورفيع للغاية ومنخفض السرعة ثلاثي المحاور يمكن استخدامه في الهواتف والأجهزة الطبية وما إلى ذلك. ويشمل تطبيقه أيضًا أجهزة الألعاب والتأشير والأجهزة الصناعية وأجهزة الملاحة الشخصية وحماية محرك الأقراص الثابتة (HDD).

موصى به: