آموزش آردوینو پروژه های آردوینو

ساخت رادیو کنترل ۴ کانال با قبلیت میکس برای هواپیما – جلسه ۲

نوشته شده توسط حسین فهیمی

همان طور که در پست قبلی، توضیح داده شد، در این پست قصد ساخت گیرنده‌ی رادیو کنترل را داریم.  گیرنده‌ی رادیو کنترل، از یک آردوینو Arduino UNO و یک ماژول nrf24l01 تشکیل شده است.

در تصویر زیر نحوه ی اتصال پین ها را مشاهده می‌کنید.

آموزش راه اندازی nrf24l01 -دیجی اسپارک

پین های CE و CSN میتوانند به هر پین دیجیتالی متصل شوند.

در برد آردوینو uno  پین های پرروتوکل spi به صورت زیر می‌باشند:

  • MOSI is connected to the digital pin 11
  • MISO is connected to the digital pin 12
  • SCK is connected to the digital pin 13

 

شماتیک مدار برای ساخت رادیو کنترل ۴ کانال، به صورت زیر است:

 

New Bitmap Image

 

 

کد گیرنده :

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

فراخوانی کتابخانه‌ها

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

 

 

 

تابع اول تعداد فرستتنده‌هایی است که گیرنده از آن‌ها اطلاعات دریافت میکند. قابل ذکر است از ۶ فرستنده به طور همزمان میتوان اطلاعات را دریافت نمود.

تابع دوم آدرس فرستنده اطلاعات می‌باشد.

const byte rxAddr[6] = "00001";

 

این متد ماژول را برای دریافت اطلاعات آماده میکند.

  radio.startListening();

 

مشخص کردن شماره ی پین هر کانال

  yaw.attach(3);
  roll.attach(5);
  pitch.attach(6);
  throttle.attach(9);
}

 

اگر ماژول داده ای دریافت نمود، این تابع مقدار true و اگر مقداری دریافت نکرد مقدار false را بر می‌گرداند. پس از دریافت Data، مقدار مورد نظر به هر یک از کانال‌ها نسبت داده می‌شود.

void loop() {
  if (radio.available()) {
    int joyStick[4];
    radio.read(joyStick, sizeof(joyStick));
    yaw.write(joyStick[1]);
    roll.write(joyStick[3]);
    pitch.write(joyStick[2]);
    throttle.write(joyStick[0]);
}
}

 

 

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

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۶۰ دیدگاه

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

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

  • با سلام
    فرستنده رو به کدوم پین متصل کنیم و بعد جوی استیک برای ارسال اطلاعات و کنترل کواد رو به کدوم پینها متصل کنیم اینا خیلی مبهم هستن . و بعد کانفین کردن با ریسیور چطوری هست ؟ یه کم توضیح بیشتر و عکسهای بیشتر

    • سلام
      برای این موضوع باید به جلسه اول این آموزش مراجعه کنید. شیوه اتصال پین‌ها به صورت تصویری قرار داده شده است.

  • بسیار عالی و متشکرم بابت مطالب مفیدتون.سوالی داشتم که برای افزایش کانال و اضافه کردن اطلاعات (مثل) ال سی دی و … ماژول های nrf پیشرقته تری هست واسه اینکار یا باید یه ماژول دیگه اضافی کنیم . و … . لطفا اگه ممکنه مبحثی برای توضیحات پیشرقته کردن این پروژه اضافی کنید عالی می شه . ممنون

  • سلام بسیار عالی بود .
    میشه بگین چجوری میشه این رادیو کنترل رو به سرو موتور و موتور های هواپیما وصل کرد به طوری که بتونم با فرستنده سرو موتور ها و موتور ها رو هدایت کنم ؟

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

  • Arduino: 1.6.12 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\Mohsen\AppData\Local\Temp\arduino_modified_sketch_405431\sketch_jul11a.ino:2:22: fatal error: nRF24L01.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

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

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

  • با سلام لطفا بگید واسه هواپیما های delta و بال مـثلثی باید اون قسمت مربوط به مقدار دهی servo چجوری باشه?
    من تو این قسمتش موندم
    لطفا سریع پاسخ بدید
    با تشکر

    • با سلام
      ضمن تشکر از توجه شما جهت ارایه راهنمایی کامل لطفا سوالتان را دقیق‌تر و به صورت فنی بیان کنید.

  • سلام و عرض ادب
    ببخشید من این رادیوکنترل رو طبق آموزش تون بستم و متاسفانه جواب نگرفتم! نمیدونم کدهای شما مشکل دارند یا ماژول های فرستنده گیرنده خودم یا…
    لطفا راهنماییم کنید که الان باید چکار کنم دقیقا؟ چجوری میتونم ماژول هارو تست کنم ببینم سالم اند یا نه؟ و اینکه کلا برای رفع عیب مدار چکار کنم؟؟؟
    اگر هر عکسی از مداری که بستم یا حتی فیلم احتیاج دارید برای اینکه بتونید راهنماییم کنید ؛ بگید تا بفرستم
    این یه عکس کلی:
    http://uupload.ir/files/pj21_img_0548.jpg
    ضمنا هدف من از ساخت این رادیوکنترل برای کوادکوپترم هستش. ممنون میشم راهنماییم کنید که این رادیو را، راه اندازی کنم.
    سپاس از شما

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

      • سلام، ممنون از شما
        بله کد ها بطور کامل کامپایل و آپلود میشوند و اروری از این لحاظ دریافت نشد. ضمنا کدها را هیچ تغییری ندادم. در مورد مدار هم طبق شماتیک مربوطه وصل کردم. فقط در مورد پین های ce و csn که گفته شده به هر پین دیجیتالی میتوان متصل شوند ؛ در آردوینو uno به پایه های ۷و۸ دیجیتال و در اردوینو مگا بعنوان مثال به ۳۲ و ۳۳ وصل کردم. اما در برنامه ها هیچ تغییری ندادم. (اخیرا کار با آردوینو را شروع کرده ام و در این زمینه مبتدی هستم!)
        اگر نیاز به تغییر در برنامه ها هست لطفا راهنمایی بفرمایید
        ضمنا اینکه چطور میتونم از صحت عملکرد ماژول ها +nrf24l01 اطمینان بیابم؟!

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

    • درود بر شما
      لطفا ارور دریافتی را ارسال کنید تا بررسی کنم و در صورت امکان راهنمایی میکنم.

  • من مبتدی هستم و مدار رو درست طراحی کردم البته به نظر خودم اما تو نصب کردن کتابخونه و کامپایل کردن مشکل دارم یعنی ازشون سر در نمیارم آیا باید کد های فرستنده رو که تو سایت گزاشتین باید به صورت دستی وارد کنم

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

  • این آموزش کامل نیس و حتی افرادی که با الکترونیک آشنایی ابتدایی دارند نیز در ساخت آن با مشکل روبرو می شوند ,
    و نکته ی مهم دیگه اینه که حجم خیلی بالاست چون از ماژول هایی استفاده شده که برای این پروژه خیلی اضافی است و از طرف دیگه رادیو کنترل زیاد پیشرفته ای نیست , کلا واسه آشنایی با ماژول NRF خوبه.تشکر
    اگه کسی پکیج ساخت رادیو کنترل ۱۰ کاناله با قیمت بسیار مناسب و ساخت ساده و ارزان با امکانات عالی (برد ۲الی ۷ کیلومتر , قابلیت تلمتری پیشرفته و اتصال به کامپیوتر و…) خواست در خدمتیم. گروه رباتیک

    • با سلام
      ضمن تشکر از توجه شما و توضیحاتتان، متاسفانه امکان انتشار اطلاعات تماس شما وجود ندارد، چنانچه کاربری به خدمات شما نیاز داشته باشد پس از پاسخ روی کامنت شما برای شما ایمیل ارسال خواهد شد. در مورد اینکه میفرمایید برخی از ماژول‌ها اضافی است، این نکته را در نظر داشته باشید که برای ساخت کوادکوپتر چندین روش مختلف با ماژول‌های مختلف امکان پذیر است.

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

    • با سلام
      ضمن تشکر از توجه شما، لطفا دقت داشته باشید که اینجا انجمن نمیباشد. نظر شما برای اشتراک گذاری دیگر کاربران منتشر شد. منتظر پاسخ از طرف کاربران فعال باشید.

  • ببخشید چنانچه بخواهیم اطلاعات دریافتی رو که در اینجا به چهارتا کانال (رول پیچ یاو و ارتفاع)داده شده به فلایت کنترل بدیم.مگه این اطلاعات به صورت PPM یا PWM نیست؟اما اینجا فقط مقدار متغییرهارو تو چهارتا کانال بر می گردونه و عملا PWM نیست.برای این موضوع چیگار باید کرد؟

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

  • سلام ببخشید دوتا سوال داشتم
    ۱-توی شماتیک گیرنده سیم سیاه به همه پین هاوصل شده و سیم زرد به سه تا از پین ها وصل شده و سیم قرمز فقط به تراتل و سیم های سبز به هر چهارتا پین به صورت جداگانه وصل شده حالا از فلایت کنترل جمعا ۹تا سیم خارج میشه چطوری با وصلش کنم اینم عکسش
    https://www.dronetrest.com/uploads/db5290/854/b6029537dd35d092.png
    ۲-توی شماتیک گیرنده فقط تراتل یاو پیچ و رول رو به برد گیرنده وصل کرده سیم های مود فلایت کنترل که دوتاهستش به پین ها وصل میشه؟
    https://www.dronetrest.com/uploads/db5290/854/b6029537dd35d092.png

    • با سلام و تشکر از شما
      تمامی این ۴ قطعه اتصالات تغذیه مشترک دارند. اتصالات GND و VCC با هم مشترک هستند. در تصویری که شما ارسال کرده‌اید، سیم‌های تغذیه را مشترک کنید.
      در خصوص سوال ۲ بنده تجربه ندارم. از دیگر کاربران که در این زمینه تخصص دارند، تقاضا دارم تا در این بحث شرکت کنند.

  • سلام.خسته نباشید مطالبتون خیلی خوب بود …اما ی جایی شو نفهمیدم چون فعلا تازه کارم و خیلی وقت نیست که با برد اردوینو کار می کنم….اونجایی که گفتین{ شماتیک مدار برای ساخت رادیو کنترل ۴ کانال، به صورت زیر است:} .اون سیم هایی که از اردوینو رد می کنیم باید به کجا وصل کنیم؟؟؟؟

  • سلام جناب
    خسته نباشید
    ببهشید من مبتدی هستم و این اولین پروژه ای هست که در عمرم قراره اجرا کنم و چند مورد سوال خدمتتون داشتم ممنون میشم به تک تک شون جواب دقیق بدید

    ۱ این پروژه رو میشه با توع انتن دارش هم اجرا کرد؟

    ۲ من نمیخوام جوی استیک استفاده کنم فقط میخوام دو کانال وجود داشته باشه که با زدن دکمه سروو تا درجه اخر بچرخه

    ۳ میشه با تمام اون سوالات ای که در نظر گرفتم بگید که ایا نیازی به برنامه ریزی در اردینو نیست؟ چون فقط نیازه که دوتا کانال ثابت متصل بشه

    سپاس لطفا جواب بدید و ساده ترین راهی که من رو اذیت نکنه بگین

    • با سلام
      پیش از هر چیزی دقت داشته باشید که اجرای این پروژه برای رده حرفه ای امکان پذیر است.
      ۱- بله
      ۲- بایستی تغییراتی بر اساس نیازمندی‌تان اعمال کنید.
      ۳- بدون برنامه نویسی امکان پذیر نخواهد بود.

  • با سلا من فقط دو کانال ولتاژ ثابت جدا میخوام که با زدن دکمه ی فرستنده گیرنده سروو رو تا درجه اخر بچرخونه

    میخوام این رو برای کواد کوادکوپتر درست کنم که با زدن یک دکمه سروو بچرخه و چیزی که بهش وصله جدا بشه ممنون و توضیح بدید که چه تغیراتی در کد نویسی نیاز میشه