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

SnappyXO Precise Mover Robot: 6 خطوات
SnappyXO Precise Mover Robot: 6 خطوات

فيديو: SnappyXO Precise Mover Robot: 6 خطوات

فيديو: SnappyXO Precise Mover Robot: 6 خطوات
فيديو: Tricycle Drive SnappyXO Robot 2024, شهر نوفمبر
Anonim
SnappyXO Precise Mover Robot
SnappyXO Precise Mover Robot

اجعل روبوت Arduino الخاص بك يتحرك مباشرة لمسافة محددة أو قم باللف إلى زاوية محددة باستخدام مكتبة PreciseMovement Arduino.

يحتاج الروبوت إلى عجلة دوارة أو ما يعادلها لتقليل الاحتكاك أثناء الالتواء.

www.pololu.com/product/954

يمكنك إخبار الروبوت أن يتقدم لمسافة محددة أو يلتف إلى زاوية محددة. يحدد البرنامج موقعه باستخدام الحساب الميت. نظرًا لأن تقديرات الموضع تعتمد فقط على سرعة العجلة ، فإن الانزلاق سيؤدي إلى حدوث خطأ كبير. يجب أن يكون مصمم الروبوت حريصًا على تقليل مخاطر الانزلاق.

تم اختبار هذا للعمل مع الروبوت SnappyXO.

الخطوة 1: تم تغيير موقع البرنامج التعليمي

تم نقل البرنامج التعليمي إلى الصفحة أدناه. لم يعد يتم الحفاظ على هذا البرنامج التعليمي.

sites.google.com/stonybrook.edu/premo

الخطوة الثانية: قم ببناء روبوت القيادة التفاضلية SnappyXO

مكتبة PreciseMovement التي سنستخدمها متوافقة فقط مع روبوتات القيادة التفاضلية. يمكنك اختيار استخدام روبوتات أخرى ذات دفع ثنائي.

الخطوة 3: قم بتوصيل الإلكترونيات

قم بتوصيل الإلكترونيات
قم بتوصيل الإلكترونيات

بالنسبة لجهاز التشفير البصري SnappyXO القياسي:

D0 (خرج المشفر) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

قوة المحرك واردوينو:

يجب أن يكون مصدر طاقة المحرك مناسبًا للمحركات التي تستخدمها. بالنسبة لمجموعة SnappyXO ، تُستخدم بطاريات 4AA لقوة المحرك وبطارية 9 فولت لطاقة Arduino. تأكد من أن لديهم جميعًا GND مشترك.

الخطوة 4: قم بتثبيت مكتبة PreciseMovement Arduino

تحميل:

github.com/jaean123/PreciseMovement-library/releases

كيفية تثبيت مكتبة Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

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

كود اردوينو:

create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

هذه المعلمات تتطلب التعديل. يمكن تعديل المعلمات الأخرى الموصوفة في الكود للحصول على أداء أفضل.

  • افحص واضبط دبابيس المحرك أسفل دبابيس ARDUINO.
  • اضبط الطول والراديوس.

    • LENGTH هي المسافة من العجلة اليسرى إلى العجلة اليمنى.
    • RADIUS هو نصف قطر العجلة.
  • قم بتعيين PULSES_PER_REV ، وهو عدد النبضات التي يخرجها المشفر لثورة عجلة واحدة.

    • لاحظ أن هذا يختلف عن عدد النبضات التي يخرجها المشفر لثورة عمود محرك واحد ما لم تكن المشفرات متصلة بالقراءة مباشرة من عمود العجلة.
    • PULSES_PER_REV = (نبضات لكل ثورة في عمود المحرك) × (نسبة التروس)
  • عيّن STOP_LENGTH إذا رأيت أن الروبوت يتجاوز السرعة بعد الحركة إلى الأمام.

    سيتوقف الروبوت بمجرد أن يكون الموضع المقدر على بعد STOP_LENGTH من الهدف. وبالتالي ، فإن STOP_LENGTH ، هي المسافة التقريبية المطلوبة حتى يتوقف الروبوت

  • معلمات PID

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

    KP_TW: هذا هو المكون النسبي لحركة التواء PID. ابدأ ببساطة من قيمة منخفضة وقم بزيادة هذا حتى تصبح سرعة الالتواء ، أو السرعة الزاوية للروبوت أثناء التواء ، سريعة بدرجة كافية ، ولكنها لا تسبب التجاوز. لإجراء الملاحظات ، يمكنك جعل الروبوت البديل من 0 إلى 90 والعكس عن طريق إدخال ما يلي في وظيفة الحلقة

ضع هذا في حلقة لضبط KP_FW:

المحرك إلى الأمام (99999) ؛

ضع هذا في حلقة للتبديل من 0 إلى 90 لضبط KP_TW:

mover.twist (90) ؛ // تويست 90 سي دبليو

تأخير (2000) ؛

mover.twist (-90) // تويست 90 CCW

تأخير (2000) ؛

لاحظ أنه من أجل تحريف السرعة الزاوية فعليًا عند TARGET_TWIST_OMEGA ، يجب أيضًا ضبط KI_TW نظرًا لأن وحدة التحكم النسبية لن تستقر أبدًا على الهدف المحدد. ومع ذلك ، ليس من الضروري الالتواء بهذه السرعة الزاوية بالضبط. يجب أن تكون السرعة الزاوية بطيئة بدرجة كافية.

الخطوة 6: كيف يعمل

إذا كنت مهتمًا بكيفية عملها ، فاقرأ.

يتم الحفاظ على الحركة إلى الأمام مستقيمة باستخدام خوارزمية السعي الخالص على مسار خط مستقيم.

يحاول جهاز التحكم الملتوي PID الحفاظ على السرعة الزاوية عند TARGET_TWIST_OMEGA. لاحظ أن هذه السرعة الزاوية هي السرعة الزاوية للروبوت بأكمله وليس العجلات. يتم استخدام وحدة تحكم PID واحدة والإخراج هو سرعة كتابة PWM لكل من المحركات اليمنى واليسرى. الحساب الميت يتم لحساب الزاوية. بمجرد أن تصل الزاوية إلى حد الخطأ ، يتوقف الروبوت.

موصى به: