logo-site-sefid
Search
Close this search box.
Human-Following-Robot

ساخت ربات هوشمند با آردوینو

ساخت ربات هوشمند با آردوینو : در این پست قصد داریم تا یک ربات بسازیم که توانایی دنبال کردن انسان را دارد. با اکثر قطعاتی که در این ربات استفاده میکنیم در پروژه های گذشته آشنا شدیم اما یک تفاوت بارز در این ربات استفاده از سنسور آلتراسونیک روی یک موتور سروو میباشد. در مقاله کنترل موتور سروو با پوتانسیومتر با موتورهای سروو و کاربد آنها آشنا شدیم. همچنین در یکی از پروژه های ساخت ربات خود با نام ربات حل ماز نیز با سنسورهای آلتراسونیک آشنا شدیم. در آن پروژه برای اینکه بتوانیم زاویه بیشتری را با استفاده از سنسورهای آلتراسونیک پوشش دهیم از سه سنسور آلتراسونیک استفاده کردیم. اما در این پروژه برای حل این مشکل راهکار دیگری را ارائه خواهیم داد.

استفاده از سروو برای ساخت ربات هوشمند با آردوینو

از پروژه های گذشته آموزش رباتیک میدانیم که موتور سروو یک موتور با قابلیت چرخش 180 درجه میباشد. همچنین در این موتور به دلیل فیدبکی که اعلام میکند این امکان وجود دارد که شما بتوانید موقعیت آن را با استفاده از یک پردازنده کنترل کنید و میزان چرخش آن را در یک زاویه دلخواه تنظیم کنید. حال تصور کنید که یک سنسور آلتراسونیک را روی موتور سروو متصل کنیم و موتور را به شکلی برنامه ریزی کنیم که در زاویه های مختلفی بچرخد حال چه اتفاقی خواهد افتاد؟

SG90 servo motor
SG90 servo motor

شما در این حالت میتوانید با یک سنسور آلتراسونیک زاویه به اندازه 180 درجه را به راحتی پوشش دهید و به این شکل اگر ربات موانعی بر سر راه خود ببیند به راحتی آن را تشخیص دهد. میبینید که در این حالت نیز دیگر ضرورتی ندارد شما از سه سنسور آلتراسونیک استفاده کنید و تنها با استفاده از یک سنسور قادر خواهید بود زاویه زیادی را مورد پوشش قرار دهید. این روش میتواند باعث شود تا ربات شما ابعاد کوچکتری داشته باشد و یک بازه پیوسته از 0 تا 180 درجه را با سنسورهای خود کنترل کنید البته باید در نظر داشت که در این روش مقداری سرعت ربات نسبت به حالت استفاده از سه سنسور کمتر خواهد بود زیرا شما در این شرایط برای تشحیص موانع ابتدا میبایست موتور را در زاویه های مناسب به حرکت در آورید تا سنسور بتواند تمام جهات را مورد بررسی قرار دهد اما در حالتی که از سه سنسور استفاده میکنید هر سه سنسور به صورت مداوم در حال دریافت اطلاعات از محیط پیرامون خود میباشند که این باعث افزایش سرعت عمل ربات نسبت به پارامترهای محیطی خواهد بود.

درایور L293

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

در این پروژه ما از یک شیلد درایور موتور l293 استفاده خواهیم کرد که در ادامه تصویر آن را ملاحظه میکنید.

Shield-l293
Shield-l293

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

تفاوت شیلد و ماژول چیست؟

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

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

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

این درایور موتور L293D برای آردوینو احتمالاً یکی از پر کاربردترین درایورهای بازار است و دارای 2 اتصال سروو و 4 اتصال موتور برای موتورهای DC یا استپ است. این امر آن را به وسیله ای عالی برای هر پروژه رباتیک تبدیل می کند.

این شیلد درایور موتور سازگار با آردوینو محصولی کامل است که می توان از آن برای هدایت 4 موتور DC یا دو استپ 4 سیم و دو سرو 5 ولت استفاده کرد. این شیلد موتور DC و استپر را با L293D درایو می کند و سروو را با Arduino pin9 و pin10 هدایت می کند.

L293D یک درایور یکپارچه ، ولتاژ بالا ، جریان بالا و 4 کانال است. اساساً ، این بدان معناست که با استفاده از این تراشه می توانید از موتورهای DC و منبع تغذیه تا 36 ولت استفاده کنید ، زیرا برخی از موتورهای بسیار بزرگ و تراشه می توانند حداکثر جریان 600 میلی آمپر در هر کانال را تأمین کنند ، تراشه L293D نیز همان چیزی است که به عنوان یک نوع  پل H-Bridge شناخته می شود به طور معمول یک مدار الکتریکی است که می تواند ولتاژ را از طریق بار در هر دو جهت ورودی ، اعمال کند.

این شیلد شامل دو درایور موتور L293D و یک رجیستر شیفت 74HC595  است. رجیستر شیفت 3 پایه آردوینو را به 8 پایه گسترش می دهد تا جهت درایور موتور را کنترل کند. این خروجی باعث می شود L293D مستقیماً به خروجی های PWM آردوینو متصل شود.

ویژگی های L293D Motor Driver Shield برای Arduino:

2 اتصال برای موتور سروو
حداکثر 4 موتور DC دو جهته با انتخاب سرعت 8 بیتی جداگانه
حداکثر 2 موتور پله ای (تک قطبی یا دو قطبی) با یک سیم پیچ ، دو سیم پیچ یا پله ای لایه ای.
اتصالات بزرگ بلوک ترمینال برای اتصال آسان سیمها (18-26AWG)
دکمه ریست آردوینو

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

Serial.print("distance");
Serial.println(distance);


