آردوینو Arduinoپروژه های آردوینو

پروژه قایق موتوری RC کنترلی با آردوینو (رادیویی – پرسرعت)

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

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

قسمت کنترل قایق (فرستنده)

در قسمت فرستنده از ماژول فرستنده RF 433 استفاده میکنیم. این نوع ماژول بسیار کوچک است و دارای 3 پایه VCC ، GND و Data است. برخی از ماژول های دیگر دارای یک پایه آنتن اضافی هستند. ولتاژ کاری ماژول فرستنده 3V-12V است و این ماژول هیچگونه اجزای قابل تنظیم ندارد. یکی از مهمترین مزایای این ماژول مصرف کم است.

قسمت فرستنده شامل 4 دکمه است. آردوینو وضعیت دکمه ها را میخواند. دستور مورد نظر را به قسمت رمزگذار میفرستد و در نهایت اطلاعات رمزگذاری شده توسط ماژول فرستنده RF ارسال میشوند.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

اتصالات مدار قسمت کنترل قایق در زیر نشان داده شده است:

مدار فرستنده کنترل قایق موتوری آردوینو

در مدار بالا ، مشاهده میکنید که دکمه ها به پایه های دیجیتالی آردوینو و GND متصل شده اند. زمانی که ما دکمه را فشار می دهیم، پین های دیجیتال مربوطه LOW می شوند. چهار ورودی موازی رمزگذار HT12E به چهار پایه دیجیتال دیگر آردوینو (D2-D5) متصل شده است.

رمزگذار HT12E یک رمزگذار 12 بیتی و یک رمزگذار ورودی-سریال ورودی موازی است. از 12 بیت ، 8 بیت بیت آدرس است که می تواند برای کنترل چندین گیرنده استفاده شود. پین های A0-A7 پین های ورودی آدرس هستند. در این پروژه ، ما فقط یک گیرنده را کنترل می کنیم ، بنابراین نمی خواهیم آدرس آن را تغییر دهیم ، بنابراین من تمام پایه های آدرس را به GND متصل کردم. اگر می خواهید گیرنده های مختلف را با یک فرستنده کنترل کنید ، می توانید از سوئیچ های dip استفاده کنید. AD8-AD11 ورودی های بیت کنترل هستند. این ورودی ها خروجی های D0-D3 رسیور HT12D را کنترل خواهند کرد. برای برقراری ارتباط باید یک اسیلاتور وصل کنیم و فرکانس نوسان ساز برای عملکرد 5 ولت باید 3KHz باشد. مقدار مقاومت برای 5 ولت 1.1MΩ خواهد بود. سپس خروجی HT12E را به ماژول فرستنده وصل کردم.

رمزگذار انکودر HT12E
رمزگذار انکودر HT12E

میتوانید محفظه قسمت کنترل قایق را مشابه تصاویر زیر طراحی کنید.

محفظه قسمت کنترل قایق

قسمت حرکت قایق (گیرنده)

این گیرنده نیز بسیار کوچک است و دارای 4 پایه VCC ، GND و دو پایه Data است. ولتاژ کاری این ماژول 5v است. مانند ماژول فرستنده ، این نیز یک ماژول کم مصرف است. بعضی از ماژول ها دارای یک پین آنتن اضافی هستند.

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

اتصالات مدار قسمت حرکت قایق در زیر نشان داده شده است:

مدار قسمت حرکت قایق با آردوینو

HT12D یک رسیور 12 بیتی خروجی-ورودی، موازی-سریال است. پین ورودی HT12D به گیرنده ای متصل می شود که دارای خروجی سریال است. در میان 12 بیت ، 8 بیت (A0-A7) بیت آدرس است و HT12D ورودی را رمزگشایی می کند ، فقط اگر با آدرس فعلی آن مطابقت داشته باشد. D8-D11 بیت های خروجی هستند. برای مطابقت این مدار با مدار فرستنده ، تمام پین های آدرس را به GND متصل کردم. داده های خارج از ماژول نوع سریال است و HT12D این داده های سریال را به داده های موازی اصلی رمزگشایی می کند و اطلاعات ما از طریق D8-D11 خارج می شود. برای مطابقت با فرکانس نوسان ، باید مقاومت 33-56k را به پایه های نوسان ساز متصل کنید. ولتاژ ورودی گیرنده نیز 6-12 ولت است.

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

میتوانید محفظه قسمت حرکت قایق را مشابه تصاویر زیر طراحی کنید.

محفظه قسمت حرکت قایق

قطعات مورد نیاز برای قایق کنترلی آردوینو

  • فرستنده و گیرنده 433 مگاهرتز
  • آردوینو (هر نوع آردوینو ، برای کاهش اندازه از Pro mini استفاده می کنیم)
  • HT12E و HT12D
  • دکمه – 4 عدد
  • مقاومت 1 مگا اهم و 47 کیلو اهم
  • درایور موتور L293d
  • باتری 9 ولت (من از یک باتری 7.4 ولتی استفاده می کنم) – 2 عدد
  • رگولاتور 7805- 2 عدد
  • موتورهای DC – دو عدد
  • خازن 1uf  – دو عدد

نحوه حرکت قایق RC آردوینو

این قایق دارای دو موتور است که می تواند آن را به سمت چپ و راست حرکت دهد. ا

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

برنامه نویسی آردوینو برای قایق کنترلی

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

ما برنامه را با تعریف اعداد صحیح برای چهار دکمه ورودی و پایه های رسیور ورودی شروع می کنیم.

int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1=2;
int m2=3;
int m3=4;
int m4=5;

در قسمت setup حالت پین ها را تعریف میکنیم. یعنی دکمه ها به پایه های دیجیتال متصل می شوند بنابراین این پایه ها باید به عنوان ورودی تعریف شوند و همچنین باید پایه های m1 تا m4 را در حالت خروجی قرار دهیم.

  pinMode(f_button,INPUT_PULLUP);
  pinMode(b_button,INPUT_PULLUP);
  pinMode(l_button,INPUT_PULLUP);
  pinMode(r_button,INPUT_PULLUP);
  pinMode(m1,OUTPUT);
  pinMode(m2,OUTPUT);
  pinMode(m3,OUTPUT);
  pinMode(m4,OUTPUT);

در مرحله بعدی در عملکرد void loop ، ما وضعیت دکمه را با استفاده از Digitalread می خوانیم. اگر وضعیت پین LOW باشد ، به این معنی است که دکمه ​​مربوطه فشرده شده و شرط زیر اجرا میشود.

if ( digitalRead(f_button)==LOW) 

که یعنی دکمه جلو فشرده شده

 {
   digitalWrite(m1, LOW);
   digitalWrite(m3, LOW);
   digitalWrite(m2, HIGH);
   digitalWrite(m4, HIGH);
 }

این m1 و m2 به حالت LOW میبرد و باعث فعال شدن هر دو موتور در سمت گیرنده می شود. به همین ترتیب ، برای حرکت به عقب

 {
   digitalWrite(m1, HIGH);
   digitalWrite(m3, HIGH);
   digitalWrite(m2, LOW);
   digitalWrite(m4, LOW);
 }

برای حرکت چپ

 {
   digitalWrite(m1, LOW);
   digitalWrite(m3, HIGH);
   digitalWrite(m2, HIGH);
   digitalWrite(m4, HIGH);
 }

برای حرکت راست

 {
   digitalWrite(m1, HIGH);
   digitalWrite(m3, LOW);
   digitalWrite(m2, HIGH);
   digitalWrite(m4, HIGH);
 }

پس از کامپایل کد ، آن را در برد آردوینو خود بارگذاری کنید.

موارد موجود در فایل : سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

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

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

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