ساخت ربات حفظ تعادل با آردوینو (پروژه ربات خود تعادلی)
محتویات
سلام. آموزش ساخت ربات حفظ تعادل با آردوینو (پروژه ربات خود تعادلی با Arduino) را آماده کردیم. فیلم عملکرد مدار را ببینید !
آموزش ساخت ربات حفظ تعادل با آردوینو
در این پروژه آردوینو ما با استفاده ازموتور DC و شتاب سنج یک ربات حفظ تعادل یا همان ربات خود تعادل میسازیم. شما نمونه هایی از این ربات ها را در اسکوتر هایی برقی دیده اید. ما ربات را طوری میسازیم که حتی اگر آنرا هُل دهیم هم ربات تعادل خود را حفظ کند و بتوانیم آنرا کنترل کنیم تا جلو و عقب برود. فیلم عملکرد این ربات در انتهای مطلب قرار داده شده است.
توضیحات پروژه ربات خود تعادل با آردوینو
مفهوم کار پروژه ساده است. ما باید با استفاده سنسور شتاب سنج بررسی کنیم آیا ربات دارد به عقب تکیه میکند یا به جلو. اگر به عقب تکیه کرده بود چرخ ها را در جهت عقب میچرخانیم و اگر به جلو تکیه کرده بود چرخ ها را به جهت جلو میچرخانیم. ما پروژه را قسمت به قسمت خدمت شما توضیح میدهیم.
کنترل کننده: کنترل کننده ای که ما در این پروژه استفاده میکنیم Arduino UNO است. زیرا استفاده از آن بسیار ساده است. شما همچنین می توانید از Arduino Nano یا Arduino mini استفاده کنید. اما توصیه می کنم از UNO استفاده کنید زیرا می توانیم مستقیماً بدون هیچ سخت افزار خارجی آن را برنامه ریزی کنیم.
موتورها : بهترین موتور که می توانید برای ربات خود متعادل استفاده کنید، بدون شک موتور استپر خواهد بود. اما برای ساده نگه داشتن پروژه از موتور دنده DC استفاده میکنیم. بله ، داشتن موتور پله ای اجباری نیست. ربات حفظ تعادل با این موتورهای دنده DC رنگ زرد معمولی که در دسترس هستند نیز خوب کار می کند.
درایور موتور: ما برای کنترل موتور Gear DC ها از موتور درایور L298N استفاده کرده ایم.
چرخ: در انتخاب چرخ مناسب دقت کنید ! چرخ های انتخابی شما باید به میزان مناسب چسبنده و به میزان مناسب لغزنده باشند.
شتاب سنج و ژیروسکوپ: بهترین انتخاب شتاب سنج و ژیروسکوپ برای این ربات سنسور MPU6050 خواهد بود. بنابراین سعی نکنید با یک شتاب سنج معمولی مانند ADXL345 یا چیزی شبیه به آن این پروژه را راه اندازی کنید ! قطعا جواب نمیگیرید.
باتری: ما به باتری ای نیاز داریم که تا حد امکان سبک باشد و ولتاژ کار آن باید بیش از 5 ولت باشد تا بتوانیم به آردوینو مستقیماً و بدون هیچ ماژول تقویتی نیرو وارد کنیم. بنابراین انتخاب ایده آل برای ما یک باتری 7.4 ولت لیتیوم خواهد بود.
شاسی: برای ساخت شاسی مناسب باید بسیار دقت کنید. شما میتوانید شاسی را با مقوا ، چوب ، پلاستیک یا هرچیز دیگری بسازید. سعی کنید شاسی شما از استحکام کافی برخوردار باشد و در هنگامی که ربات در حال حفظ تعادل است تکان نخورد. ما در فایل دانلودی ، فایل های سه بعدی طراحی بدنه این ربات را قرار داده ایم و در صورت دسترسی به پرینتر های سه بعدی میتوانید از این فایل ها استفاده کنید.
لیست قطعات مورد نیاز پروژه ربات با آردوینو
- برد آردوینو Uno
- موتور گیربکس DC – دو عدد
- موتور درایور L298N
- سنسور شتاب سنج MPU6050 – دانلود کتابخانه + مشخصات سنسور MPU6050
- باتری لیتیوم 7.4 ولت
توضیحات مدار پروژه
شماتیک کامل پروژه در فایل دانلودی قرار داده شده است. اتصالات این ربات بسیار ساده است. ما فقط باید سنسور ژیروسکوپ MPU6050 را به آردوینو و موتور ها را نیز به ماژول درایور موتور متصل کنیم. مدار نیز توسط باتری لیتیوم یون 7.4 ولت تغذیه میشود. ماژول درایور و آردوینو مستقیما از طریق پین 12+ و Vin تغذیه میشود. رگولاتور موجود روی برد آردوینو Uno ، ورودی باتری 7.4 ولت را به 5 ولت تبدیل میکند و میکروکنترلر و سنسور شتاب سنج از آن نیرو میگیرند. موتور های DC میتوانند در محدوده ولتاژ 5 تا 12 ولت کار کنند. در جدول زیر برای راحتی شما نحوه اتصال پین های سنسور شتاب سنج و موتور درایور با آردوینو را مشخص کرده ایم.
پین های قطعات | پین های آردوینو |
سنسور MPU6050 | |
Vcc | +5V |
Ground | Gnd |
SCL | A5 |
SDA | A4 |
INT | D2 |
موتور درایور L298N | |
IN1 | D6 |
IN2 | D9 |
IN3 | D10 |
IN4 | D11 |
MPU6050 از طریق پروتکل I2C با Arduino ارتباط برقرار می کند ، بنابراین ما از پین های A4 و A5 آردوینو استفاده می کنیم. موتورهای DC به پین های D6 ، D9 ، D10 و D11 وصل می شوند. باید آنها را به پین های PWM متصل کنیم زیرا می توانیم سرعت موتور DC را کنترل کنیم.
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام همه کتابخونه ها رو نصب کردم
ولی باز کامپایل ارور میزنه
Vectorfloat does not name a typ
اینو میگه کتابخونه حاصی هست که نصب نکردم یا چی؟
سلام
همه کتابخونه ها رو نصب کردم اما باز همین خطا رو دارم حتی بورد رو عوض کردم باز خطای ارور کامپایلینگ فور بورد دارم،
با هر مدل بورد امتحان میکنم داستان همینه
بوتلودر قدیمی رو انتخاب کردم باز همینه
با توجه به صحبت های شما من کتابخانه ها رو نصب کردم و کد رو آپلود کردم. بدون هیچ مشکلی انجام شد.
یک کد دیگه رو آپلود کنید اگر بدون مشکل اپلود میشه کتابخانه ها رو نادرست نصب کردید. در صورتی که نمیتوانید کتابخانه صحیح رو پیدا کنید در انجمن موضوع باز کنید براتون ارسال کنم
برد بنده نانو ch340 هستش درایور هم درست نصب شده
بوت لودر قدیمی هم انتخاب کردم
انگار مشکل از برنامه هستش چون حتی برد دیگری هم انتخاب میکنم باز خطای ارور کامپایلینگ فور آردوینو برد میده
لطفا راهنماییم کنید گیر کردم سر این پروژه
متن ارور رو به صورت کامل ارسال کنید
سلام
کتابخانه ها رو نصب کردم موقع کامپایل متاسفانه خطای ارور کامپایلینگ فور بور آردوینو نانو میده
هر بوردی رو انتخاب میکنم همین خطا رو دارم
سلام عزیز
بردتون چی هست؟
اگر نانو CH340 هست در قسمت بوت لودر، old bootloader رو انتخاب کنید
I2Cdev.h: No such file or directory
Specified folder/zip file does not contain a valid library
سلام وقتی فایل زیپ i2cdev رو انتخاب میکنم این پیغام میاد
سلام عزیز
کتابخانه رو با روش گفته شده در نصب کتابخانه آردوینو برای کتابخانه با فایل Zip وارد کنید.
سلام
تنظیمات مربوط به mpu6050 واموزش کالیبره رو بگین
سلام من همینطور چک کردم با تغییر حالت سنسور شتاب سنج، خروجی آردوینو فالت میاره و پردازش داده نمیکنه به نظر شما مشکل از کجاست؟
سلام من کد رو بدون هیچ خطایی لود کردم رو ربات اما ربات از یک جایی به بعد استپ میکنه پردازش نمیکنه که کجاست مشکل از چی میتونه باشه
سلام کد ربات خود تعادل جواب نمی دهد ظاهرا همه این مشکل را دارند هم کد خود پروژه و هم کد کتابخانه را به درستی ریختم ولی جواب نمی دهد خواهشمندم خودتان تست کنید
سلام جناب، بنده در حال حاضر امکان تست رو ندارم کد نباید مشکلی داشته باشه، بررسی کنید با تغییر حالت سنسور، خروجی های آردوینو تغییر میکنند یا خیر
سلام ممنون
درست شد ممنون
فقط یک سوال دیگه داشتم
از چه port باید اتفاده کنم؟
منظورتون رو از پورت بفرمایید.
توی قسمت Tools نوشته شده port(com18/19/20) بین این سه کدوم درسته؟
باید خودتون بررسی کنید کدوم پورت صحیح هست. بستگی به کامپیوتر شما داره. آموزش آپلود پروژه در آردوینو رو مشاهده بفرمایید.
سلام وقتتون بخیر
من توی قسمت اول کد به مشکل خوردم
کتابخانه ای که داخل سایت گذاشتین هم add کردم اما توی قسمت #include “I2Cdev.h” خطا میگیره باید چیکارش کنم؟میشه لطفا راهنمایی کنین؟
سلام. خطا رو به صورت کامل ارسال کنید.
متن خطا این هستش :
irenx.ir3:10: fatal error : I2Cdec.h: No such file or directory
compilation terminated.
exit status 1
I2Cdev.h: No such file or directory
باید کتابخانه I2Cdev و سنسور رو دانلود کنید. از اینجا : سنسور شتاب سنج MPU6050 (+کتابخانه I2Cdev.h)
خریداری و یادگیری آموزش کامل آردوینو که روی سایت قرار دادین باعث میشه این کد رو به طور کامل متوجه بشم؟
این کد از کتابخانه های خاصی استفاده میکنه و ما در دوره آموزش آردوینو کتابخانه های متفرقه رو بررسی نکردیم. بنابراین نمیشه گفت کاملا متوجهش میشید.
اگر بخوام این کد رو کاملا متوجه بشم در حدی که بتونم ارائه بدم
شما راه حلی دارین؟
کد توضیحات خط به خط انگلیسی رو داره اگر ترجمه کنید همون توضیحات خط به خط رو میتونین ارائه بدین.
سلام
آموزش نوشتن کد این پروژه روی سایت نمی گذارید؟
سلام نگین عزیز، اگر در مورد کد سوالی دارید همینجا اعلام کنید.
الان مشکلی ک ما داریم این هست که MPU6050 مقادیر رو درست ارسال میکنه ولی موتورها فعال نمیشن باید چیکار کنیم ؟؟
درایور موتور متصل کردید ؟ با مولتی متر خروجی پایه های آردوینو و موتور درایور رو بررسی کنید
سلام خسته نباشید من فایل رو وقتی اپلود میکنم با error compiling for board arduino uno مواجه میشم مشکل از کجاست ؟ ممنون
سلام جناب. Board و Port رو صحیح انتخاب کردین ؟