int Right_Value = digitalRead(RIGHT);
int Left_Value = digitalRead(LEFT);

Serial.print("RIGHT");
Serial.println(Right_Value);
Serial.print("LEFT");
Serial.println(Left_Value);

if((Right_Value==1) && (distance>=10 && distance<=30)&&(Left_Value==1)){
  Motor1.setSpeed(120);
  Motor1.run(FORWARD);
  Motor2.setSpeed(120);
  Motor2.run(FORWARD);
  Motor3.setSpeed(120);
  Motor3.run(FORWARD);
  Motor4.setSpeed(120);
  Motor4.run(FORWARD);
}else if((Right_Value==0) && (Left_Value==1)) {
  Motor1.setSpeed(200);
  Motor1.run(FORWARD);
  Motor2.setSpeed(200);
  Motor2.run(FORWARD);
  Motor3.setSpeed(100);
  Motor3.run(BACKWARD);
  Motor4.setSpeed(100);
  Motor4.run(BACKWARD);
}else if((Right_Value==1)&&(Left_Value==0)) {
  Motor1.setSpeed(100);
  Motor1.run(BACKWARD);
  Motor2.setSpeed(100);
  Motor2.run(BACKWARD);
  Motor3.setSpeed(200);
  Motor3.run(FORWARD);
  Motor4.setSpeed(200);
  Motor4.run(FORWARD);
}else if((Right_Value==1)&&(Left_Value==1)) {
  Motor1.setSpeed(0);
  Motor1.run(RELEASE);
  Motor2.setSpeed(0);
  Motor2.run(RELEASE);
  Motor3.setSpeed(0);
  Motor3.run(RELEASE);
  Motor4.setSpeed(0);
  Motor4.run(RELEASE);
}else if(distance > 1 && distance < 10) {
  Motor1.setSpeed(0);
  Motor1.run(RELEASE);
  Motor2.setSpeed(0);
  Motor2.run(RELEASE);
  Motor3.setSpeed(0);
  Motor3.run(RELEASE);
  Motor4.setSpeed(0);
  Motor4.run(RELEASE);
  }
 }

 

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

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

دسته بندی نشده

ماژول سنسور مجاورت نوری

ماژول سنسور مجاورت نوری قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند

ماژول کاهنده

ماژول كاهنده قبل از خواندن مقاله ماژول كاهنده بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از

41 دیدگاه دربارهٔ «ساخت ربات هوشمند با آردوینو»

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

  2. ایا با گیربکس های پلاستیکی که یک موتور را به دو شفت تبدیل میکنند و هر کدام برای یک سمت ربات کافی است می شود انجام داد؟

  3. سلام خسته نباشید
    برنامه ای قرار دادین در آردوینو
    ارور میده میشه کمک کنید ممنون

  4. سلام ببخشید سنسور اینفرارد رو از کجا بگیرم و اینکه اون گیربکس زردا که دو شفت هستن اگه یه شیفت بزارم مشگل داره؟

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

    1. در قسمت مربوط به پیش پردازنده ها در کدنویسی میتوانید مشاهده کنید.کتابخانه ها به صورت پیش پردازنده تعریف شدن در هر پروژه ای متفاوت هستند. میتوانید برای هر پروژه ای که لازم دارید به عبارت های داخل include<> در همان ابتدای برنامه نگاه کنید و هر عبارتی که روبروی includeمشاهده میکنید عنوان کتابخانه ای است ک نیاز دارید.

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

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

  5. ببخشید برای این ربات به چه سنسور مادون قرمزی نیاز داریم آخه این مدلی که تو فیلم هست هیچ جا پیدا نمیشه

        1. در ویدیو سنسور IR 4 پین استفاده شده که یک پین مربوط به سیگنال های آنالوگ میشه میتونید پین چهارمی که استفاده شده نادیده بگیرید.

  6. مهندس جان سلام اول تشکر کنم از شما و تیم خوبتون اگر این روبات رو بخوام با ماژول بولوتوث و اندروید کنترل کنم برنامه که برای دانلود گذاشتید باید تغییر کنه یا همین برنامه جواب میده؟

  7. مهندس جان ببخشید تو سایتتون موتور گیربکس ها با دوره‌ای مختلف وجود داره برای این روبات کدومش مناسب تر هست. ممنون

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

  8. سلام ببخشید
    من وقتی برنامرو نوشتم خواستم ببینم درست است یا نه تیک که هست زدم همیچین عروری میده دلیلش چیه
    newping.h:no such file or directory
    exit status 1
    Newping.h: No such file or directory

    1. علی محمدی

      باید کتابخانه ی newping دانلود کنید. اینکارو به دو روش میتونید انجام بدهید یا مقاله ی اضافه کردن کتابخانه به محیط آردوینو مطالعه کنید

  9. سلام من میخوام با استفاده از آدوینو یک رباتی بسازم که حول یک محور یک صفحه رو مثلا یک دهم درجه به یک دهم درجه و یه همون اندازه ای که میدم بچرخونه آیا امکانش هست اگر آره راهنمایی کنید ممنون میشم لطفا حتما ج

    1. علی محمدی

      بله امکانش هست برای این کار اول باید بخش مکانیکی رو طراحی کنید و ببینید با استفاده از چه موتور یا ماژول هایی میخواهید که این کار رو انجام بدید این کار با طراحی های مختلفی میتونه انجام بشه طراحیتون با توجه به بودجه ای که مد نظر قرار میدهید برای ساخت و خرید وسایل و ابزار باید متناسب باشه و البته ابعاد صفحه و وزن اون هم در این طراحی مهمه

دیدگاه‌ خود را بنویسید

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