فهرست مطالب:
- مرحله 1: اصل کار
- مرحله 2: ساخت
- مرحله 3: مونتاژ
- مرحله 4: آهنگ خط خود را طراحی کنید
- مرحله 5: کد خود را برنامه ریزی کنید
- مرحله 6: انجام شد
تصویری: ردیاب مبتنی بر PID با ربات حسگر POLOLU QTR 8RC: 6 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
سلام!
این اولین چیزی است که من در مورد دستورالعمل ها می نویسم ، و امروز می خواهم شما را در این راه قرار دهم و در مورد نحوه پر کردن خط 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 ساعت برای تنظیم کامل روبات خود صرف کنم. به جای قرار دادن مقادیر تصادفی ، روش ساده تری برای تعیین این امر پیدا کردم.
- با Kp و Kd برابر 0 شروع کنید و با Kp شروع کنید ، ابتدا سعی کنید Kp را روی 1 قرار دهید و ربات را مشاهده کنید ، هدف ما این است که خط را دنبال کنیم حتی اگر تزلزل باشد ، اگر روبات از خط خارج شود و خط را از دست بدهد مقدار kp را کاهش دهید.اگر ربات نتواند به نوبه خود حرکت کند و تنبل باشد مقدار Kp را افزایش می دهد.
- هنگامی که به نظر می رسد ربات تا حدودی خط را دنبال می کند ، مقدار Kd (مقدار Kd> Kp) را از 1 شروع کنید و مقدار را افزایش دهید تا یک درایو نرم با تزلزل کمتر مشاهده کنید.
- هنگامی که ربات شروع به دنبال خط می کند ، سرعت را افزایش دهید و ببینید آیا می تواند خط را حفظ و دنبال کند یا خیر.
به خاطر داشته باشید که سرعت بر تنظیم PID تأثیر مستقیم دارد و ممکن است گاهی اوقات برای مطابقت با سرعت ربات خود نیاز به تنظیم مجدد داشته باشید.
اکنون می توانیم به ساخت ربات خود بپردازیم.
مرحله 2: ساخت
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: انجام شد
در حال حاضر شما یک خط ربات زیر ساخته شده توسط خودتان دارید.
امیدوارم این آموزش مفید بوده باشد. در صورت داشتن هرگونه مشکلی با من تماس بگیرید از طریق [email protected].
به زودی با یک پروژه جدید دیگر می بینیم
از ساختمان لذت ببرید !!
توصیه شده:
ردیاب رومیزی COVID19 با ساعت! ردیاب رزبری پای: 6 مرحله
ردیاب رومیزی COVID19 با ساعت! ردیاب رزبری پای: ما می دانیم که ما می توانیم در هر زمان بمیریم ، حتی من می توانم هنگام نوشتن این پست بمیرم ، به هر حال ، من ، شما ، همه ما فانی هستیم. تمام دنیا به دلیل همه گیری COVID19 لرزید. ما می دانیم چگونه از این امر جلوگیری کنیم ، اما هی! ما می دانیم چگونه دعا کنیم و چرا باید دعا کنیم ، آیا این کار را می کنیم
ROOT ربات کنترل شده مبتنی بر ژست: 10 مرحله (همراه با تصاویر)
روبات کنترل شده مبتنی بر ژست IOT: این ربات یک حرکت کنترل شده است که با کمک اینترنت از هر کجا قابل کنترل است. در این پروژه از شتاب سنج MPU 6050 برای جمع آوری داده ها در مورد حرکات دست ما استفاده می شود. این شتاب دست ما را در سه اندازه گیری می کند
ربات شادی (Robô Da Alegria) - ربات منبع باز 3D چاپ شده ، ربات Arduino !: 18 مرحله (همراه با تصاویر)
ربات شادی (Robô Da Alegria) - ربات منبع باز سه بعدی ، ربات قدرتمند Arduino!: جایزه اول در مسابقه چرخ های دستورالعمل ، جایزه دوم در مسابقه دستورالعمل های آردوینو و دومین مسابقه در طراحی برای کودکان. با تشکر از همه کسانی که به ما رای دادند! روبات ها به همه جا می رسند. از کاربردهای صنعتی تا
ربات انسان نما مبتنی بر آردوینو با استفاده از سروو موتورز: 7 مرحله (همراه با تصاویر)
ربات انسان نما مبتنی بر آردوینو با استفاده از سروو موتورز: سلام به همه ، این اولین ربات انسان نما من است که توسط ورقه فوم PVC ساخته شده است. در ضخامت های مختلف موجود است. در اینجا ، من از 0.5 میلی متر استفاده کردم. در حال حاضر این ربات زمانی که من روشن کردم می تواند راه برود. اکنون من روی اتصال Arduino و Mobile از طریق بلوتوث کار می کنم
[ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت - ربات انگشت شست - سرو موتور - کد منبع: 26 مرحله (همراه با تصاویر)
[ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت | ربات انگشت شست | سرو موتور | کد منبع: ربات انگشت شست از پتانسیومتر سروو موتور MG90S استفاده شده است. بسیار سرگرم کننده و آسان است! کد بسیار ساده است. فقط در حدود 30 خط است. به نظر می رسد یک حرکت ضبط است. لطفاً هر گونه سوال یا بازخوردی بگذارید! [دستورالعمل] کد منبع https: //github.c