پروژه الکترونیکپروژه های آردوینوپروژه های ربات

پروژه آردوینو کنترل ربات با حرکت دست با سنسور شتاب سنج

سلام. پروژه آردوینو کنترل ربات با حرکت دست با سنسور شتاب سنج را آماده کردیم. حتما فیلم عملکرد مدار رو ببینید !

پروژه آردوینو کنترل ربات با حرکت دست

پروژه آردوینو کنترل ربات با حرکت دست
پروژه آردوینو کنترل ربات با حرکت دست

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

آموزش ربات ماشین آردوینو

ربات کنترل شونده با حرکت دست را به 2 قسمت تقسیم میکنیم .

  1. قسمت فرستنده : ما در قسمت فرستنده یک شتاب سنج و یک فرستنده RF داریم. همانطور که قبلا گفتیم این شتاب سنج خروجی را به صورت آنالوگ به ما میدهد. بنابراین در اینجا باید این داده های آنالوگ را به دیجیتال تبدیل کنیم. با تنظیم ولتاژ مرجع ما یک سیگنال دیجیتال دریافت میکنیم سپس این سیگنال را با رمز گذار HT12E رمز گذاری میکنیم و این اطلاعات رو با فرستنده RF به برد ربات ارسال میکنیم.
  2. قسمت گیرنده : ما از گیرنده RF برای دریافت اطلاعات استفاده کردیم و سپس این اطلاعات را به رمز گذار HT12D میدیم تا این داده های سریال دریافت شده را رمز گشایی کند و به آردوینو میفرستیم تا خوانده شود. موتور ها با توجه به داده هایی که آردوینو میدهد به حرکت در می آیند.

گیرنده و فرستنده رادیویی RF 433Mhz

پروژه کنترل ربات با حرکت دست آردوینو
پروژه کنترل ربات با حرکت دست آردوینو

اکثر ربات ها با استفاده از دکمه ، جوی استیک و … کنترل میشوند، ولی این ربات تنها نیاز به حرکت دست داریم تا حرکت کند. برای اتصال دست به ربات ما از یک فرستنده و گیرنده RF استفاده میکنیم. فرستنده رادیویی (RF) و شتاب سنج روی دست شما نصب میشوند. وقتی دست حرکت میکند، فرستنده اطلاعات را به آردوینو ارسال میکند تا ربات بتواند کار را انجام بدهد مثل حرکت به جلو ، چرخش ، توقف و … .

همچنین ببینید : آموزش ساخت ربات جوی استیک با آردوینو و نمایش سرعت ، مسافت طی شده و زاویه

شتاب سنج ADXL335 

ربات پروژه آردوینو
ربات پروژه آردوینو

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

توضیحات پین های شتاب سنج :

  • VCC :  برق +5V باید به این پین وصل شود.
  • X-OUT : این پین خروجی آنالوگ را در جهت x میدهد.
  • Y-OUT : این پین خروجی آنالوگ را در جهت y میدهد.
  • Z-OUT : این پین خروجی آنالوگ را در جهت z میدهد.
  • GND : این پین باید به زمین (-) وصل شود.
  • ST : این پین برای حساسیت سنسور استفاده میشود.
همچنین ببینید :  تشخیص فاصله اجتماعی با رزبری پای و OpenCV

قطعات مورد نیاز این پروژه

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

قطعات مورد نیاز فرستنده :

  1. شتاب سنج adxl335
  2. HT12E
  3. فرستنده RF 433MHz
  4. مقاومت 10 کیلو اهم – چهار عدد
  5. مقاومت 750 کیلو اهم
  6. آپ امپ LM324 – چهار عدد

قطعات مورد نیاز گیرنده :

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.
  1. برد آردوینو Uno
  2. موتور های DC
  3. HT12D
  4. گیرنده  RF 433MHz
  5. موتور درایور L293D
  6. LED
  7. مقاومت 1 کیلو اهم
  8. مقاومت 33 کیلو اهم

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

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

#define FD 16 // حرکت به جلو
#define BD 17 // حرکت به عقب
#define LD 18 // حرکت به چپ
#define RD 19 // حرکت به راست

سپس در 4 خط بعد پین های موتور ها را تنظیم میکنیم.

#define m11 3 // موتور چپ
#define m12 4 // موتور جپ
#define m21 5 // موتور راست
#define m22 6 //موتور راست

در قسمت بعدی ما متغیر ها را برای هر کدام از حرکت ها تعریف میکنیم :

  int temp1=digitalRead(FD); // متغیر برای حرکت به جلو
  int temp2=digitalRead(BD); // متغیر برای حرکت به عقب
  int temp3=digitalRead(LD); // متغیر برای حرکت به چپ
  int temp4=digitalRead(RD); // متغیر برای حرکت به راست

حالا ما برای نمونه یکی از اعمال ، به طور مثال چرخش به راست را توضیح میدهیم از قسمت سنسور تا قسمت موتور. ابتدا ما کد زیر را مینویسم. در کد زیر با توجه به متغیر هایی که تعریف کردیم متوجه میشوید که فقط temp4 یعنی حرکت به راست فعال است.

 else if(temp1==0 && temp2==0 && temp3==0 && temp4==1) // هر وقت موتور راست قعال بود
  right(); // حرکت راست اجرا شود

حالا حرکت به راست یعنی right() را باید تعریف کنیم :

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
void right() // اجرای حرکت راست
{
   digitalWrite(m11, LOW); // موتور سمت چپ غیرفعال
   digitalWrite(m12, LOW);
   digitalWrite(m21, HIGH); // موتور سمت راست فعال
   digitalWrite(m22, LOW);
}
موارد موجود در فایل : شماتیک کامل ، فایل Hex ، فایل آردوینو ، و …

پروژه ها رایگان هستند. برای دانلود فایل های پروژه باید در سایت عضو باشید. ثبت نام / ورود

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

23 نظر

  1. سلام مقاومت ها دقیقا باید همین اعداد باشه یا مهم نیست
    و انکه HT12 رو ازکجا میشه پیدا کرد من حتی نمایندگی HOLTEK رفتم فقط SMD آی سی رو داشتن به نظرت از کجا بگیرم

    1. سلام جناب. مقاومت ها که همین باشه بهتره. انکودر دیکودر رو فکر کنم از مدل های دیگه هم بتونید استفاده کنید اما مطمئن نیستم. و من بررسی کردم تو سایت های ایرانی موجود هست. و چه مشکلی داره از SMD استفاده کنید.

      1. آخه SMD روی برد هزار سوراخ نمی شه لحیم کرد میشه اسم سایت رو بگید اگه امکان داره بازم ممنون که وقت گذاشتید

    1. جناب در لیست قطعات نوشته شده 4 عدد آپ امپ Lm324 و در شماتیک هم 4 عدد آپ امپ LM324 مشاهده میشه

  2. سلام
    توبقیه سایت ها حتی خود سایت آردوینو برای کنترل با دست بجز این وسایل از آردوینو نانو هم استفاده کرده مطمئنید نیازی نیست؟
    و اگر امکانش هست عکس از زیر برد لحیم شده بگذارید یا ایمیل کنید. بسیار ممنون می شم. در ضمن سایتتون فوق العاده است و پروژه هاتون بسیار جذاب

    1. سلام جناب.
      بله با توجه به شماتیک و لیست قطعات پیش برید هیچ مشکلی نیست.
      مرسی نظر لطف شماست.

      1. ببخشید ممنون بابت پاسخ دهی سریعتون
        عکس از زیر برد لحیم شده نداشتید؟

        1. خواهش می کنم فقط آپ امپ LM324 خودش کار 4 تا آپ امپ رو انجام می ده بازم 4 تا ازش بگیرم یا یه دونه؟

        2. سلام. منظورتون رو متوجه نشدم، طبق شماتیک متصل کنید.

  3. ممنونم از راهنمایی.فقط من کتابخانه کامل با حجم 800 مگ برای پروتئوس نصب کردم اما باز هم یک سری از قطعات رو برام نمایش نمیده. مثلا ماژول فرستنده گیرنده و یا انکودر و دیکودر. از کجا باید نصب کنم؟

    1. سلام مجدد سیاوش عزیز. بجای انکودر و دیکودری که در این پروژه استفاده شده از M145026 و M145027 در پروتئوس استفاده کنید همون کار رو انجام میدن

  4. سلام.به موارد زیر احتیاج دارم.
    لیست کامل قطعات فرستنده و گیرنده.
    کد فرستنده و گیرنده با توضیحات در قالب فایل تکست.
    بعد میشه درباره نحوه پیاده سازی پروژه در پروتئوس هم بهم توضیح بدید?

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

  5. سلام من کد های c این برنامه همراه با لیست قطعات رو لازم دارم اگر بفرستید ممنون میشم.

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

    1. قطعات در پست قرار گرفت و برنامه به ایملیتون ارسال شد

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

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

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