فهرست مطالب:
- تدارکات
- مرحله 1: ساخت و ساز
- مرحله 2: سیم کشی
- مرحله 3: نظریه کنترل
- مرحله 4: استفاده از MPU 6050
- مرحله 5: کد نویسی
- مرحله 6: روش تنظیم PID
- مرحله 7: نتیجه گیری
تصویری: ربات خودکار دو چرخ: 7 قدم
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
این دستورالعمل مراحل طراحی و ساخت یک ربات خود متعادل را طی می کند. به عنوان یک نکته ، من فقط می خواهم بگویم که روبات های خود متعادل مفهوم جدیدی نیستند و توسط دیگران ساخته و مستند شده اند. من می خواهم از این فرصت استفاده کنم و تفسیر خود را از این ربات با شما به اشتراک بگذارم.
ربات خود متعادل چیست؟
یک روبات خود متعادل سیستمی است که از داده های اندازه گیری اینرسی ، جمع آوری شده از یک سنسور روی صفحه ، برای تنظیم مداوم موقعیت خود برای ایستادن استفاده می کند.
چگونه کار می کند؟
یک قیاس ساده که باید مورد توجه قرار گیرد یک پاندول معکوس است. جایی که مرکز جرم بالای نقطه محوری است. با این حال ، در مورد ما ، ما با داشتن یک محور چرخش ، در مورد ما محور چرخش دو چرخ ، پاندول را به 1 درجه آزادی محدود می کنیم. از آنجا که هر نوع اختلالی باعث سقوط ربات می شود ، ما به روشی برای حفظ تعادل روبات نیاز داریم. اینجاست که الگوریتم حلقه بسته (کنترل کننده PID) ما به کار می افتد ، با دانستن این که روبات ما در چه جهتی قرار دارد ، می توانیم جهت چرخش موتورهای خود را تنظیم کنیم تا سیستم متعادل شود.
الگوریتم حلقه بسته چگونه کار می کند؟
اصل اساسی در متعادل نگه داشتن ربات این است که اگر روبات به جلو بیفتد ، با حرکت دادن پایین ربات به جلو ، خود را جبران می کند تا خود را بگیرد و بنابراین عمودی نگه می دارد. به همین ترتیب ، اگر ربات در حال سقوط به عقب باشد ، با حرکت دادن پایین ربات به عقب جبران می شود تا خودش را بگیرد.
بنابراین ، ما باید در اینجا دو کار انجام دهیم ، ابتدا باید زاویه شیب (Roll) را که ربات تجربه می کند محاسبه کنیم و در نتیجه ، ما باید جهت چرخش موتورها را کنترل کنیم.
چگونه زاویه شیب را اندازه گیری کنیم؟
برای اندازه گیری زاویه تمایل ، از واحد اندازه گیری اینرسی استفاده می کنیم. این ماژول ها شامل شتاب سنج و ژیروسکوپ هستند.
- شتاب سنج یک دستگاه الکترومغناطیسی است که شتاب مناسب را اندازه گیری می کند ، این شتاب یک بدن در یک حالت استراحت لحظه ای است.
- ژیروسکوپ یک دستگاه الکترومکانیکی است که سرعت زاویه را اندازه گیری می کند و برای تعیین جهت دستگاه استفاده می شود.
با این حال ، مشکل استفاده از چنین سنسورهایی این است که:
- شتاب سنج بسیار پر سر و صدا است اما در طول زمان ثابت است ، زاویه با حرکات افقی ناگهانی متفاوت است
- از طرف دیگر ، مقدار ژیروسکوپ با گذشت زمان تغییر می کند ، اما در ابتدا ، نسبتاً دقیق است
برای این منظور ، من قصد ندارم یک فیلتر را در عوض استفاده از پردازش دیجیتال حرکتی روی صفحه (DMP) پیاده سازی کنم. دیگران از یک فیلتر مکمل برای دریافت سیگنال روان استفاده کرده اند ، شما می توانید هر روشی را که دوست دارید انتخاب کنید. به عنوان تعادل ربات با هر دو اجرا.
تدارکات
قطعات:
- Arduino Pro Mini 3.3V 8 با 8 مگاهرتز ATMEGA328
- ماژول آداپتور سریال FT232RL 3.3V 5.5V FTDI USB to TTL
- ماژول GY-521 با MPU-6050
- یک جفت موتور N20 میکرو دنده 6 ولت - 300 دور در دقیقه
- درایور موتور L298N
- مبدل باک LM2596S DC به DC
- باتری (بسته باتری 9.7V لیتیوم یون قابل شارژ)
- بند باتری
- دو نمونه اولیه برد مدار چاپی
- هدرهای زنانه و مردانه سیم های جامپر را سنجاق می کنند
ابزارها:
- لحیم کاری و لحیم کاری
- حالت نایلونی شش ضلعی فاصله دار
- مجموعه پیچ گوشتی دقیق
- چاپگر سه بعدی
مرحله 1: ساخت و ساز
از آنجایی که به چاپگر سه بعدی دسترسی داشتم ، تصمیم گرفتم شاسی را به صورت سه بعدی پرینت کنم و از حالت ایستاده برای اتصال همه چیز به یکدیگر استفاده کنم.
این ربات از 4 لایه تشکیل شده است
- لایه زیرین موتورها را به هم متصل می کند و دارای نقاط نصب برای ماژول درایور موتور L298N است
- لایه بعدی نمونه اولیه برد را با Arduino pro mini و سرصفحه ها به آن لحیم کرده است
- لایه سوم IMU را نصب می کند
- لایه بالایی ، که من آن را "لایه سپر" می نامم ، باتری ، مبدل باک و یک سوئیچ پولی است
اصل طراحی اصلی من این بود که همه چیز مدولار باشد. دلیل این امر این بود که اگر مشکلی در یکی از م componentsلفه ها اتفاق بیفتد ، می توانم آن را به راحتی جایگزین کنم یا اگر به یک جزء برای پروژه دیگری نیاز داشتم ، می توانم به راحتی آن را بدون نگرانی در مورد عدم امکان استفاده مجدد از سیستم انجام دهم.
مرحله 2: سیم کشی
من چند پینت هدر زنانه را به یک تخته چسب لحیم کردم تا با پین های سربرگ Arduino pro mini مطابقت داشته باشد. به دنبال آن ، من سرصفحه های نر را برای اتصال به ورودی/خروجی لحیم کردم. بقیه اجزا بر روی قاب چاپ سه بعدی نصب شده و با استفاده از سیم های جامپر به یکدیگر متصل شده اند.
مرحله 3: نظریه کنترل
حال به سراغ اصل پروژه می رویم. برای حفظ تعادل ربات ، ما باید یک سیگنال کنترلی مناسب برای حرکت موتورها در جهت صحیح و با سرعت مناسب ایجاد کنیم تا ربات متعادل و پایدار بماند. برای این کار از یک الگوریتم حلقه کنترل محبوب استفاده می کنیم که به عنوان کنترل کننده PID شناخته می شود. همانطور که از نام اختصاری نشان داده می شود سه عبارت برای این کنترل کننده وجود دارد ، اینها عبارتهای متناسب ، انتگرال و مشتق هستند. هر کدام از آنها با ضرایبی همراه است که تأثیر آنها بر سیستم را تعیین می کند. اغلب وقت گیرترین بخش در پیاده سازی کنترلر ، تنظیم سود برای هر سیستم منحصر به فرد برای بهینه ترین پاسخ است.
- عبارت نسبی خطا را مستقیماً ضرب می کند تا خروجی بدهد ، بنابراین هرچه خطا بزرگتر باشد ، پاسخ بیشتر می شود
- واژه انتگرال یک پاسخ بر اساس تجمع خطا برای کاهش خطای حالت پایدار ایجاد می کند. هرچه مدت زمان عدم تعادل سیستم به سرعت موتورها پاسخ دهند
- اصطلاح مشتق مشتق شده از خطا است که برای پیش بینی پاسخ آینده استفاده می شود و با این کار نوسان را به دلیل عبور از حالت پایدار کاهش می دهد.
اصل اساسی این الگوریتم محاسبه مداوم زاویه شیب است که تفاوت بین موقعیت مورد نظر و موقعیت فعلی است ، که به آن خطا می گویند. سپس از این مقادیر خطا استفاده می کند و مجموع پاسخ های متناسب ، انتگرال و مشتق را برای بدست آوردن خروجی محاسبه می کند ، که سیگنال های کنترلی است که به موتورها ارسال می شود. در نتیجه ، اگر خطا زیاد باشد ، سیگنال کنترل ارسال شده به موتورها ، موتورها را با سرعت زیاد می چرخاند تا به حالت متعادل برسد. به همین ترتیب ، اگر خطا کوچک باشد ، سیگنال کنترل موتورها را با سرعت کم می چرخاند تا ربات متعادل بماند.
مرحله 4: استفاده از MPU 6050
کتابخانه MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
همه سنسورها کپی دقیق یکدیگر نیستند. در نتیجه ، اگر دو MPU 6050 را آزمایش کنید ، ممکن است مقادیر متفاوتی برای شتاب سنج و ژیروسکوپ در صورت قرار گرفتن روی یک سطح ثابت دریافت کنید. برای غلبه بر این تغییر زاویه ثابت ، باید از هر سنسوری که استفاده می کنیم تجلیل کنیم. اجرای این اسکریپت:
www.i2cdevlib.com/forums/topic/96-arduino-…
توسط لوئیس رودناس نوشته شده است ، ما جبران خواهیم کرد. خطاهای offset را می توان با تعریف مقادیر offset در روال setup () حذف کرد.
استفاده از پردازشگر حرکت دیجیتال
MPU6050 دارای DMP (پردازشگر حرکت دیجیتال) است.
DMP چیست؟ شما می توانید DMP را یک میکروکنترلر داخلی بدانید که حرکت پیچیده را از طریق ژیروسکوپ 3 محوره و شتاب سنج 3 محوری روی mpu6050 با استفاده از الگوریتم های همجوشی حرکت مخصوص خود پردازش می کند. بارگیری پردازشی که در غیر این صورت توسط آردوینو انجام می شود
چگونه از آن استفاده کنیم؟ برای پی بردن به نحوه استفاده از DMP ، نمونه طرح MPU6050_DMP6 همراه با کتابخانه MPU6050 (در Arduino IDE: فایل-> مثال-> MPU6050-> MPU6050_DMP6) را مرور کنید. این همچنین فرصتی مناسب برای بررسی عملکرد صحیح سنسور شما و صحت سیم کشی آن است
مرحله 5: کد نویسی
برای برنامه نویسی Arduino pro mini از Arduino IDE و رابط FTDI استفاده کردم.
با استفاده از مثال طرح (MPU6050_DMP6) که همراه کتابخانه MPU6050 به عنوان کد اصلی من ارائه می شود ، توابع PID () و MotorDriver () را اضافه کردم.
کتابخانه را اضافه کنید
- MPU6050: برای استفاده از سنسور MPU6050 ما باید کتابخانه توسعه دهنده I2C را از جف روبرگ بارگیری کرده و آن را به پوشه "libraries" آردوینو که در فایل های برنامه در رایانه شما یافت می شود ، اضافه کنیم.
- Wire: ما همچنین به کتابخانه Wire نیاز داریم تا بتواند با دستگاه های I2C ارتباط برقرار کند.
شبه کد
شامل کتابخانه ها:
- سیم. ساعت
- MPU6050
- I2Cdev.h
متغیرها ، ثابتها و اشیاء را اولیه کنید
برپایی ()
- برای کنترل موتورها حالت پین تنظیم کنید
- حالت LED را برای LED وضعیت تنظیم کنید
- MPU6050 را اولیه کنید و مقادیر offset را تنظیم کنید
PID ()
محاسبه مقدار PID
MotorDriver (پاسخ PID)
برای کنترل سرعت و جهت موتورها از مقدار PID استفاده کنید
حلقه ()
- دریافت اطلاعات از DMP
- با PID () یک توابع MotorDriver () تماس بگیرید
مرحله 6: روش تنظیم PID
این خسته کننده ترین قسمت پروژه است و کمی صبر می خواهد مگر اینکه خیلی خوش شانس باشید. در اینجا مراحل:
- عبارت I و D را روی 0 تنظیم کنید
- ربات را در دست بگیرید ، P را طوری تنظیم کنید که ربات در موقعیت تعادل شروع به نوسان کند
- با مجموعه P ، I را افزایش دهید تا سرعت ربات در حالت تعادل سریعتر شود. با تنظیم دقیق P و I ، ربات باید بتواند حداقل برای چند ثانیه و با کمی نوسان خود را متعادل کند.
- در نهایت ، افزایش D باعث کاهش نوسان می شود
اگر اولین تلاش نتایج رضایت بخشی نمی دهد ، مراحل را با مقدار P متفاوت تکرار کنید. همچنین توجه داشته باشید که می توانید مقادیر PID را پس از آن تنظیم کنید تا عملکرد را افزایش دهید. مقادیر در اینجا بستگی به سخت افزار دارد ، اگر مقدار PID بسیار بزرگ یا بسیار کوچک دریافت کردید تعجب نکنید.
مرحله 7: نتیجه گیری
موتورهای میکرو چرخ دنده مورد استفاده برای کند واکنش نشان دادن در برابر اختلالات بزرگ عمل می کردند و با توجه به سبک بودن سیستم ، اینرسی کافی برای به دست آوردن اثر پاندول مورد نظر وجود نداشت ، بنابراین اگر روبات به جلو متمایل شود ، فقط به زاویه متمایل می شود و به جلو می دوید. سرانجام ، چرخ های چاپ شده سه بعدی انتخاب بدی بودند زیرا همچنان می لغزند.
پیشنهاداتی برای بهبود:
- موتورهای سریعتر با گشتاور بیشتر ، یعنی برای موتورهای DC درجه ولتاژ بالاتر گشتاور بیشتر است
- باتری سنگین تری بگیرید یا فقط جرم را کمی بالاتر ببرید
- چرخ های چاپ شده سه بعدی را با چرخ های لاستیکی جایگزین کنید تا کشش بیشتری به دست آورید
توصیه شده:
چرخ امشب چرخ تأثیرات موسیقی: 7 قدم
Tonight Show's Wheel of Musical Impressions Machine: الهام این دستگاه از بخشی از Tonight Show با بازی جیمی فالون با نام "Wheel of Musical Impressions" است. ابتدا دکمه روی جعبه را فشار دهید تا یک خواننده و آهنگ تصادفی روی صفحه LCD به شما نشان داده شود. سپس باید تقلید کنید
ربات متعادل کننده / ربات 3 چرخ / ربات STEM: 8 مرحله
ربات متعادل کننده / ربات 3 چرخ / ربات STEM: ما یک ربات متعادل کننده و 3 چرخ ترکیبی برای استفاده آموزشی در مدارس و برنامه های آموزشی بعد از مدرسه ساخته ایم. این ربات بر اساس Arduino Uno ، یک سپر سفارشی (تمام جزئیات ساخت ارائه شده است) ، یک باتری لیتیوم یون (همه ساخت
نحوه تغییر چرخ های داغ استاندارد به چرخ های داغ R/C: D: 6 مرحله (همراه با تصاویر)
چگونه می توان چرخ های داغ استاندارد را به چرخ های داغ R/C تغییر داد: D: از وقتی بچه بودم ، عاشق ماشین های چرخ داغ هستم. این به من الهام بخش برای طراحی وسایل نقلیه فانتزی بود. این بار آنها با استفاده از چرخ های داغ جنگ ستارگان ، C-3PO ، از خود پیشی گرفتند. با این حال ، من چیزی بیشتر از فشار یا سفر در یک پیست می خواهم ، تصمیم گرفتم ، "L
ربات یک چرخ: 3 قدم
ربات یک چرخه: در این پروژه من قصد دارم به شما نشان دهم که چگونه یک ربات یک چرخ یا یک دوچرخه را مرحله به مرحله بسازید تا بتوانید خودتان آن را بسازید. این ربات می تواند با محاسبه گرایش به کمک سنسور MPU6050 به طور خودکار تعادل را برقرار کند ، شامل دو
ساخت یک ربات بسیار کوچک: کوچکترین ربات چرخ دار جهان را با گریپر بسازید .: 9 مرحله (همراه با تصاویر)
یک ربات بسیار کوچک بسازید: کوچکترین ربات چرخدار جهان را با یک گریپر بسازید .: یک ربات 1/20 اینچی مکعبی با یک گریپر بسازید که می تواند اجسام کوچک را برداشته و جابجا کند. توسط میکروکنترلر Picaxe کنترل می شود. در این برهه زمانی ، من معتقدم که این ممکن است کوچکترین ربات چرخ دار جهان با گریپر باشد. بدون شک این امر باعث