فهرست مطالب:

ردیاب مبتنی بر PID با ربات حسگر POLOLU QTR 8RC: 6 مرحله (همراه با تصاویر)
ردیاب مبتنی بر PID با ربات حسگر POLOLU QTR 8RC: 6 مرحله (همراه با تصاویر)

تصویری: ردیاب مبتنی بر PID با ربات حسگر POLOLU QTR 8RC: 6 مرحله (همراه با تصاویر)

تصویری: ردیاب مبتنی بر PID با ربات حسگر POLOLU QTR 8RC: 6 مرحله (همراه با تصاویر)
تصویری: فیلم فیلتر کالمن برای ردیابی مسیر با MATLAB 2024, جولای
Anonim
ربات مبتنی بر خط PID با آرایه حسگر POLOLU QTR 8RC
ربات مبتنی بر خط PID با آرایه حسگر POLOLU QTR 8RC

سلام!

این اولین چیزی است که من در مورد دستورالعمل ها می نویسم ، و امروز می خواهم شما را در این راه قرار دهم و در مورد نحوه پر کردن خط PID زیر ربات با استفاده از آرایه حسگر QTR-8RC توضیح دهم.

قبل از رفتن به ساختمان ربات ، ما باید آنچه را که PID نامیده می شود ، بفهمیم ،

مرحله 1: اصل کار

PID چیست ؟؟

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

اصطلاحات کلیدی همانطور که در اسناد polalu ذکر شده است

مقدار متناسب با موقعیت ربات شما نسبت به خط تقریباً متناسب است. به این معنا که اگر ربات شما دقیقاً روی خط متمرکز شده باشد ، ما انتظار داریم که مقدار مناسب دقیقاً 0 باشد

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

مشتق نرخ تغییر مقدار متناسب است

در این آموزش ، ما فقط در مورد Kp و Kd صحبت می کنیم ، با این حال ، نتایج را می توان با استفاده از عبارت Ki نیز به دست آورد. قرائتی که از سنسور دریافت می کنیم نه تنها قرائت آنالوگ بلکه قرائت موقعیتی ربات است.. بنابراین اساساً سنسور مقادیر 0 تا 2500 را از حداکثر بازتاب تا حداقل بازتاب ارائه می دهد ، اما ، در عین حال ، اطلاعاتی در مورد فاصله ربات از خط دارد.)

اکنون باید عبارت خطا را در نظر بگیریم ، این تفاوت دو مقدار مقدار نقطه تعیین شده و مقدار فعلی است. به عنوان مثال: اگر از این سنسور آرایه استفاده می کنید و از 8 سنسور استفاده می کنید ، اگر نقطه ای روی نقطه قرار بگیرید ، عدد 3500 ، اگر فاصله زیادی با 0 داشته باشید ، عدد 0 را دریافت خواهید کرد. خط و در حدود 7000 اگر شما بیش از حد راست هستید.) هدف ما این است که خطا را صفر کنیم. تنها در این صورت است که ربات می تواند خط را به آرامی دنبال کند.

سپس قسمت محاسبه می آید ،.

1) خطا را محاسبه کنید.

خطا = مقدار نقطه - مقدار فعلی = 3500 - موقعیت

همانطور که از 8 سنسور استفاده می کنم. هنگامی که ربات به طور کامل قرار گرفته است ، سنسور یک عدد 3500 می دهد. اکنون که خطای خود را محاسبه کرده ایم ، حاشیه ای که ربات ما در طول مسیر حرکت می کند ، زمان آن رسیده است که خطا را دقیق بررسی کرده و سرعت موتور را بر این اساس تنظیم کنیم.

2) تعیین سرعت تنظیم شده موتورها.

MotorSpeed = Kp * Error + Kd * (خطا - LastError) ؛

LastError = خطا ؛

RightMotorSpeed = RightBaseSpeed + MotorSpeed؛

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed؛

از نظر منطقی ، خطای 0 به این معنی است که ربات ما به سمت چپ است ، به این معنی که ربات ما باید کمی به راست برود ، که به نوبه خود به این معنی است که موتور راست باید کند شود و موتور چپ باید سرعت یابد. این PID است!

مقدار MotorSpeed از خود معادله تعیین می شود. RightBaseSpeed و LeftBaseSpeed سرعتی هستند (هر مقدار PWM 0-255) که ربات هنگام صفر بودن خطا با آن کار می کند.

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

اگر هنگام پیاده سازی ربات خود با مشکل روبرو شدید ، فقط بررسی کنید که آیا با تغییر علائم معادلات این مشکل را ببینید یا نه !!!

و اکنون مشکل ترین بخش برای یافتن Kp و Kd ، من مجبور بودم بیش از 1 ساعت برای تنظیم کامل روبات خود صرف کنم. به جای قرار دادن مقادیر تصادفی ، روش ساده تری برای تعیین این امر پیدا کردم.

  1. با Kp و Kd برابر 0 شروع کنید و با Kp شروع کنید ، ابتدا سعی کنید Kp را روی 1 قرار دهید و ربات را مشاهده کنید ، هدف ما این است که خط را دنبال کنیم حتی اگر تزلزل باشد ، اگر روبات از خط خارج شود و خط را از دست بدهد مقدار kp را کاهش دهید.اگر ربات نتواند به نوبه خود حرکت کند و تنبل باشد مقدار Kp را افزایش می دهد.
  2. هنگامی که به نظر می رسد ربات تا حدودی خط را دنبال می کند ، مقدار Kd (مقدار Kd> Kp) را از 1 شروع کنید و مقدار را افزایش دهید تا یک درایو نرم با تزلزل کمتر مشاهده کنید.
  3. هنگامی که ربات شروع به دنبال خط می کند ، سرعت را افزایش دهید و ببینید آیا می تواند خط را حفظ و دنبال کند یا خیر.

به خاطر داشته باشید که سرعت بر تنظیم PID تأثیر مستقیم دارد و ممکن است گاهی اوقات برای مطابقت با سرعت ربات خود نیاز به تنظیم مجدد داشته باشید.

اکنون می توانیم به ساخت ربات خود بپردازیم.

مرحله 2: ساخت

The Build
The Build
The Build
The Build
The Build
The Build

Arduino atmega 2560 با کابل USB - این میکروکنترلر اصلی مورد استفاده است.

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

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

موتورهای دنده ای میکرومتال- ربات برای کنار آمدن با روال PID به موتورهای چرخشی سریع نیاز داشت ، برای این منظور از موتورهایی با سرعت 6V 400rpm و چرخ های مناسب استفاده کردم.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

آرایه سنسور QTR 8Rc - این می تواند برای ردیابی خط مورد استفاده قرار گیرد ، همانطور که قبلا ذکر شد ، فکر می کنم شما اکنون درک روشنی از نحوه عملکرد آرایه سنسور با PID داشته اید. کد بسیار ساده است و با استفاده از کتابخانه های موجود arduino می توانید برای ایجاد یک دنبال کننده سریع خط

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

راننده موتور TB6612FNG-من می خواستم از یک راننده موتور استفاده کنم که بتواند پیچ ها را تغییر داده و جهت ها را در یک لحظه تغییر دهد ، که می تواند در صورت پایین آمدن سیگنال PWM موتورها را به طور موثر ترمز کند.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

باتری لیپو- باتری لیپو 11.1 ولت برای تأمین برق ربات استفاده می شود. اگرچه من از باتری لیپو 11.1 ولت استفاده کرده ام ، اما این ظرفیت بیشتر از آن چیزی است که برای آردوینو و موتورها مورد نیاز است. باتری لیپو یا بسته باتری 6V Ni-MH عالی خواهد بود. به همین دلیل من باید از مبدل باک برای تبدیل ولتاژ به 6 ولت استفاده کنم.

11.1V-

7.4 V-

ماژول مبدل Buck-

علاوه بر این ، شما نیاز به سیم های جامپر ، مهره و پیچ و مهره ، پیچ گوشتی و نوارهای برقی و همچنین زیپ دارید تا مطمئن شوید همه چیز سر جایش است.

مرحله 3: مونتاژ

مونتاژ کردن
مونتاژ کردن
مونتاژ کردن
مونتاژ کردن
مونتاژ کردن
مونتاژ کردن
مونتاژ کردن
مونتاژ کردن

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

در اینجا یک نمودار کامل است که در اینترنت پیدا کردم ، که به شما می گوید چگونه باید اتصالات را ایجاد کرد.

مرحله 4: آهنگ خط خود را طراحی کنید

آهنگ خط خود را طراحی کنید
آهنگ خط خود را طراحی کنید

در حال حاضر به نظر می رسد پروژه شما تقریباً به پایان رسیده است.در آخرین مرحله شما باید یک میدان کوچک برای آزمایش ربات خود داشته باشید. من از یک خط تصادفی با عرض 3 سانتی متر سفید در زمینه سیاه استفاده کرده ام. اطمینان حاصل کنید که همه چیز را به خوبی چسباندید. و در حال حاضر از 90 زاویه ضربدر و مقطع عرضی خودداری کنید ، زیرا این یک مورد پیچیده در زمینه کدگذاری است.

مرحله 5: کد خود را برنامه ریزی کنید

1. آردوینو را بارگیری و نصب کنید

IDE رومیزی

· windows -

· Mac OS X -

· لینوکس -

2. فایل آرایه حسگر QTR 8 RC را بارگیری و در پوشه کتابخانه های آردوینو بچسبانید.

·

· فایلها را در مسیر - C: / Arduino / libraries قرار دهید

3. بارگیری و openLINEFOLLOWING.ino

4. کد را از طریق کابل USB روی برد آردوینو بارگذاری کنید

مرحله 6: انجام شد

Image
Image

در حال حاضر شما یک خط ربات زیر ساخته شده توسط خودتان دارید.

امیدوارم این آموزش مفید بوده باشد. در صورت داشتن هرگونه مشکلی با من تماس بگیرید از طریق [email protected].

به زودی با یک پروژه جدید دیگر می بینیم

از ساختمان لذت ببرید !!

توصیه شده: