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

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

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

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

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

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

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

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

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

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

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

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

حتما ببینید :  ساخت سرور بلوتوث کم مصرف BLE با ESP32 (+پروژه نمایش میزان باتری)

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

شتاب سنج ADXL335 

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

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

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

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

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

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

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

  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() را باید تعریف کنیم :

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

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : شماتیک کامل ، فایل Hex ، فایل آردوینو ، و …
برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

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

23 نظر

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

دکمه بازگشت به بالا