تعتبر حسّاسات زاوية الدّوران والتّسارع من أكثر الحسّاسات استخداماً في الهواتف الذكيّة، حيث يمكن قياس زاوية دوران الجهاز وتسجيل النّتيجة مباشرةً.
يمكن باستخدام الرّاسبيري باي وحسّاس التّوازن / التّسارع (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).
يمكننا بسهولة تنصيب الأدوات اللازمة.
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
إذا كنت تريد معرفة المزيد عن مقاييس التّسارع والجيروسكوب يمكنك قراءة المقال التالي:
اضغط هنا
فيديو يوضّح استخدام الحسّاس:
ترجمة: عدي ناصر, مراجعة: عبدالله الفارس, تدقيق لغوي: سلام أحمد, تصميم: علي العلي, تحرير:قحطان غانم.
المصدر: هنا