فهرست مطالب:

ربات حرکت دهنده دقیق SnappyXO: 6 مرحله
ربات حرکت دهنده دقیق SnappyXO: 6 مرحله

تصویری: ربات حرکت دهنده دقیق SnappyXO: 6 مرحله

تصویری: ربات حرکت دهنده دقیق SnappyXO: 6 مرحله
تصویری: درآمد ۱ ملیونی تو ۲۰ ثانیه ربات تشخیص ضریب بازی انفجار 2024, نوامبر
Anonim
ربات حرکت دهنده دقیق SnappyXO
ربات حرکت دهنده دقیق SnappyXO

با استفاده از کتابخانه PreciseMovement Arduino ، ربات آردوینو خود را با مسافت مشخص مستقیم حرکت دهید یا به زاویه مشخص بپیچید.

این ربات به یک کاستور توپ نورد یا معادل آن احتیاج دارد تا اصطکاک را هنگام چرخاندن به حداقل برساند.

www.pololu.com/product/954

می توانید به ربات بگویید که با فاصله مشخص جلو برود یا با زاویه مشخص بچرخد. برنامه موقعیت خود را با استفاده از حساب مرده تعیین می کند. از آنجا که برآورد موقعیت تنها بر سرعت چرخ متکی است ، لغزش خطای قابل توجهی را ایجاد می کند. طراح روبات باید مراقب باشد تا خطر سر خوردن را به حداقل برساند.

این مورد برای کار با ربات SnappyXO آزمایش شده است.

مرحله 1: مکان آموزش تغییر کرد

آموزش به صفحه زیر منتقل شده است. این آموزش دیگر نگهداری نمی شود.

sites.google.com/stonybrook.edu/premo

مرحله 2: ساخت ربات دیفرانسیل SnappyXO

کتابخانه PreciseMovement که ما از آن استفاده خواهیم کرد فقط با روبات های دیفرانسیل درایو سازگار است. شما می توانید از روبات های 2 چرخ محرک دیگر استفاده کنید.

مرحله 3: دستگاه الکترونیک را وصل کنید

الکترونیک را وصل کنید
الکترونیک را وصل کنید

برای رمزگذار نوری استاندارد SnappyXO:

D0 (خروجی رمزگذار) -> پین دیجیتال Arduino

VCC -> آردوینو 5 ولت

GND -> GND

موتور و قدرت آردوینو:

منبع تغذیه موتور باید برای موتورهای مورد استفاده شما مناسب باشد. برای کیت SnappyXO ، باتری 4AA برای قدرت موتور و باتری 9V برای قدرت آردوینو استفاده می شود. اطمینان حاصل کنید که همه آنها GND مشترک دارند.

مرحله 4: PreciseMovement Arduino Library را نصب کنید

دانلود:

github.com/jaean123/PreciseMovement-library/releases

نحوه نصب کتابخانه آردوینو:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

مرحله 5: کد

کد آردوینو:

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

این پارامترها نیاز به تنظیم دارند. سایر پارامترهای برچسب گذاری شده بر روی کد را می توان برای عملکرد بهتر تنظیم کرد.

  • پین های موتور را در قسمت ARDUINO PINS بررسی و تنظیم کنید.
  • LENGTH و RADIUS را تنظیم کنید.

    • LENGTH فاصله از چرخ چپ تا چرخ راست است.
    • RADIUS شعاع چرخ است.
  • PULSES_PER_REV را تنظیم کنید ، که تعداد پالس های خروجی رمزگذار برای یک دور چرخ است.

    • توجه داشته باشید این با تعداد پالس خروجی های رمزگذار برای یک دور محور موتور متفاوت است ، مگر اینکه رمزگذارها به طور مستقیم از محور چرخ بخوانند.
    • PULSES_PER_REV = (پالس در هر دور محور موتور) x (نسبت دنده)
  • اگر مشاهده کردید که ربات پس از حرکت رو به جلو است ، STOP_LENGTH را تنظیم کنید.

    وقتی موقعیت تخمینی STOP_LENGTH از هدف فاصله داشته باشد ، ربات متوقف می شود. بنابراین ، STOP_LENGTH ، فاصله تقریبی مورد نیاز برای توقف روبات است

  • پارامترهای PID

    KP_FW: این جزء متناسب حرکت رو به جلو است. این را تا زمانی که ربات مستقیماً حرکت می کند افزایش دهید. اگر نمی توانید با تنظیم این کار مستقیماً پیش بروید ، سخت افزار به احتمال زیاد در اشتباه است. (به عنوان مثال ، نامناسب بودن چرخ ، و غیره)

    KP_TW: این جزء متناسب PID حرکت پیچشی است. به سادگی از یک مقدار کم شروع کنید و این مقدار را افزایش دهید تا سرعت چرخش یا سرعت زاویه ای روبات در حین چرخش به اندازه کافی سریع باشد ، اما باعث افزایش بیش از حد نشود. برای انجام مشاهدات ، می توانید با قرار دادن موارد زیر در تابع حلقه ، ربات را از 0 تا 90 و عقب متناوب کنید

این را برای تنظیم KP_FW در حلقه قرار دهید:

mover.forward (99999)؛

این را به صورت متناوب از 0 تا 90 برای تنظیم KP_TW در حلقه قرار دهید:

mover.twist (90)؛ // پیچش 90 CW

تاخیر (2000) ؛

mover.twist (-90) // Twist 90 CCW

تاخیر (2000) ؛

توجه داشته باشید که برای چرخاندن سرعت زاویه ای در TARGET_TWIST_OMEGA ، KI_TW نیز باید تنظیم شود زیرا یک کنترل کننده متناسب هرگز به هدف دقیق متصل نمی شود. با این حال ، لازم نیست با آن سرعت دقیق زاویه ای بچرخید. سرعت زاویه ای فقط باید به اندازه کافی کند باشد.

مرحله 6: چگونه کار می کند

اگر درباره نحوه کار کنجکاو هستید ، ادامه مطلب را بخوانید.

حرکت رو به جلو با استفاده از الگوریتم تعقیب خالص در یک مسیر مستقیم مستقیم نگه داشته می شود. بیشتر در پیگیری خالص:

کنترل کننده PID پیچشی سعی می کند سرعت زاویه ای چرخش را در TARGET_TWIST_OMEGA حفظ کند. توجه داشته باشید که این سرعت زاویه ای سرعت زاویه ای کل ربات است نه چرخ ها. فقط یک کنترلر PID استفاده می شود و خروجی سرعت نوشتن PWM موتورهای چپ و راست است. محاسبه مرده برای محاسبه زاویه انجام می شود. هنگامی که زاویه به آستانه خطا می رسد ، ربات متوقف می شود.

توصیه شده: