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

Raspberry Pi - ADXL345 مقياس تسارع ثلاثي المحاور جافا تعليمي: 4 خطوات
Raspberry Pi - ADXL345 مقياس تسارع ثلاثي المحاور جافا تعليمي: 4 خطوات

فيديو: Raspberry Pi - ADXL345 مقياس تسارع ثلاثي المحاور جافا تعليمي: 4 خطوات

فيديو: Raspberry Pi - ADXL345 مقياس تسارع ثلاثي المحاور جافا تعليمي: 4 خطوات
فيديو: Raspberry Pi ADXL345 3-Axis Accelerometer Java Tutorial 2024, سبتمبر
Anonim
Image
Image

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

الخطوة 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.

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

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

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

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

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

github.com/DcubeTechVentures/ADXL345

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

pi4j.com/install.html

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

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

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

// ADXL345

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

استيراد com.pi4j.io.i2c. I2CBus ؛

استيراد com.pi4j.io.i2c. I2CDevice ؛

استيراد com.pi4j.io.i2c. I2CFactory ؛

استيراد java.io. IOException ؛

فئة عامة ADXL345

{

يطرح main static void main (String args ) استثناء

{

// إنشاء ناقل I2C

ناقل I2CBus = I2CFactory.getInstance (I2CBus. BUS_1) ،

// احصل على جهاز I2C ، عنوان I2C للجهاز هو 0x53 (83)

جهاز I2CDevice = Bus.getDevice (0x53) ،

// حدد سجل معدل عرض النطاق الترددي

// الوضع العادي ، معدل بيانات الإخراج = 100 هرتز

device.write (0x2C ، (بايت) 0x0A) ؛

// حدد سجل التحكم في الطاقة

// تعطيل النوم التلقائي

device.write (0x2D ، (بايت) 0x08) ؛

// حدد سجل تنسيق البيانات

// تم تعطيل الاختبار الذاتي ، واجهة بأربعة أسلاك ، دقة كاملة ، النطاق = +/- 2 جم

device.write (0x31 ، (بايت) 0x08) ؛

Thread.sleep (500) ؛

// قراءة 6 بايت من البيانات

// xAccl lsb و xAccl msb و yAccl lsb و yAccl msb و zAccl lsb و zAccl msb

بايت بيانات = بايت جديد [6] ؛

البيانات [0] = (بايت) device.read (0x32) ؛

البيانات [1] = (بايت) device.read (0x33) ؛

البيانات [2] = (بايت) device.read (0x34) ؛

البيانات [3] = (بايت) device.read (0x35) ؛

البيانات [4] = (بايت) device.read (0x36) ؛

البيانات [5] = (بايت) device.read (0x37) ؛

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

int xAccl = ((data [1] & 0x03) * 256 + (data [0] & 0xFF)) ؛

إذا (xAccl> 511)

{

xAccl - = 1024 ؛

}

int yAccl = ((data [3] & 0x03) * 256 + (data [2] & 0xFF)) ؛

إذا (yAccl> 511)

{

yAccl - = 1024 ؛

}

int zAccl = ((data [5] & 0x03) * 256 + (data [4] & 0xFF)) ؛

إذا (zAccl> 511)

{

zAccl - = 1024 ؛

}

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

System.out.printf ("تسريع في المحور X:٪ d٪ n"، xAccl)؛

System.out.printf ("تسريع في المحور ص:٪ d٪ n"، yAccl)؛

System.out.printf ("تسريع في المحور Z:٪ d٪ n"، zAccl)؛

}

}

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

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

موصى به: