جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
MMA8452Q هو مقياس تسارع ذكي ، منخفض الطاقة ، ثلاثي المحاور ، سعوي ، دقيق ميكانيكي مع دقة 12 بت. يتم توفير خيارات المستخدم القابلة للبرمجة المرنة بمساعدة الوظائف المضمنة في مقياس التسارع ، والتي يمكن تكوينها إلى دبابيس للمقاطعة. إنه يحتوي على مقاييس كاملة يمكن اختيارها من قبل المستخدم تبلغ ± 2g / ± 4g / ± 8g مع بيانات مصفاة عالية التمرير بالإضافة إلى البيانات غير المفلترة المتاحة في الوقت الفعلي. هذا هو العرض التوضيحي مع Raspberry Pi باستخدام كود Python.
الخطوة 1: ماذا تحتاج..
1. Raspberry Pi
2. MMA8452Q
3. كابل I²C
4. I²C Shield لـ Raspberry Pi
5. كابل إيثرنت
الخطوة الثانية: التوصيلات:
خذ درع I2C لـ Raspberry Pi وادفعه برفق فوق دبابيس gpio الخاصة بـ Raspberry Pi.
ثم قم بتوصيل أحد طرفي كابل I2C بمستشعر MMA8452Q والطرف الآخر بدرع I2C.
قم أيضًا بتوصيل كبل Ethernet بـ pi أو يمكنك استخدام وحدة WiFi.
تظهر الاتصالات في الصورة أعلاه.
الخطوة الثالثة: الكود:
يمكن تنزيل كود python الخاص بـ MMA8452Q من مستودع جيثب الخاص بنا - ControlEverythingCommunity
ها هو الرابط الالكتروني.
لقد استخدمنا مكتبة SMBus لرمز Python ، يتم وصف خطوات تثبيت SMBus على Raspberry Pi هنا:
pypi.python.org/pypi/smbus-cffi/0.5.1
يمكنك أيضًا نسخ الكود من هنا ، ويُعطى على النحو التالي:
# موزعة بترخيص الإرادة الحرة.
# استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أو مجانًا ، بشرط أن تتناسب مع تراخيص الأعمال المرتبطة بها.
# MMA8452Q
# تم تصميم هذا الرمز للعمل مع الوحدة المصغرة MMA8452Q_I2CS I2C.
استيراد smbus
وقت الاستيراد
# احصل على حافلة I2C
الحافلة = smbus. SMBus (1)
# عنوان MMA8452Q ، 0x1C (28)
# حدد سجل التحكم ، 0x2A (42)
# 0x00 (00) وضع الاستعداد
bus.write_byte_data (0x1C ، 0x2A ، 0x00)
# عنوان MMA8452Q ، 0x1C (28)
# حدد سجل التحكم ، 0x2A (42)
# 0x01 (01) الوضع النشط
bus.write_byte_data (0x1C ، 0x2A ، 0x01)
# عنوان MMA8452Q ، 0x1C (28)
# حدد سجل التكوين ، 0x0E (14)
# 0x00 (00) اضبط النطاق على +/- 2g
bus.write_byte_data (0x1C ، 0x0E ، 0x00)
وقت النوم (0.5)
# عنوان MMA8452Q ، 0x1C (28)
# قراءة البيانات مرة أخرى من 0x00 (0) ، 7 بايت
# سجل الحالة ، X-Axis MSB ، X-Axis LSB ، Y-Axis MSB ، Y-Axis LSB ، Z-Axis MSB ، Z-Axis LSB
data = bus.read_i2c_block_data (0x1C، 0x00، 7)
# تحويل البيانات
xAccl = (البيانات [1] * 256 + البيانات [2]) / 16
إذا كان xAccl> 2047:
xAccl - = 4096
yAccl = (البيانات [3] * 256 + البيانات [4]) / 16
إذا كان yAccl> 2047:
yAccl - = 4096 ض
Accl = (data [5] * 256 + data [6]) / 16
إذا كان zAccl> 2047:
zAccl - = 4096
# إخراج البيانات إلى الشاشة
طباعة "تسريع في المحور X:٪ d"٪ xAccl
طباعة "تسريع في المحور ص:٪ d"٪ yAccl
طباعة "تسريع في المحور Z:٪ d"٪ zAccl
الخطوة 4: التطبيقات:
يحتوي MMA8452Q على العديد من التطبيقات التي تشمل تطبيقات البوصلة الإلكترونية ، واكتشاف الاتجاه الثابت الذي يتضمن تحديد الوضع الرأسي / الأفقي ، أعلى / أسفل ، يسار / يمين ، تحديد الموضع الخلفي / الأمامي ، الكمبيوتر المحمول ، القارئ الإلكتروني ، واكتشاف السقوط الحر والحاسوب المحمول ، في الوقت الفعلي الكشف عن الاتجاه بما في ذلك الواقع الافتراضي وملاحظات موقع المستخدم ثلاثية الأبعاد للألعاب ، وتحليل النشاط في الوقت الفعلي مثل عد خطوات عداد الخطى ، واكتشاف السقوط الحر لمحرك الأقراص الصلبة ، والنسخ الاحتياطي لنظام تحديد المواقع العالمي (GPS) الميت الحساب وغير ذلك الكثير.