قياس زاوية الدوران والتّسارع باستخدام الرّاسبيري باي

تعتبر حسّاسات زاوية الدّوران والتّسارع من أكثر الحسّاسات استخداماً هي الهواتف الذكيّة، حيث يمكن قياس زاوية دوران الجهاز وتسجيل النّتيجة مباشرةً.
يمكن باستخدام الرّاسبيري باي وحسّاس التّوازن / التّسارع (Gyroscope / Accelerator sensor) قياس زاوية الدّوران والتّسارع على المحاور الثّلاثة.
في هذا المقال سنستعرض كيفيّة استخدام حسّاس MPU 6050 وكيفيّة قراءة القيم باستخدام الواجهة I2C.

حسّاس زاوية الدّوران والتّسارع
حسّاس زاوية الدّوران والتّسارع

 المكوّنات:

– لوحة راسبيري باي.
– حسّاس تسارع.
– أسلاك توصيل.

يمتلك الحسّاس رجلين اثنتين إحداهما منحنية، حيث قمنا بلحام الرّجل المنحنية مع لوح الحسّاس للاستفادة من المساحة المتوفّرة كما هو موضّح في الشّكل

حساس التسارع 
حساس التسارع

 

التّوصيل:

ما يميّز الواجهة I2C هو استخدام عدد قليل من الأرجل، حيث نحتاج إلى وصل الأقطاب الأربعة العليا من أقطاب الحسّاس الثّمانية، كالتّالي:

Raspberry Pi MPU 6050
Pin 1 (3.3V) VCC
Pin 3 (SDA) SDA
Pin 5 (SCL) SCL
Pin 6 (GND) GND

توصيل حسّاس التّسارع.
توصيل حسّاس التّسارع.

 تفعيل I2C على الرّاسبيري باي:

بداية نقوم بتفعيل كل من SPI وI2C كالتّالي:

sudo raspi-config

ستظهر قائمة خدمات التّفعيل، ومنها نختار خيارات متقدّمة (8. Advanced Options), ومن ثمّ نفعّل الخيار (A7 I2C).

ملاحظة:

من الممكن أن يكون هناك اختلاف بسيط حسب إصدار الرّاسبيري باي المستخدم، حيث أنّه في الإصدارات القديمة تكون الخيارات في الملف (/etc/modprobe.d/raspi-blacklist.conf) وتكون مسبوقة بـ (#)،

ومن ثمّ نقوم بتعديل ملف الوحدات (Modules).

sudo nano /etc/modules

إذا لم تجد السّطرين التّاليين قم بإضافتهما وإعادة تشغيل الراسبيري باي (sudo reboot).

i2cbcm2708
i2cdev

يمكننا بسهولة تنصيب الأدوات اللازمة.

sudo apt-get install i2c-tools python-smbus

فلنقم الآن باختبار صغير، يشير البارامتر(y 1-) إلى الإصدار 2 (revision 2)، إذا كان الراسبيري باي قديم جدّاً (قبل 2013) قم بوضع الرّقم 0 بدلاً من الرّقم 1.

sudo i2cdetect -y 1

إذا كان حسّاس الجيروسكوب موصولاً بشكل صحيح ستلاحظ الخرج التّالي (وإذا كان هناك واجهة I2C أخرى متّصلة فسيتم عرض عناوينها السّت عشريّة):

pi@raspberrypi ~ $ sudo i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

لمخاطبة الجهاز قم بتحديد العنوان السّت عشري 68 حيث قم بإدخال التّالي للريجيستر:

sudo i2cget -y 1 0x68 0x75

قراءة وحدة MPU-6050:

أفضل طريقة لقراءة حسّاس التّسارع هي البايثون، حيث نقوم بإنشاء ملف ونلصق الكود البرمجي التّالي:

sudo nano gyro.py

الكود البرمجيّ : التحميل من هنا

قم بحفظ التغييرات CTRL + O وقم بالخروج من المحرّر CTRL + X, ومن ثمّ قم بتشغيل لسّكريبت

sudo python gyro.py

سيظهر خرج موضّحاً كل البيانات المقاسة

Gyroskop
--------
gyroskop_xout:   -260  skaliert:  -2
gyroskop_yout:   -154  skaliert:  -2
gyroskop_zout:     78  skaliert:  0

Beschleunigungssensor
---------------------
beschleunigung_xout:   -1048  skaliert:  -0.06396484375
beschleunigung_yout:    -676  skaliert:  -0.041259765625
beschleunigung_zout:   16644  skaliert:  1.01586914062
X Rotation:  -2.32121150537
Y Rotation:  3.59994842011

إذا كنت تريد معرفة المزيد عن مقاييس التّسارع والجيروسكوب يمكنك قراءة المقال التالي:

اضغط هنا 

فيديو يوضّح استخدام الحسّاس:


ترجمة: عدي ناصر, مراجعة: عبدالله الفارس, تدقيق لغوي: سلام أحمد, تصميم: علي العلي, تحرير:قحطان غانم.
المصدر: هنا

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *