ساخت قایق کنترلی آردوینو با ماژول RF 433 مگاهرتز | آموزشگاه هادی - هادی روبو

ساخت قایق کنترلی آردوینو با ماژول RF 433 مگاهرتز | آموزشگاه هادی - هادی روبو

آموزشگاه فنی و حرفه ای آزاد هادی (هادی روبو) – در این پروژه گام‌به‌گام یک قایق هوایی (Air-Boat) مجهز به آردوینو طراحی می‌کنیم که با استفاده از ماژول‌های رادیویی 433 مگاهرتز به‌صورت بی‌سیم هدایت می‌شود.

چرا ماژول RF 433 مگاهرتز؟

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

قطعات مورد نیاز (بخش فرستنده)

  • ماژول فرستنده 433 مگاهرتز
  • آردوینو (در این پروژه از Pro Mini استفاده شده)
  • آی‌سی encoder HT12E
  • ۴ عدد کلید فشاری (جلو، عقب، چپ، راست)
  • مقاومت‌های ۱ مگااهم و ۴۷ کیلواهم
  • دو عدد رگولاتور 7805
  • برد مشترک (PCB) و باتری ۹ ولت (یا ۷.۴ ولت)
قطعات مورد نیاز برای ساخت قایق کنترلی آردوینو

ماژول‌های فرستنده و گیرنده 433 مگاهرتز

این ماژول‌های ASK (کلیدزنی دامنه) به‌دلیل هزینه کم و سادگی اتصال، بین سازندگان محبوب هستند. در این نوع مدولاسیون، داده‌های دیجیتال با تغییر دامنه موج حامل نمایش داده می‌شوند. مصرف جریان بسیار کم (به‌ویژه در هنگام ارسال صفر منطقی) این ماژول‌ها را برای پروژه‌های باتری‌خورده عالی می‌کند.

ماژول‌های فرستنده و گیرنده 433 مگاهرتز

ماژول فرستنده 433 مگاهرتز

این ماژول بسیار کوچک با ۳ پایه (VCC، GND، DATA) عرضه می‌شود. برخی نسخه‌ها پایه آنتن جداگانه دارند. ولتاژ کاری ۳ تا ۱۲ ولت است و جریان مصرفی آن برای ارسال بیت صفر تقریباً صفر است.

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

چهار کلید فشاری برای کنترل جهت قایق (جلو، عقب، چپ، راست) به آردوینو متصل می‌شوند. آردوینو وضعیت کلیدها را خوانده و داده‌های موازی را به encoder HT12E می‌دهد. این encoder داده‌ها را به دنباله سریال تبدیل کرده و ماژول RF ارسال می‌کند. دلیل استفاده از آردوینو، امکان ترکیب فرمان‌ها (مثلاً عقب+چپ) است که با کلید ساده ممکن نیست.

مدار شماتیک ریموت (فرستنده)

یک سر همه کلیدها به پایه‌های دیجیتال آردوینو (D6 تا D9) و سر دیگر به زمین وصل می‌شود. با فشردن کلید، پایه مربوطه صفر منطقی می‌شود. چهار ورودی موازی encoder HT12E به پایه‌های D2 تا D5 آردوینو متصل هستند. پایه‌های آدرس (A0-A7) همگی به زمین وصل شده‌اند. برای نوسان‌ساز از مقاومت ۱.۱ مگااهم (برای ولتاژ ۵ ولت) استفاده می‌شود. خروجی encoder به ماژول فرستنده داده می‌شود و برای محافظت از آردوینو و ماژول، از رگولاتور 7805 استفاده شده است.

مدار شماتیک ریموت کنترل قایق
آی‌سی encoder HT12E

ساخت مدار فرستنده

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

نمای رویی مدار فرستنده
نمای پشتی مدار فرستنده

ساخت محفظه ریموت

برای بدنه ریموت از ورق MDF ۴ میلی‌متری (یا تخته سه‌لا، فوم، مقوا) استفاده کنید. دو تکه ۱۰×۵ سانتی‌متر برش بزنید و جای کلیدها را علامت‌گذاری کنید. کلیدهای جهت‌نما را در سمت چپ و کلیدهای جلو/عقب را در سمت راست قرار دهید. مدار را بین دو لایه قرار داده و با پیچ‌های بلند محکم کنید.

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

ماژول گیرنده 433 مگاهرتز

گیرنده نیز بسیار کوچک با ۴ پایه (VCC، GND و دو پایه DATA) است. ولتاژ کاری ۵ ولت و مصرف توان پایینی دارد. برخی مدل‌ها پایه آنتن جداگانه دارند.

ماژول گیرنده 433 مگاهرتز

بلوک دیاگرام گیرنده قایق

ماژول گیرنده سیگنال ارسالی را دریافت کرده و داده سریال را به decoder HT12D می‌دهد. این decoder داده سریال را به داده موازی اصلی تبدیل می‌کند. در بخش گیرنده نیازی به میکروکنترلر نیست و خروجی‌ها مستقیماً به درایور موتور متصل می‌شوند.

بلوک دیاگرام گیرنده قایق

مدار شماتیک گیرنده

HT12D یک دیکودر ۱۲ بیتی سریال‌ورودی-موازی‌خروجی است. پایه‌های آدرس (A0-A7) برای تطابق با فرستنده، همگی به زمین متصل می‌شوند. خروجی‌های D8 تا D11 به درایور موتور L293D می‌روند. یک مقاومت ۳۳ تا ۵۶ کیلواهم بین پایه‌های نوسان‌ساز قرار دهید. یک LED به پایه ۱۷ (Valid Transmission) نشان‌دهنده ارتباط معتبر است. ولتاژ ورودی گیرنده ۶ تا ۱۲ ولت است.

مدار شماتیک گیرنده قایق

برای کنترل موتورها از آی‌سی L293D استفاده می‌کنیم که اندازه و وزن را کاهش می‌دهد و برای کنترل دو موتور در دو جهت ایده‌آل است. پایه‌های ۱ و ۹ (Enable) به ۵ ولت وصل می‌شوند. پایه‌های 1A، 2A، 3A، 4A پایه‌های کنترل هستند و 1Y، 2Y، 3Y، 4Y به موتورها متصل می‌شوند. Vcc2 ولتاژ تغذیه موتورهاست.

آی‌سی درایور موتور L293D
جدول عملکرد آی‌سی L293D

ساخت مدار گیرنده

قبل از ساخت، به اندازه و وزن توجه کنید، زیرا مدار روی قایق نصب می‌شود. همه قطعات را روی یک برد کوچک با حداقل سیم‌کشی لحیم کنید. در این پروژه پایه ۸ درایور موتور به ۵ ولت متصل شده چون از موتورهای ۵ ولتی استفاده می‌کنیم.

مدار گیرنده ساخته شده

ساخت بدنه قایق

پس از آزمایش مواد مختلف، بهترین نتیجه با ورق یونولیت (thermocol) به ضخامت ۳ سانتی‌متر به‌دست آمد. مدار گیرنده را روی یونولیت قرار داده، شکل قایق را برش بزنید و موتورها را نصب کنید.

مراحل ساخت بدنه قایق

موتورها و پروانه‌ها

از موتورهای DC کوچک ۵ ولتی نوع N20 استفاده کنید (سبک و کم‌مصرف). برای جلوگیری از تداخل RF، یک خازن ۰.۱ میکروفاراد موازی با هر موتور لحیم کنید. برای ساخت پروانه، دو تکه پلاستیک نازک را با حرارت شمع خم کرده و سوراخ وسط ایجاد کنید.

موتورهای قایق
پروانه‌های ساخته شده

نحوه عملکرد قایق

قایق دارای دو موتور چپ و راست است. جهت چرخش موتورها و زاویه پروانه‌ها تعیین‌کننده حرکت است:

  • جلو: هر دو موتور ساعتگرد (پروانه هوا را از جلو به عقب می‌دمد)
  • عقب: هر دو موتور پادساعتگرد
  • چپ: فقط موتور راست کار می‌کند
  • راست: فقط موتور چپ کار می‌کند

ورودی‌های درایور موتور به چهار بیت خروجی دیکودر (D8-D11) متصل هستند. با اتصال AD8-AD11 به زمین (با کلیدهای ریموت) می‌توان این خروجی‌ها را کنترل کرد. برای حرکت جلو و عقب که نیاز به فعال‌سازی همزمان دو موتور دارند، از آردوینو استفاده شده است.

برنامه‌نویسی آردوینو

برنامه بسیار ساده است و فقط شامل سوئیچینگ منطقی می‌شود. در ادامه کد کامل پروژه آورده شده است:

int f_button = 9;  // کلید جلو
int b_button = 8;  // عقب
int l_button = 7;  // چپ
int r_button = 6;  // راست
int m1 = 2;        // خروجی‌ها به encoder
int m2 = 3;
int m3 = 4;
int m4 = 5;

void setup() {
  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() {
  if (digitalRead(f_button) == LOW) {
    digitalWrite(m1, LOW);
    digitalWrite(m3, LOW);
    digitalWrite(m2, HIGH);
    digitalWrite(m4, HIGH);
  }
  if (digitalRead(b_button) == LOW) {
    digitalWrite(m2, LOW);
    digitalWrite(m4, LOW);
    digitalWrite(m1, HIGH);
    digitalWrite(m3, HIGH);
  }
  if (digitalRead(l_button) == LOW) {
    digitalWrite(m1, LOW);
    digitalWrite(m2, HIGH);
    digitalWrite(m3, HIGH);
    digitalWrite(m4, HIGH);
  }
  if (digitalRead(r_button) == LOW) {
    digitalWrite(m1, HIGH);
    digitalWrite(m2, LOW);
    digitalWrite(m3, HIGH);
    digitalWrite(m4, HIGH);
  }
}
  
عیب‌یابی: قایق را روی آب قرار دهید و حرکت آن را بررسی کنید. در صورت نیاز، قطب‌های موتورها یا جهت پروانه‌ها را عوض کنید. همچنین وزن را در دو طرف قایق متعادل کنید.
نمای نهایی قایق روی آب

جمع‌بندی از آموزشگاه فنی و حرفه ای آزاد هادی (هادی روبو)

تمام مراحل این پروژه در آموزشگاه فنی و حرفه ای آزاد هادی با رویکرد عملی و پروژه‌محور تدریس می‌شود. با ساخت این قایق کنترلی، مباحث کلیدی ارتباط RF، encoder/decoder، درایور موتور L293D و برنامه‌نویسی آردوینو را به‌صورت کاربردی فرا خواهید گرفت.


برچسب ها :

نظرات (0)

پیام بگذارید

captcha
 redo