قياس الزاوية باستخدام مقياس الجيروسكوب والتسارع والاردوينو: 5 خطوات
قياس الزاوية باستخدام مقياس الجيروسكوب والتسارع والاردوينو: 5 خطوات
Anonim

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

الخطوة الأولى: ما سنحتاجه:

يمكن استبدال جزء ما ، ويجب إجراء بعض التعديلات على الكود ليناسب أجهزتك. في هذا المشروع ، سنستخدم: - اللوح - متحكم دقيق ، استخدمت Arduinoboard - سلك - أسلاك توصيل - Gyroscope XV-8100 - Nunchuck Wii (لمقياس التسارع) - محول Nunchuck Wii لـ Arduino

الخطوة الثانية: البناء …

تتكون الدائرة من جيروسكوب متصل مباشرة بالمنفذ 0 في اردوينو الخاص بك و nunchuck wii متصل بمنفذ I2C. - قم بتوصيل الجيروسكوب في اللوح 2. - سلك من أي وقت مضى: - فو دبوس من جيروسكوب متصل بالمنفذ التناظري 0 في اردوينو (سلك برتقالي فاتح) - دبوس G من جيروسكوب متصل بالأرض (سلك أبيض) - V + دبوس من جيروسكوب متصل بـ Vdd (3.3V) (سلك برتقالي) مقياس التسارع: 1. - قم بتوصيل المحول في nunchuck2. - قم بتوصيل nunchuck في اردوينو باستخدام المحول 3. - ضع مستشعر السرعة مثل الصورة أعلاه

الخطوة 3: بعض المعلومات الإضافية قبل المتابعة

من كلا المستشعرين يمكننا قياس الزاوية ولكن باستخدام طريقتين مختلفتين ، لقياس الزاوية باستخدام الجيروسكوب علينا دمج الإشارة ، ولكن لماذا يتعين علينا القيام بذلك؟ نظرًا لأن الدوران يعطينا المعدل الزاوي ، فإن الطريقة البسيطة للحصول على الزاوية هي ضرب المعدل الزاوي في الوقت [زاوية = زاوية + ث * دت] لقياس الزاوية باستخدام مقياس التسارع ، علينا أن نشعر بالجاذبية في كل منهما محور مقياس التسارع ، ما يعنيه ، إن إسقاط تسارع الجاذبية على كل اتجاه من اتجاه المستشعر يعطينا فكرة عن الزاوية. [angle_accel = arctg (Ay / sqrt (Ax ^ 2 + Az ^ 2))] فلماذا نستخدم مستشعرين بدلاً من واحد؟ للاستفادة من خصائص كل من المستشعرات. إذا نظرت إلى الرسم البياني ، فإن الزيادة المستمرة في بيانات الدوران تسمى الانجراف وتتغير بيانات مقياس التسارع كثيرًا في وقت قصير ، وكيف يتم دمج كلتا الإشارتين؟ لا أعرف بالضبط النظرية الكامنة وراء ذلك ، لكنها تعمل بشكل جيد. هناك بعض المعلومات على الإنترنت ، ما عليك سوى البحث عنها في google إذا كنت بحاجة إلى مزيد من المعلومات. يحتوي هذا الرابط على الكثير من المعلومات ويمكن أن يكون مفيدًا. حيث HPF + LPF = 1 يمكن العثور على قيم HPF و LPF على هذا الرابط ، في ملف filter.pdf. شكرًا لكم يا رفاق من "The DIY Segway". لغرض الاختبار فقط ، سنضع هذه القيم مثل هذه ، HPF = 0.98 و LPF = 0.02.

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

الرمز هو اقتباس من رمز استخدمته في مشروع آخر. ربما هناك بعض المتغيرات غير مستخدمة ، لقد استخدمت مكتبة لقراءة بيانات nunchuck من https://todbot.com/blog/. شكرًا لك Tod E. Kurt التعليقات على الكود باللغة البرتغالية ، بمجرد أن يكون لدي وقت فراغ ، سأقوم بترجمته. إخراج الكود من خلال السطر التسلسلي بعض الأرقام مع هذا النمط: dt: w: teta: Pitch: filter_teta $ time: angular_velocity: gyro_angle: Accel_angle: filtered_angle $ لذا يمكنك حفظ هذه القيم في محطة تسلسلية ورسم رسم أو استخدام الزاوية لأشياء أخرى ، إذا كنت بحاجة إلى أي شرح حول الكود فلا تتردد في طرحه ، الكود هو مضغوط. فقط قم بفك الضغط وفتحه وتحميله على اردوينو الخاص بك.

الخطوة 5: الاختبار والاستنتاج

لاختبار النظام ، قمت بحفظ البيانات باستخدام برنامج يسمى Termite ، ثم قم باستيراد هذه البيانات في Excel ورسم الرسم البياني لمعرفة مدى جودة الفلتر الخاص بي. النتائج مذهلة. بالطبع يمكنك استخدام الإشارة لقيادة محرك أو أشياء أخرى ، أي تعليقات ، أي شك ، أي معلومات مفقودة ، أخبرني فقط وأنا أصححها ، من فضلك إذا أعجبك هذا ، قيم ، شكرًا لكم جميعًا.