آموزش آردوینوپروژه های آردوینو

ساخت ربات حفظ تعادل با آردوینو (پروژه ربات خود تعادلی)

سلام. آموزش ساخت ربات حفظ تعادل با آردوینو (پروژه ربات خود تعادلی با Arduino) را آماده کردیم. فیلم عملکرد مدار را ببینید !

آموزش ساخت ربات حفظ تعادل با آردوینو

در این پروژه آردوینو ما با استفاده ازموتور DC و شتاب سنج یک ربات حفظ تعادل یا همان ربات خود تعادل میسازیم. شما نمونه هایی از این ربات ها را در اسکوتر هایی برقی دیده اید. ما ربات را طوری میسازیم که حتی اگر آنرا هُل دهیم هم ربات تعادل خود را حفظ کند و بتوانیم آنرا کنترل کنیم تا جلو و عقب برود. فیلم عملکرد این ربات در انتهای مطلب قرار داده شده است.

توضیحات پروژه ربات خود تعادل با آردوینو

مدار ربات حفظ تعادل با آردوینو

مفهوم کار پروژه ساده است. ما باید با استفاده سنسور شتاب سنج بررسی کنیم آیا ربات دارد به عقب تکیه میکند یا به جلو. اگر به عقب تکیه کرده بود چرخ ها را در جهت عقب میچرخانیم و اگر به جلو تکیه کرده بود چرخ ها را به جهت جلو میچرخانیم. ما پروژه را قسمت به قسمت خدمت شما توضیح میدهیم.

کنترل کننده: کنترل کننده ای که ما در این پروژه استفاده میکنیم Arduino UNO است. زیرا استفاده از آن بسیار ساده است. شما همچنین می توانید از Arduino Nano یا Arduino mini استفاده کنید. اما توصیه می کنم از UNO استفاده کنید زیرا می توانیم مستقیماً بدون هیچ سخت افزار خارجی آن را برنامه ریزی کنیم.

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

درایور موتور: ما برای کنترل موتور Gear DC ها از موتور درایور L298N استفاده کرده ایم.

چرخ: در انتخاب چرخ مناسب دقت کنید ! چرخ های انتخابی شما باید به میزان مناسب چسبنده و به میزان مناسب لغزنده باشند.

شتاب سنج و ژیروسکوپ: بهترین انتخاب شتاب سنج و ژیروسکوپ برای این ربات سنسور MPU6050 خواهد بود. بنابراین سعی نکنید با یک شتاب سنج معمولی مانند ADXL345 یا چیزی شبیه به آن این پروژه را راه اندازی کنید ! قطعا جواب نمیگیرید.

باتری: ما به باتری ای نیاز داریم که تا حد امکان سبک باشد و ولتاژ کار آن باید بیش از 5 ولت باشد تا بتوانیم به آردوینو مستقیماً و بدون هیچ ماژول تقویتی نیرو وارد کنیم. بنابراین انتخاب ایده آل برای ما یک باتری 7.4 ولت لیتیوم خواهد بود.

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

لیست قطعات مورد نیاز پروژه ربات با آردوینو

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

توضیحات مدار پروژه

مدار پروژه ربات خود تعادلی با Arduino

شماتیک کامل پروژه در فایل دانلودی قرار داده شده است. اتصالات این ربات بسیار ساده است. ما فقط باید سنسور ژیروسکوپ 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 را کنترل کنیم.

موارد موجود در فایل : شماتیک ، فایل Hex ، فایل آردوینو ، فایل پرینت سه بعدی و …
4.8 (17 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

33 نظر

  1. سلام همه کتابخونه ها رو نصب کردم
    ولی باز کامپایل ارور میزنه
    Vectorfloat does not name a typ
    اینو میگه کتابخونه حاصی هست که نصب نکردم یا چی؟

  2. سلام
    همه کتابخونه ها رو نصب کردم اما باز همین خطا رو دارم حتی بورد رو عوض کردم باز خطای ارور کامپایلینگ فور بورد دارم،
    با هر مدل بورد امتحان میکنم داستان همینه
    بوتلودر قدیمی رو انتخاب کردم باز همینه

    1. با توجه به صحبت های شما من کتابخانه ها رو نصب کردم و کد رو آپلود کردم. بدون هیچ مشکلی انجام شد.
      یک کد دیگه رو آپلود کنید اگر بدون مشکل اپلود میشه کتابخانه ها رو نادرست نصب کردید. در صورتی که نمیتوانید کتابخانه صحیح رو پیدا کنید در انجمن موضوع باز کنید براتون ارسال کنم

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

    1. متن ارور رو به صورت کامل ارسال کنید

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

    1. سلام عزیز
      بردتون چی هست؟
      اگر نانو CH340 هست در قسمت بوت لودر، old bootloader رو انتخاب کنید

  5. I2Cdev.h: No such file or directory

    Specified folder/zip file does not contain a valid library
    سلام وقتی فایل زیپ i2cdev رو انتخاب میکنم این پیغام میاد

  6. سلام من همینطور چک کردم با تغییر حالت سنسور شتاب سنج، خروجی آردوینو فالت میاره و پردازش داده نمیکنه به نظر شما مشکل از کجاست؟

  7. سلام من کد رو بدون هیچ خطایی لود کردم رو ربات اما ربات از یک جایی به بعد استپ میکنه پردازش نمیکنه که کجاست مشکل از چی میتونه باشه

  8. سلام کد ربات خود تعادل جواب نمی دهد ظاهرا همه این مشکل را دارند هم کد خود پروژه و هم کد کتابخانه را به درستی ریختم ولی جواب نمی دهد خواهشمندم خودتان تست کنید

    1. سلام جناب، بنده در حال حاضر امکان تست رو ندارم کد نباید مشکلی داشته باشه، بررسی کنید با تغییر حالت سنسور، خروجی های آردوینو تغییر میکنند یا خیر

  9. درست شد ممنون
    فقط یک سوال دیگه داشتم
    از چه port باید اتفاده کنم؟

    1. منظورتون رو از پورت بفرمایید.

    2. توی قسمت Tools نوشته شده port(com18/19/20) بین این سه کدوم درسته؟

  10. سلام وقتتون بخیر
    من توی قسمت اول کد به مشکل خوردم
    کتابخانه ای که داخل سایت گذاشتین هم add کردم اما توی قسمت #include “I2Cdev.h” خطا میگیره باید چیکارش کنم؟میشه لطفا راهنمایی کنین؟

    1. سلام. خطا رو به صورت کامل ارسال کنید.

    2. متن خطا این هستش :
      irenx.ir3:10: fatal error : I2Cdec.h: No such file or directory
      compilation terminated.
      exit status 1
      I2Cdev.h: No such file or directory

  11. خریداری و یادگیری آموزش کامل آردوینو که روی سایت قرار دادین باعث میشه این کد رو به طور کامل متوجه بشم؟

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

    2. اگر بخوام این کد رو کاملا متوجه بشم در حدی که بتونم ارائه بدم
      شما راه حلی دارین؟

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

    1. سلام نگین عزیز، اگر در مورد کد سوالی دارید همینجا اعلام کنید.

  12. الان مشکلی ک ما داریم این هست که MPU6050 مقادیر رو درست ارسال میکنه ولی موتورها فعال نمیشن باید چیکار کنیم ؟؟

    1. درایور موتور متصل کردید ؟ با مولتی متر خروجی پایه های آردوینو و موتور درایور رو بررسی کنید

  13. سلام خسته نباشید من فایل رو وقتی اپلود میکنم با error compiling for board arduino uno مواجه میشم مشکل از کجاست ؟ ممنون

    1. سلام جناب. Board و Port رو صحیح انتخاب کردین ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *