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

Raspberry Pi - ADXL345 3-Axis Accelerometer Python Tutorial: 4 Steps
Raspberry Pi - ADXL345 3-Axis Accelerometer Python Tutorial: 4 Steps

فيديو: Raspberry Pi - ADXL345 3-Axis Accelerometer Python Tutorial: 4 Steps

فيديو: Raspberry Pi - ADXL345 3-Axis Accelerometer Python Tutorial: 4 Steps
فيديو: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, شهر نوفمبر
Anonim

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

الخطوة 1: ماذا تحتاج..

ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!

1. Raspberry Pi

2. ADXL345

3. كابل I²C

4. I²C Shield لـ Raspberry Pi

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

الخطوة الثانية: التوصيل:

اتصال
اتصال
اتصال
اتصال
اتصال
اتصال
اتصال
اتصال

خذ درع I2C لـ Raspberry Pi وادفعه برفق فوق دبابيس gpio الخاصة بـ Raspberry Pi.

ثم قم بتوصيل أحد طرفي كابل I2C بمستشعر ADXL345 والطرف الآخر بدرع I2C.

قم أيضًا بتوصيل كبل Ethernet بـ pi أو يمكنك استخدام وحدة WiFi.

تظهر الاتصالات في الصورة أعلاه.

الخطوة الثالثة: الكود:

الشفرة
الشفرة

يمكن تنزيل كود python لـ ADXL345 من مستودع GitHub - Dcube Store

هنا هو الرابط لنفسه:

github.com/DcubeTechVentures/ADXL345..

لقد استخدمنا مكتبة SMBus لرمز Python ، يتم وصف خطوات تثبيت SMBus على Raspberry Pi هنا:

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

يمكنك أيضًا نسخ الكود من هنا ، ويُعطى على النحو التالي:

# موزعة بترخيص الإرادة الحرة.

# استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أو مجانًا ، بشرط أن تتناسب مع تراخيص الأعمال المرتبطة بها.

# ADXL345

# تم تصميم هذا الرمز للعمل مع الوحدة النمطية ADXL345_I2CS I2C المصغرة المتوفرة في Dcube Store.

استيراد smbus

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

# احصل على حافلة I2C

الحافلة = 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

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

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

موصى به: